Filtrovani paketu

Michal Kubecek mike na mk-sys.cz
Pátek Únor 21 19:29:15 CET 2003


On Fri, Feb 21, 2003 at 07:01:40PM +0100, Petr Šobáň wrote:

> Když už jsme u těch firewalů mužete nekdo skontrolovat ten můj ?

Neberte to, prosím, jako nějaký audit, píšu jen to, co mne upoutalo
na první pohled.

> /sbin/iptables -A INPUT -i eth0 -d 127.0.0.1/255.0.0.0 -j REJECT

Ještě bych navíc zkontroloval 10.0.0.0/8, 172.16.0.0/12 a 192.168.0.0/16.
Ale jestli za tím nemáte schovanou lokální síť s privátními adresami,
tak to tak moc důležité není.

> /sbin/iptables -A OUTPUT -s $MOJE_IP -j ACCEPT

K čemu je testování zdrojové IP adresy v řetězci OUTPUT? Řetězec OUTPUT
přeci testuje jen pakety, které vygenerovaly lokální procesy.

> # max5 pingu za s
> /sbin/iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s> --limit-burst 5 -j ACCEPT

Tohle je jeden za sekundu plus pět jednorázově. Pět za sekundu by bylo
'--limit 5/s'.

> /sbin/iptables -A INPUT -p ICMP -i eth0 --icmp-type 8 -j ACCEPT

A tady je stejně povolíte v neomezeném množství, čímž de facto vyřadíte
předchozí pravidlo z funkce.

> # DNS
> /sbin/iptables -A INPUT -p udp -s $DNS_SERVER --sport 53 -j ACCEPT

No budiž. Otevíráte se sice jakémukoli UDP provozu, ale jen z adresy
nameserveru. Dokud toho jeho správce nebude chtít zneužít, dá se to
přežít. Ale proč? V okamžiku, kdy povolíte pakety se stavem ESTABLISHED,
odpovědi vám přijdou i bez této díry.

> # WWW
> /sbin/iptables -A INPUT -p tcp -s 0/0 --sport 80 -j ACCEPT

Hm. Takže kdokoli odkudkoli vám může navázat jakékoli TCP spojení. Stačí
když bude sedět na portu 80. To mi nepřipadá jako dobrý nápad. Stejný
problém jako výše, tady je to ovšem podstatně závažnější. Mimochodem,
k čemu je dobrá podmínka '-s 0/0'?

                                                          Michal Kubeček


Další informace o konferenci Linux