firewall (ipfw: static, stateful)

Miroslav Prýmek m.prymek at gmail.com
Wed Mar 31 10:06:37 CEST 2010


On 30.3.2010, at 23:51, Dan Lukes wrote:

> 
>> To jsem prave myslel jako tu otazku - jestli nekdo nekde nevidel nejaky konkretni priklad "na zeleze XY s YZ RAM stacilo
>> otevrit ZX spojeni, aby se server efektivne zhroutil kvuli swapovani".
> 
> Nepripada v uvahu. Firewally jsou bez vyjimky kernelove moduly a kernelova pamet se nikdy neswapuje, pokud vim.
> 
> Jenze pamet neni to an cem dojes. Napriklad ipfw v defaultnim nastaveni ma omezen pocet dynamickych pravidel na 8192,
> pricemz zivotnost dynamickeho pravidla se udava ve vterinach. I kdyby slo o jedinou, tak ten, kdo je vubec schopen zpusobit
> vytvoreni dynamickeho pravidla musi byt schopen ukon zopakovat osm tisickrat za vterinu.
> 
> To je dostupne i cloveku s notebookem za ADSL linkou. A v tomto pripade neplati, ze nova pravidla vytlaci stara - kdyz je limit zaplnen tak nova pravidla proste nevznikaji.

Ted nevim, jestli tomu uplne dobre rozumim. Mel jsem za to, ze to funguje takhle:
1. klient A (zevnitr site) posle z portu X na www.google.cz:80 paket SYN
2. pri pruchodu tohodle paketu firewallem se vytvori dynamicky pravidlo, ktery povoluje 
   pakety TCP z www.google.cz:80 na A:X a naopak.

Pokud to dobre chapu, pravidlo existuje po celou dobu existence spojeni a nesmi
(standardne) vypadnout driv, nez je spojeni ukonceny.

man ipfw:
     net.inet.ip.fw.dyn_keepalive: 1
             Enables generation of keepalive packets for keep-state rules on
             TCP sessions.  A keepalive is generated to both sides of the con-
             nection every 5 seconds for the last 20 seconds of the lifetime
             of the rule.

Takze pokud nemam firewall postavenej tak, ze dovnitr pousti vsechny pakety
uz navazanych spojeni (a dynamicky pravidla tak jsou potreba jenom pro handshake), staci
utocnikovi otevrit tech 8192 spojeni a zadny jiny uz se potom neotevre
(tzn. firewall dalsi spojeni zacne blokovat).

Z toho by teda plynulo, ze stavovy firewall MUSI mit jako jedno z prvnich pravidel
neco ve stylu
allow tcp any to any established
- a tohle pravidlo rozhodne musi byt DRIV nez check-state. Jinak bude fw nachylny
k dos preplnenim tabulky dyn. pravidel.
Je to tak? 

On 31.3.2010, at 7:35, Dan Lukes wrote:

> On 03/31/10 05:32, Vilém Kebrt:
>> Konkretni test ti asi nedam, ale cca 130 klientu na wifine mi zatizi P3
>> 1,3Ghz s 512M ram , kdy to pecko routuje(ospf),hraje si s vlanama,FW a
>> natuje na cca 30%.
> 
> Cca 1300 uzivatelu na ethernetu, router (Core2 Duo 2.53GHz, 2GB RAM) s vlany a ospf a jiz zminenym firewallem s padesati pravidly (kde vetsina paketu zdola nejvyse deset), prakticky zadny NAT, s obvyklym tokem v tech zatizenejsich okamzicich neco pres 100MBps ma zatizeni do jednoho procenta - z cehoz ma cca tretinu na svedomi "scitatko dat".
> 
> Jenze takhle jednoduche to neni - ve skutecnosti je ten router uz blizko sveho stropu co dokaze pres sbernice protlacit.


Diky, neco takoveho jsem pro hrubou predstavu chtel :)

mejte se 

Mirek



More information about the Users-l mailing list