Тщательно очистите 3 цепочки
iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
Поместите инструкцию "запретить все" в самое начало
iptables -P FORWARD DROP
iptables -A INPUT -i eth0 -j DROP
И разрешите фрагментированным пакетам проходить через вашу сеть
iptables -A FORWARD -f -j ACCEPT
Попытки подделатся под нашу сеть или затопить ее должны быть пресечены сразу же.
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -j DROP
iptables -A FORWARD -p icmp -i eth0 -d 192.168.0.255 -j DENY
Пропускаем инициированный из внутренней сети соединения.
iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.0/24 --dports www,smtp --tcp-flags SYN, ACK -j ACCEPT
Пропускаем соединения инициированные изнутри.
iptables -A FORWARD -m multiport -p tcp -i eth0 -d 192.168.0.0/24 --dport smtp --syn -j ACCEPT
Разрешаем некоторые порты для входящих соединений.
iptables -A FORWARD -m multiport -p tcp -i eth0 -d 192.168.0.0/24 --dport smtp --syn -j ACCEPT
Разрешаем пользователям инициировать некоторые соединения изнутри
iptables -A FORWARD -m multiport -p tcp -o eth0 -d 0.0.0.0 --dports www,smtp --syn -j ACCEPT
Разрешаем UDP для DNS.
iptables -A FORWARD -m multiport -p udp -i eth0 -d 192.168.0.0/24 --dports domain -j ACCEPT
iptables -A FORWARD -m multiport -p udp -i eth0 -s 192.168.0.0/24 --sports domain -j ACCEPT
iptables -A FORWARD -m multiport -p udp -i eth1 -d 0.0.0.0--dports domain -j ACCEPT
iptables -A FORWARD -m multiport -p udp -i eth0 -s 0.0.0.0 --sports domain -j ACCEPT
Все таки разрешаем немного пинга
iptables -A FORWARD -m multiport -p icmp -i eth0 -d 192.168.0.0/24 --dports 0, 3,11 -j ACCEPT
iptables -A FORWARD -m multiport -p icmp -i eth1 -d 0.0.0.0 --dports 8, 3,11 -j ACCEPT
Устанавливаем журналирование для всех отброшенных пакетов
iptables -A FORWARD -m tcp -p tcp -j LOG
iptables -A FORWARD -m udp -p udp -j LOG
iptables -A FORWARD -m udp -p icmp -j LOG