Надеюсь меня никуда не оттправят, составил сам как смог iptable правила, ситуация примерно такая:1. Есть сервер щлюз c nginx
2. За ним несколько серверов (не все web сервера т.е., там еще та же mysql репликация отдельно для бэкапов на довольно дохлом железе)
Хочу настроить iptables, с учетом того что удаленный доступ по ftp/ssh мне не нужен, почты тоже нет, хочется все лишнее запретить и нужно оставить, вот так примерно я сделал... Но не знаю, покритикуйте пожайлуста, посоветуйте что не так? Интернет всем нужен для обновлений и т.п., поэтому и NAT тоже есть, делал по примерам)) правда под себя переделал кое что. Система Debian, eth0 - интернет, eth2 - локалка
# Для очистки таблицы правил
iptables -F
iptables -X
# Добавляем правила по умолчанию
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Разрешаем доступ по localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Эти правила служат для того, чтобы для каждого разрешающего правила не пришлось прописывать обратное ему (для прохождения ответных пакетов).
# Короче говоря, позволяют входящие и исходящие соединения, инициированные уже установленными соединениями
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Далее действуем по мере необходимости
# Разрешаем доступ к серверу из локальной сети по протоколу ssh
iptables -A INPUT -p tcp -m tcp -s 192.168.2.0/24 --dport 22 -j ACCEPT
# Разрешаем доступ к серверу из локальной сети по протоколу ftp
iptables -A INPUT -p tcp -m tcp -s 192.168.2.0/24 --dport 21 -j ACCEPT
# Разрешаем пинговать сервер из локальной сети
iptables -A INPUT -p icmp -m icmp --icmp-type echo-request -s 192.168.2.0/24 -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp --icmp-type echo-reply -d 192.168.2.0/24 -j ACCEPT
# Разрешаем серверу доступ к внешним (интернетовским) DNS-серверам
iptables -A OUTPUT -p tcp -m tcp -o eth0 --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp -m udp -o eth0 --dport 53 -j ACCEPT
# Разрешаем серверу доступ к внешним http-серверам
iptables -A OUTPUT -p tcp -m tcp -o eth0 --dport 80 -j ACCEPT
# Даём доступ к серверу по http из интернета
iptables -A INPUT -p tcp -m tcp -i eth0 --dport 80 -j ACCEPT
# Разрешаем хождение транзитных пакетов
iptables -A FORWARD -i eth0 -s 192.168.2.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth2 -i eth0 -d 192.168.2.0/24 -j ACCEPT
# NAT
iptables -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j SNAT --to-source <мой-внешний-ip>