vsimni si, ze ESTABLISHED a RELATED mas stale ako prve v tabulke keby si tam mal len new, tak ti kazdy packet musi prejst celou iptables tabulkou kym zisti ktoremu pravidlu patri, ale co , skus si to, bude ti to fungovat aj len s NEW pravidlami, ale uvidis ako ti pojde vykon dole, resp CPU zataz hore.
Já bych to takto negeneralizoval. Jsou typy provozu, u kterých je zbytečné vůbec plýtvat prostředky na stateful firewall. Např. pokud to není poslední firewall v řadě, nebo pokud je provoz opravdu dobře zpracováván v aplikaci. Příkladem je celý protokol UDP, který je z podstaty stateless.
Takže pokud šetřit prostředky tak v tomto pořadí:
1. určit, k jakému provozu potřebuji (vyžaduji) stateful zpracování,
2. pravidla pro rozpoznání poškozených paketů (např. nepřípustné nebo neočekávaní kombinace TCP flagů),
3. první pravidla pro stateless provoz,
4. druhá pravidla pro established,
5. určit, jestli vůbec potřebuji RELATED, pokud ne, nezavádět toto pravidlo (málokdo dodržuje),
6. pravidla pro stateful firewall (NEW)
7. cílové REJECTY a DROPY.
Co jsou podle mě prohřešky (zbytečné) proti síťové etice:
1. zakazovat úplně ICMP,
2. z LAN mají být nastaveny REJECTY, ne DROPY,
3. z WAN mají být nastaveny DROPY, příp. TARPIT.
Bohužel, většina firewallů založených na linuxu (i dalších free systémech) funguje podle primitivních příkladů na netu, kde se nepracuje dobře ani se statefull / stateless provozem, dost často se ICMP zakazuje by default (prasárna!), a zbytek provozu se bez přemýšlení DROPUJE.