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