IPTABLES NAT

Есть несколько способов добавить правила в таблицы.
Здесь представлен самый простой способ и он полностью удаляет настройки по умолчанию.

Если вы перестартуете iptables, вернутся значения по умолчанию.

Не советую бездумно выполнять этот скрипт на важных серверах. Особенное, если они не расположены в шаговой доступности.

# vi iptables
#!/bin/bash

# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

# Очистить таблицы
iptables -F
iptables -t nat -F
iptables -t mangle -F

# Удалить цепочку пользователя
iptables -X


# Разрешаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT

# Включаем форвардинг пакетов (NAT)
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0  -j MASQUERADE

# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

# Разрешаем ответы из внешней сети
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i eth0 -o eth1 -j REJECT
    # chmod +x iptables
    # ./iptables


Опубликовать сервер во внешней сети

– При обращении к серверу 192.168.1.34 по протоколу tcp на порт 8000 интерфейса eth0, перенаправлять запросы на сервер 192.168.2.5 порт 8000

    # iptables -t nat -A PREROUTING --dst 192.168.1.34 -i eth0 -p tcp --dport 8000 -j DNAT --to-destination 192.168.2.5:8000
    # iptables -I FORWARD 1 -i eth0 -o eth1 -d 192.168.2.5 -p tcp -m tcp --dport 8000 -j ACCEPT