On Mon, May 11, 2009 14:05, Heiko Schlittermann wrote:
Konrad Rosenbaum konrad@silmor.de (Mo 11 Mai 2009 13:43:46 CEST):
Alles UDP, was von Port 53 kommt, ist gut?
Nein, nur 95% sind gut. Der Rest wird vom Resolver gefilter oder kaeme auch durch eine Stateful-FW durch.
Nun, wer sagt, daà es zum Resolver geht, und nicht z.B. zum Portmapper oder woanders hin? Nur, weil es *von* Port 53/UDP kommt, muà es noch keine Antwort auf Anfragen Deines Resolvers sein, oder?
Stimmt. Haette ich dran denken koennen - Asche auf mein Haupt!
Die stateful FW (soweit 'state' bei UDP Sinn hat) hilft hier insofern, als daà sie auch noch Zielport auf der eigenen Maschine mit in die Betrachtung einbezieht (es muà halt die Antwort kommen zum Quellport des ausgehenden Paketes, und das innerhalb eines bestimmten Zeitfensters).
Urspruenglich hatte ich das mal so geregelt, dass ich nach den Ports meines eigenen Servers gefiltert hatte. Seit Bekanntwerden des Kaminsky-Bugs geht das aber nicht mehr, weil die Query-Ports randomisiert werden.
Was sind eigentlich die Timeouts fuer stateful filtering?
Ich suche noch nach einer gezielten Moeglichkeit auf meinen bind einzuschraenken: --uid-owner geht leider nur in OUTPUT.
Wo wir gerade dabei sind: kennt sich jemand mit DNSSEC aus und hat Lust mal einen Vortrag zu machen?
Wenn wir schon dabei sind und aus lauter Neugier: warum stossen Dir die beiden Zeilen danach (s.o.) nicht auf? ;-)
Doch, die waren mir auch aufgefallen, und bei zweimal hinsehen, habe ich dann gesehen, daà es 'poor man's state' sein könnte... Du könntest sicher auch das finale ACCEPT weglassen, wenn Du die SYN blockst, sollte niemand mehr Verbindungen aufbauen können.
Das ACCEPT fuer TCP ist noetig, sonst funktionieren von innen etablierte Verbindungen nicht. Das finale DROP am Ende meiner Chains ist reine Paranoia - Absicherung gegen Konfigurationsfehler.
Konrad