# czyścimy dotychczasowe reguły
iptables -F

# czyścimy dotchczasowe reguły net address translation
iptables -F -t nat

# zezwalamy na ruch na loopbacku (ważne!)
iptables -A INPUT -i lo -j ACCEPT

# dajemy pełny dostęp do routera komputerom z sieci wewnętrznej
# poprzez interfejs eth0
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.0.0/24 -j ACCEPT


# zezwalamy na wszystkie polaczenia juz nawiazane
iptables -A INPUT -p tcp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p tcp -j ACCEPT -m state --state RELATED
iptables -A INPUT -p udp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p udp -j ACCEPT -m state --state RELATED
iptables -A INPUT -p icmp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p icmp -j ACCEPT -m state --state RELATED
iptables -A FORWARD -p tcp -j ACCEPT -m state --state ESTABLISHED
iptables -A FORWARD -p tcp -j ACCEPT -m state --state RELATED
iptables -A FORWARD -p udp -j ACCEPT -m state --state ESTABLISHED
iptables -A FORWARD -p udp -j ACCEPT -m state --state RELATED
iptables -A FORWARD -p icmp -j ACCEPT -m state --state ESTABLISHED
iptables -A FORWARD -p icmp -j ACCEPT -m state --state RELATED


# zamknięcie wykrytej ostatnio luki w iptables
iptables -A OUTPUT -m state -p icmp --state INVALID -j DROP

# maskarada dla sieci wewn.
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE


# logujemy reszte
iptables -A INPUT -j LOG -m limit --limit 10/hour --log-prefix "PODEJRZANY INPUT: "
iptables -A FORWARD -j LOG -m limit --limit 10/hour --log-prefix "PODEJRZANY FORWARD: "

# wycinamy cala reszte
iptables -A INPUT -j DROP
iptables -A FORWARD -j DROP