Diky moc za tipy, s ipfw jsem novacek, takze s rulesety jsem se zatim
neseznamil, ale zni to jako
presne to, co potrebuju.
dik
Mirek
On 4.3.2009, at 11:43, Dan Lukes wrote:
Miroslav Prýmek napsal/wrote, On 03/04/09 07:53:
BTW, kdyz uz jsme u toho, zlobi me treba ipfw s jednou veci:
mam X pravidel s "setup keep-state" a predposledni pravidlo by melo
byt (muze byt) podle handbooku
deny tcp from any to any established
cili "zahodit vsechno, co se tvari jako established ale pritom se
nenamatchovalo na check-state"
No ale ma to tu (docela blbou) nevyhodu, ze pri restartu firewallu
se vyhazou pravidla
a timpadem vsechna existujici spojeni spadnou prave diky tomu
predtim popsanymu
pravidlu, protoze se nenamatchuji a zaroven jsou established.
Tak si rikam, co je vetsi zlo - jestli to pravidlo zmenit z "deny"
na "allow" (hodne firewallu
na linuxu se tak dela, tak co?) a nebo radsi pocitat s tim, ze
restart firewallu umrtvi existujici spojeni
Nejsem priznivcem stavoveho firewallu v ipfw. Prilis snadno muze byt
cilem uspesneho DoS utoku. Snazim se vnitrni sit mit v takovem
stavu, abych tento typ filtru na hranicnim routeru vubec nepotreboval.
Kdyz uz bych se ale do podobneho problemu dostal, resil bych ho
pomoci rulesetu. Dynamicka pravidla zanikaji expiraci nebo tehdy,
kdyz zanikne "generujic pravidlo" (to, ktere je vytvorilo). Takze
pokud je chci zachovat, je treba aby generujic pravidlo nezaniklo.
To jde nastesti celkem trivialne - ten "restart" firewallu se proste
udela jako presunuti rulesetu 0 do nejakeho jineho cisla, jeho
zneaktivneni (pravidla neaktivniho rulesetu se neuplatnuji ale stale
existuji a tudiz jimy generovana dynamicka pravidla take
nezaniknou). Smazani neaktivniho rulesetu udelam az o nejakou dobu
pozdeji.
To nezarucuje, ze i tak nestrihnu nejaka navazana spojeni, ale
jejich pocet bude vyrazne nizsi.
Me to pripada trivialni reseni, ale pripoustim, ze to muze byt i
proto, ze uz rulesety tak jako tak pouzivan. To, co ty nazyvas
"resetem firewallu" a delas to patrne smazanim vsech ruli a
naplnenim novymi je mi nesympaticke, protoze existuje doba, kdy je
firewall v nekonzistentnim stavu (jen castecne naplneny) - a co hur
- pokud v prubehu plneni firewallu dojde k jakekoliv chybe, skoncis
s neuplnym firewallem.
Takze ja delam reload zasadne jinak. Misto "bezneho" ipfw -f flush
mam:
${fwcmd} delete set 1
${fwcmd} set move 0 to 1
${fwcmd} set enable 1 disable 0
${fwcmd} delete set 0
pak mam "bezne naplneni firewallu"
a kdyz se to bez problemu povede, tak koncim sekvenci
${fwcmd} set enable 0 disable 1
${fwcmd} delete set 1
Je to vlastne presne to, co potrebujes, jen bys ten zaverecny
"delete set 1" musel opozdit. A pripadne rozmyslet co se stane, kdyz
se pokusis firewall reloadovat nekolikrat rychle po sobe.
Ja bych to nejspis resil takhle nejak.
A jeste bych si dovolil poznamenat (a rovnou rikam, ze to je
kontroverzni nazor a neocekavam, ze s nim budou vsichni souhlasit),
ze akce "deny" do firewallu patri jen ve velmi vyjimecnych
situacich. V beznych povazuju za samozrejme pouzit "unreach filter-
prohib".
Az budes jednou hledat, proc se nemuzes spojit z mista A na hodne
vzdalene misto B a vsechno co zjistis je, ze kdesi po ceste (kterou
nemas pod kontrolou) ti proste pakety mizi, ale ty nevis kde, tak
pochopis proc je to dulezite.
Dan
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l