Прошу помочь с правилами iptables для сетевого шлюза. Имеется машинка на Debian 7.8, выполняющая роль шлюза в инет. Из софта - bind9, isc-dhcp-server. Настроил iptables (NAT во внутреннюю сеть 10.0.0.0/8), по умолчанию установил политику DROP (все что не разрешено, то запрещено). Все работает хорошо, но только первые минут 10-15 или до сброса сетевого адаптера на клиентской машине - пинги не ходят, сайты не открываются, при этом DHCP работает исправно и связь с самим шлюзом есть. Стоит выставить политику ACCEPT для INPUT и FORWARD - все начинает работать, но вариант с ACCEPT меня не устраивает.
Подскажите, где закралась ошибка? Ниже привожу листинг iptables.
*filter
Политика по умолчанию для всех цепочек - DROP
:INPUT DROP
:FORWARD DROP
:OUTPUT DROP
# Разрешаем входящие ICMP пакеты и traceroute
-A INPUT -p icmp -m icmp --icmp-type 11 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3/3 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m udp --sport 33434:33524 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# Разрешаем внутреннее кольцо
-A INPUT -i lo -j ACCEPT
# Разрешаем DNS запросы на сервер
-A INPUT -i eth0 -p tcp -m tcp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Разрешаем DHCP
-A INPUT -i eth1 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT
# Разрешаем входящие ICMP пакеты
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# Дропаем неправильные плохие пакеты
-A INPUT -m conntrack --ctstate INVALID -j DROP
# Вычисляем правильный размер MSS / MTU
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Разрешаем уже установленные и отоносящиеся к ним соединения из интернет
-A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Разрешаем соединения из локальной сети в интернет
-A FORWARD -i eth1 -o eth0 -j ACCEPT
# Дропаем плохие пакеты
-A FORWARD -m conntrack --ctstate INVALID -j DROP
# Разрешаем исходящий traceroute
-A OUTPUT -o eth0 -p udp -m udp --dport 33434:33524 -m state --state NEW -j ACCEPT
# Разрешаем внутреннее кольцо
-A OUTPUT -o lo -j ACCEPT
Разрешаем DNS запросы с сервера
-A OUTPUT -o eth0 -p tcp -m tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
#Разрешаем DHCP ответы
-A OUTPUT -o eth1 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT
# Разрешаем исходящие ICMP
-A OUTPUT -p icmp -j ACCEPT
# Дропаем плохие пакеты
-A OUTPUT -m conntrack --ctstate INVALID -j DROP
*nat
:PREROUTING ACCEPT
:INPUT ACCEPT
:OUTPUT ACCEPT
:POSTROUTING ACCEPT
# Включаем маскарадинг (NAT) для внутренней сети
-A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE
*raw
:PREROUTING ACCEPT
:OUTPUT ACCEPT
-A PREROUTING -i lo -j CT --notrack
-A OUTPUT -o lo -j CT --notrack
*mangle
:PREROUTING ACCEPT
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
:POSTROUTING ACCEPT