Посоветуйте, как его довести до ума. и если есть в нем какие-нибудь ошибки/неточности, то как их лучше исправить.
eth2 - внешний интерфей (в городскую сеть 172.16.x.x)
eth1 - во внутреннюю сеть (в квартиру 192.168.11.x)
ppp0 - соединение по vpn
172.16.100.1 - адрес vpn сервера
172.16.100.14 - адрес dc++ сервера
Код: Выделить всё
#!/bin/bash
# очищаем
iptables -F
iptables -X
# действия по умолчанию
iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# убираем неправильные пакеты
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
# разрешим 127.0.0.1
iptables -A OUTPUT -o lo -j ACCEPT
# разрешим прохождение icmp пакетов
iptables -A OUTPUT -p icmp -j ACCEPT
# разрешим DNS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
# разрешим порт 67
iptables -A OUTPUT -o eth2 -p udp --dport 67 -j ACCEPT
# разрешим VPN
iptables -A OUTPUT -d 172.16.100.1/32 -p tcp --dport 1723 -j ACCEPT
iptables -A OUTPUT -d 172.16.100.1/32 -p 47 -j ACCEPT
# шлюз (можно все)
iptables -A POSTROUTING -t nat -j MASQUERADE
iptables -A FORWARD -i eth2 -o eth1 -s 192.168.11.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth2 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT
# разрешим netbios на интерфейсе eth1
iptables -A OUTPUT -o eth1 -p tcp -m multiport --ports 137:139 -j ACCEPT
iptables -A OUTPUT -o eth1 -p udp -m multiport --ports 137:139 -j ACCEPT
# порт 445 и удаленный рабочий стол на интерфейсе eth1
iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 445,3389 -j ACCEPT
iptables -A OUTPUT -o eth1 -p udp -m multiport --dports 445,3389 -j ACCEPT
# разрешим HTTP
iptables -A OUTPUT -p tcp -m multiport --dport 80,443 -j ACCEPT
# разрешим FTP
iptables -A OUTPUT -p tcp -m multiport --dport 21 -j ACCEPT
# dc++
iptables -A OUTPUT -d 172.16.100.14/32 -p tcp --dport 411 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 4994 -j ACCEPT
# разрешим jabber, icq
iptables -A OUTPUT -p tcp -m multiport --dports 5222,5190 -j ACCEPT
# mail
iptables -A OUTPUT -p tcp -m multiport --dports 110,25 -j ACCEPT
# torrent
iptables -A OUTPUT -p tcp -m multiport --dports 2710,7997,4939 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --sports 7997 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports 20000:65500 -j ACCEPT
# остальное в логи
# iptables -A INPUT -j LOG --log-prefix "INPUT: "
iptables -A OUTPUT -j LOG --log-prefix "OUTPUT: "
iptables -A FORWARD -j LOG --log-prefix "FORWARD: "
exit 0