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