Я это добавил цепочки INPUT OUTPUT, чтобы шлюз совсем уж голый не выпустить в интернет.
sysctl net.ipv4.ip_forward = 1 # Разрешаем шлюзу передавать транзитный трафик
iptables -F INPUT # Очистим цепочку INPUT
iptables -P INPUT DROP # По умолчанию все входящие пакеты блокировать
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT # Разрешаем входящие локальной сети
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT # Разрешаем ssh
iptables -A INPUT -i eth0 -p icmp -j ACCEPT # Разрешаем входящий пинг
#iptables -F OUTPUT # Очистим цепочку OUTPUT
#iptables -P OUTPUT DROP # По умолчанию все исходящие пакеты блокировать
#iptables -A OUTPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -p udp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o lo -j ACCEPT
#iptables -A OUTPUT -o eth1 -j ACCEPT # Разрешаем исходящте локальной сети
#iptables -A OUTPUT -o eth0 -p icmp -j ACCEPT # Разрещаем исходящий пинг
iptables -F FORWARD # Очистим цепочку FORWARD
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Разрешаем проходить пакетам по уже установленным соединениям
iptables -A FORWARD -m conntrack --ctstate NEW -i eth1 -s 192.168.1.0/24 -j ACCEPT # Разрешаем исходящие соединения из локальной сети к интернет-хостам
iptables -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT # Разрешаем перенаправленный трафик
iptables -P FORWARD DROP # Весь остальной транзитный трафик — запрещаем.
iptables -t nat -F POSTROUTING # На всякий случай очистим цепочку POSTROUTING таблицы nat
iptables -t nat -A PREROUTING -s IP_OFFICE_1 -d GATE_IP -p tcp --dport 3389 -j DNAT --to 192.168.0.2:3398
iptables -t nat -A PREROUTING -s IP_OFFICE_2 -d GATE_IP -p tcp --dport 3389 -j DNAT --to 192.168.0.2:3398
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Маскарадим весь трафик, идущий через eth0
1. Если цепочку output оставить пустой, то это даст возможность ходить любому исходящему транзитному трафику для локалки и шлюза?
2. Влияет ли цепочки output input на блокировку переправленного трафика? Иначе говоря, если я не разрешу в них порт для icq, то из локалки icq будет недоступна? Или эти цепочки касаются локалки только в случае когда я указываю -i eth1
3. Не будут ли эти правила блокировать установку соединения с терминалом (для перенаправления к локальному серверу 1С)?
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT