IPTABLES - různá pravidla

Info: Router uváděný v příkladech má rozhraní eth0 (vnější) = 195.113.XXX.XXX, eth1 (vnitřní) = 192.168.100.1

Ping limit

Omezení počtu pingů za minutu (maximální "průměrná" rychlost = 10 spojení za minutu, limit = 30 paketů)

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 10/min --limit-burst 30 -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP

Povolení DHCP pro LAN

iptables -A INPUT -i eth1 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT

Logování paketů

Logují se zahozené pakety na rozhraní eth1 (5 spojení za minutu s limitem 10 paketů).

iptables -A INPUT -i eth1 -m limit --limit 5/min --limit-burst 10 -j LOG --log-prefix "INPUT eth1 DROP: "
iptables -A INPUT -i eth1 -j DROP

Přesměrování portu

Přístup na vzdálenou plochu stanice (IP 192.168.100.100) za NATem je povolen pouze ze zdrojové IP 88.212.XXX.XXX. Na vnějším rozhraní routeru je pro RDP použit nestandardní port 51234.

iptables -t nat -A PREROUTING -s 88.212.XXX.XXX -d 195.113.XXX.XXX -p tcp -m tcp --dport 51234 -j DNAT --to-destination 192.168.100.100:3389

Zpětný překlad (Zde obecné pravidlo zajišťující překlad všech odchozích paketů z LAN do Internetu.)

iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j SNAT --to-source 195.113.XXX.XXX

Odmítnutí směrování dle zdrojové adresy

Pakety s uvedenou zdrojovou IP resp. MAC adresou je zakázáno předávat do rozhraní eth0.

a) IP adresa

iptables -A FORWARD -s 192.168.100.182 -o eth0 -j REJECT --reject-with icmp-admin-prohibited

b) MAC adresa

iptables -A FORWARD -m mac --mac-source 00:1D:92:XX:XX:XX -o eth0 -j REJECT --reject-with icmp-admin-prohibited

Povolení navázaných spojení

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Ochrana SSH proti útoku hrubou silou

Modul recent vytvoří seznam s názvem SSH (--name), kam přidává (--set) zdrojové adresy paketů. Pomocí (--update) je seznam aktualizován, u již existujících záznámů se mění časové razítko. Pokud je ze stejné adresy opakován pokus o připojení a je překročen limit, tj. v období 120 sekund (--seconds) se jedná o třetí nebo další pokus (--hitcount), je spojení odmítnuto. Uvedenému kódu musí předcházet pravidlo "Povolení navázaných spojení".

iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --name SSH --set
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --name SSH --update --seconds 120 --hitcount 3 -j DROP
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT