Optimalizace iptables pravidel

Michal Kubecek mike na mk-sys.cz
Pondělí Červen 26 22:09:38 CEST 2006


On Mon, Jun 26, 2006 at 10:41:43AM +0200, Petr Horacek wrote:
> - ma vliv rozdeleni do uzivatelskych chainu?
> 
> - 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 ?

Ano, podstatné je, kolik a jak složitých testů a operací je třeba
provést s typickým paketem. Proto je žádoucí uspořádat pravidla tak, aby
se o co největším počtu paketů rozhodlo co nejrychleji.

> - 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?

Ano, podmínky se testují postupně a není-li některá splněna, další se už
netestují. Jinak by nemohlo fungovat např.

  iptables -A INPUT -p icmp -m limit --limit ... -j ACCEPT
  iptables -A INPUT -p icmp -j DROP

> - ma vliv pouziti rozsireni jako iprange, state?

Složitější podmínky jsou samozřejmě na procesor náročnější. S podmínkou
--state je to ale složitější, protože náročné není samotný test
podmínky, ale evidence flows a přiřazení stavu, což se musí dělat pro
všechny pakety (jakmile začnete connection tracking vůbec používat).
Existuje ale možnost, jak určité pakety ze "škatulkování" vyjmout, viz
akce NOTRACK v tabulce raw.

> - co delat tam, kde se neda pouzit uzivatelsky chain (tabulky NAT,
> MANGLE) a vic pravidel (markovani podle source IP pro pouziti CBQ)?

Jak jste přišel na to, že v tabulkách nat a mangle nelze používat
uživatelské řetězce? Moje zkušenost je přesně opačná.

							  Michal Kubeček



Další informace o konferenci Linux