Optimalizace iptables pravidel

Peter Surda surda na shurdix.com
Úterý Červen 27 00:24:23 CEST 2006


On Monday 26 June 2006 10:41, Petr Horacek wrote:
> Dobry den vsem,
ahojky,

> jelikoz se mi na firewallu zacinaji mnozit pravidla a parkrat se toto
> doporuceni mihlo i tady v konferenci, tak bych chtel udelat optimalizaci
> techto pravidel. Sice jich neni jeste pres 100, ale i tak.
mam s tym trocha skusenosti, tak skusim poradit.

> - ma vliv rozdeleni do uzivatelskych chainu?
Samo o sebe nie, skor sluzi na zvysenie prehladnosti. Existuju vsak situacie, 
ked pouzitie vlastnych cejnov moze zlepsit aj vykon.

> - ma vliv poradi pravidel v chainech (uzivatelskych i standartnich - I,
> O, F) - tzn. ty, ktere predpokladam, ze budou platne nejcasteji,
> presunot na zacatek a naopak; priklad: nejdriv povolit 80 pro web a az
> potom malo vyuzivane 21 ftpko?
Z cisto statistickeho hladiska to vplyv ma, ale nie je to hlavny sposob.

> - ma vliv poradi parametru v pravidlu - nedriv rozhrani, pak protokol,
> pak treba port - vyhodnocuje se to postupne jako treba nektere
> programovaci jazyky nebo az cele?
Vplyv to nema, lebo on si to aj tak zoradi sam podla nejakeho fixneho kluca.

> - ma vliv pouziti rozsireni jako iprange, state?
Ma, a este je dobry mport a ipset.

> - co delat tam, kde se neda pouzit uzivatelsky chain (tabulky NAT,
> MANGLE)
da.

> a vic pravidel (markovani podle source IP pro pouziti CBQ)?
delenie v tc mozes robit priamo cez hashing (link som uz parkrat posielal). Ak 
to z nejakeho dovodu nejde, a tych tried je vela (t.j. nema zmysel pouzit 
ipset), mozes pouzit prave tu skor spominanu vynimku pre optimalizaciu 
pouzitim uzivatelskych cejnov. Konkretne sprav strom, napriklad takto (format 
iptables-restore):
*mangle
:marking
:c-192.168.0.0/28
:c-192.168.0.16/28
:c-192.168.0.32/28
:c-192.168.0.48/28
# atd
-A OUTPUT -o eth0 -s 192.168.0.0/24 -j marking
-A marking -s 192.168.0.0/28 -j c-192.168.0.0/28
-A marking -s 192.168.0.16/28 -j c-192.168.0.16/28
-A marking -s 192.168.0.32/28 -j c-192.168.0.32/28
-A marking -s 192.168.0.48/28 -j c-192.168.0.48/28
# atd
-A c-192.168.0.0/28 -s 192.168.0.0 -j MARK --set-mark 0x0
-A c-192.168.0.0/28 -s 192.168.0.1 -j MARK --set-mark 0x1
-A c-192.168.0.0/28 -s 192.168.0.2 -j MARK --set-mark 0x2
-A c-192.168.0.0/28 -s 192.168.0.3 -j MARK --set-mark 0x3
# atd

V tomto pripade zo statistickeho hladiska znizis priemerny pocet testov z 128 
na 17 (a maximalny z 256 na 33).

> Nemate tip na nejaky clanek o takove optimalizaci, pripadne nejaky
> validator?
mozes skusit aj nf-hipac, ktory ma oproti iptables sice nejake obmedzenia, ale 
optimalizaciu si robi sam "vo vnutri".

S pozdravom,
Peter

-- 
http://www.shurdix.org - Linux distribution for routers and firewalls


Další informace o konferenci Linux