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

Odpovedet emailem