Zapis pravidel v iptables

Peter Surda shurdeek na routehat.org
Sobota Červen 12 16:09:52 CEST 2004


On Sat, Jun 12, 2004 at 10:34:34AM +0200, Vladislav Janecek wrote:
> Prosim mistni znalce, je tento skrip korektni, resp. nemám v něm nějakou
> chybu? S IPTables zacinam, tak nevim. Os je Slackware 9.1. Jak to má
> fungovat je snad pochopitelne z komentaru. Diky vsem!

Ja by som to robil troska prehladnejsie a zoptimalizovane, napriklad

-m state --state ESTABLISHED,RELATED
dat hned na zaciatok (bez interfejsu)

pouzitim mport matchu:
-m mport --dports 22,10000,80,3128 -j ACCEPT

a spojenim pravidiel so spolocnymi vlastnostami do novych cejnov:
-N input-vnitrni
-A INPUT -i $VNITRNI_DEV -j input-vnitrni
-A input-vnitrni -p tcp --dport whatever -j ACCEPT
(a na konci input-vnitrni)
-A input-vnitrni -j DROP

Dalej je tam par divnosti:

> VNEJSI_SIT="0.0.0.0/24"
VNEJSI_SIT="0.0.0.0/0"
(ale kedze to nikde nepouzivas, neva)

> iptables -t nat -A PREROUTING -p tcp --dport 80 -s $VNITRNI_SIT -i ! $VNEJSI_DEV -j REDIRECT --to-port 3128
-i by som pripadne vynechal resp tam dal -i $VNITRNI_DEV

> # FORWARD (pruchod serverem)
> iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
A toto je co? Nema syn a zaroven je NEW? Mam dojem za take neexistuju. Keby sa
niekto snazil fejkovat nove spojenie, bolo by INVALID a nie NEW.

> iptables -A FORWARD -i $VNEJSI_DEV -m state --state ESTABLISHED,RELATED -j DROP
Tu si asi chcel -j ACCEPT a ako som hovoril, -i by som vynechal a toto
pravidlo dal hned na zaciatok cejnu. Zrejme kvoli tomuto pravidlu to vobec
nebude fungovat.

> # Drop pro vsechno ostatni na vstupu
> iptables -A FORWARD -i $VNEJSI_DEV -j DROP
To by som riesil -P FORWARD DROP

> # Zablokovani vsech ostatnich z vnitrniho rozhrani
> iptables -A FORWARD -i $VNITRNI_DEV -j DROP
Ak som hovoril, -P FORWARD DROP

Ten zvysok je viacmenej ok, ale chcelo by to trocha sprehladnit.

S pozdravom,

Peter Surda (Shurdeek) <shurdeek na routehat.org>, ICQ 10236103, +436505122023

-- 
                   It's not a bug, it's tradition!


Další informace o konferenci Linux