C iptables только начал разбираться (прочитал http://www.k-max.name/linux/netfilter-iptables-v-linux/, настроил по http://www.k-max.name/linux/iptables-v-primerax/). На рабочем шлюзе применять боюсь, не уверен в правильности, думаю некоторых правил точно не хватает. На шлюзе запущен postfix, dhcp, dns, apache, mysql, ftp, VPN к Cisco. Почтовые клиенты в локальной сети Outlook и The Bat, помимо этого в локальной сети есть несколько программ, которые должны передавать пакеты во внешнюю сеть и, соответственно, получать ответы (отправлять, как я понял точно будут, т.к. маскардинг я прописал на все протоколы), также нужен доступ по SSH из локалки.
iptables -F
iptables -t nat -F
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A OUTPUT -j ACCEPT
iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT
#######################################################################
## block ip
#iptables -A FORWARD -s 192.168.0.90 -j DROP
#iptables -A FORWARD -s 192.168.0.41 -j DROP
iptables -A FORWARD -s 192.168.1.1 -j DROP
## NAT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i eth1 -s 192.168.0.1/24 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i eth1:2 -s 192.168.1.1/24 -j ACCEPT
iptables -P FORWARD DROP
#ptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j SNAT --to-source x.x.x.x
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j SNAT --to-source x.x.x.x
## Post
iptables -A INPUT -p TCP -m multiport --dports 25,110,143 -j ACCEPT
## Web
iptables -A INPUT -p TCP --dport 80 -j ACCEPT
## SSH
iptables -A INPUT -p TCP -i eth1 --dport 22 -j ACCEPT
## DNS
iptables -A INPUT -p TCP -i eth1 --dport 53 -j ACCEPT
## DHCP
iptables -A INPUT -p UDP -i eth1 --dport 67 -j ACCEPT
## RDP i t.d.
iptables -t nat -A PREROUTING -p tcp --dport 3399 -i ppp0 -j DNAT --to 192.168.0.99:3389
iptables -t nat -A PREROUTING -p tcp --dport 3355 -i ppp0 -j DNAT --to 192.168.0.2:3389
iptables -t nat -A PREROUTING -p tcp --dport 3356 -i ppp0 -j DNAT --to 192.168.0.12:3389
#iptables -t nat -A PREROUTING -p tcp --dport 3357 -i ppp0 -j DNAT --to 192.168.0.14:3389
iptables -t nat -A PREROUTING -p tcp --dport 3358 -i ppp0 -j DNAT --to 192.168.0.22:3389
iptables -t nat -A PREROUTING -p tcp --dport 3359 -i ppp0 -j DNAT --to 192.168.0.24:3389
#iptables -t nat -A PREROUTING -p tcp --dport 3333 -i ppp0 -j DNAT --to 192.168.0.121:35300
## NAS
iptables -t nat -A PREROUTING -p tcp --dport 2000 -i ppp0 -j DNAT --to 192.168.0.4:2015
iptables -t nat -A PREROUTING -p tcp --dport 2001 -i ppp0 -j DNAT --to 192.168.0.4:2014
## Video server
iptables -t nat -A PREROUTING -p tcp --dport 3000 -i ppp0 -j DNAT --to 192.168.0.153:3080
iptables -t nat -A PREROUTING -p tcp --dport 3001 -i ppp0 -j DNAT --to 192.168.0.153:3081