[fli4l] PF_PREROUTING-Regeln für geroutete IPs auf dem DSL-Anschluss

Christoph Schulz fli4l at kristov.de
Di Okt 11 08:42:33 CEST 2016


Hallo!

kay schrieb:

> IMHO löst der paketfilter selbst keine adressen auf. Darum kannst er
> weder mit alias noch mit domainnamen etwas anfangen.

Das ist für fli4l 4.0 nicht ganz richtig, dort gibt es eine Unterstützung 
dafür.

> Die Gründe sind wohl recht simpel. Wenn das ginge, dann müsste m.E. pro
> Zutreffender Regel erst eine dns-anfrage ausgeführt werden, egal ob nun
> gegen eine hosts-datei oder einen dns-server/proxy. Sonst könnte sich
> die IP zu dem namen geändert haben und dann die Regel auf das falsche
> Ziel schiessen. Außerdem dauern dns-anfragen sicher deutlich länger als
> die durchlaufzeit eines pakets durch die filterregeln.
> 
> Denkbar wäre ein um das 100 bis 1000-fach Geringerer Durchsatz - des
> gesamten Routings. Wer will das schon.

Deshalb wird es auch nicht so implementiert ;-)

Vielmehr geht der fli4l davon aus, dass auch die Clients das Ziel erst via 
DNS auflösen müssen. Wird dies getan, wird das Ergebnis der DNS-Auflösung in 
eine interne Hash-Tabelle (ipset) geschrieben, die dann von einer Firewall-
Regel ausgelesen wird. Weil das Suchen in der Hash-Tabelle flott geht und 
die DNS-Auflösung nicht während der Abarbeitung der Firewall-Regeln, sondern 
vorher geschieht, funktioniert das ganz gut. Natürlich kann man Szenarien 
ersinnen, in denen der Weg nicht funktioniert, etwa wenn der Client von 
Anfang an direkt die IP-Adresse verwendet und somit auf die DNS-Auflösung 
verzichtet, oder wenn der Client die DNS-Auflösung auf anderem Wege 
durchführt (nicht via Port 53 und/oder nicht via DNS-Protokoll). Aber das 
sind eher Ausnahmen denn die Regel. In der Praxis funktioniert dies ganz 
gut, etwa wenn man einem Client den Internet-Zugang generell verbieten, den 
Zugriff auf "windowsupdate.microsoft.com" aber erlauben möchte.


Viele Grüße,
-- 
Christoph Schulz
[fli4l-Team]


Mehr Informationen über die Mailingliste Fli4L