*filter
# Politiki po podrazbirane
-P INPUT DROP
-P OUTPUT ACCEPT
-P FORWARD ACCEPT
# Premahvame vsichki syshtestvuvashti pravila
-F
-X
# Othvyrlyane na tcp s nepravilni flagove
-N bad_tcp_packets
# tcp preminali osnovna proverka
-N allowed
# Vci`ki paketi syotvetno protokoli
-N tcp_packets
-N udp_packets
-N icmp_packets
# Bezuslovno razreshavane na vryzki kym lokalnia interfejs (loopback, 127.0.0.1)
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
# -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# tuk otivat vsichki tcp-paketi, i shte bydat othvyrleni vsichki imashti status NEW, no nyamashti flagove SYN,ACK
# predpazva ot opredeleni tipove ataki podrobnosti v prilojenie B3 kym Iptables Tutorial
-A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j DROP
# Priemame vsichki paketi, otnasyashti se kym veche ustanovenite syedinenia
-A allowed -p TCP --syn -j ACCEPT
-A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
# Vsichki ostanali ot tazi veriga othvyrlyame
-A allowed -j DROP
# Otvaryame nyakoi portove, koito sa zatvoreni po podrazbirane
# -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
# Priemame vhodyashti с 53-po udp (Domain Name Server)
-A udp_packets -p UDP -s 0/0 --sport 53 -j ACCEPT
# -A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 51413 -j ACCEPT
# ICMP
# razreshavame neobhodimite tipove
# Dest unreachable
-A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
# Time exceeded
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
# Parameter problem
-A INPUT -p icmp -m icmp --icmp-type 12 -j ACCEPT
# Othvyrlyame pinga, kojto po podrazbirane e othvyrlen veche. Move da byde otredaktirano.
# -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
# Tova pravilo move da zameni gornoto
# Mashinata shte vryshta Host unreachable
-A INPUT -p icmp -m icmp --icmp-type 8 -j REJECT --reject-with icmp-host-unreachable
# Razdelyame paketite po systav vyv verigi
# tcp otiva na dopylnitelna proverka
# -A INPUT -p tcp -j bad_tcp_packets
# Vcichki paketi otnasyashti se kym veche ustanovenite syedinenia (za tcp
# zaradi otdelnata veriga e neobhodimo tova pravilo da se ukaje oshte vednyj)
-A INPUT -p ALL -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p TCP -i ppp0 -j tcp_packets
-A INPUT -p UDP -i ppp0 -j udp_packets
-A INPUT -p ICMP -i ppp0 -j icmp_packets
# Spodelyane na interneta ot ppp0 kym eth1
-A FORWARD -o ppp0 -i eth1 -s 85.14.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
COMMIT
*nat
-A POSTROUTING -j MASQUERADE
COMMIT