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

Alexander Bahlo fli4l at trikone.han.de
Mi Okt 12 09:40:46 CEST 2016


Am Wed, 12 Oct 2016 02:50:07 +0200 schrub kay <kay at martinen.de>:

> > # dns_dhcp.txt
> > HOST_x_NAME='nautilus'
> > HOST_x_ALIAS_1='www'
> > 
> > # base.txt
> > PF_PREROUTING_2='tmpl:http    dynamic DNAT:@hostname LOG:http'
> >   
> > => Funktioniert. Ist auch so dokumentiert.  
> 
> Wenn du irgendwo auch 'hostname' als HOST_x_NAME konfiguriert hast? Oder
> auch unter ALIAS?
> 
> Oder meintest du oben statt @hostname doch @nautilus?

Ja, "verschrieben". Also

HOST_x_NAME='hostname'
PF_PREROUTING_2='tmpl:http dynamic DNAT:@hostname LOG:http'

Funktioniert.

> > # base.txt
> > PF_PREROUTING_2='tmpl:http    dynamic DNAT:@www LOG:http'
> >   
> > => Funktioniert nicht. Ich kann keinen Grund erkennen, warum das nicht  
> > funktionieren sollte. Da muss keine DNS-Anfrage mehr ausgeführt werden,  
> 
> Ich weiß jetzt nicht wie fli die Aliasnamen intern umsetzt. Aber denkbar
> wäre das sie in seinem dns-server auch als Aliase gesetzt werden. Das
> wäre dann ein CNAME Record und der unterscheidet sich schon von einem
> hostnamen oder einem A record.

Möglich, denn anderen x_NAME-Definitionen - bei HOST_x_NAME habe ich
es nicht in der Doku gefunden - wird die Angabe bei _NAME für die
Rückwärtsauflösung verwendet.

> @www scheint mir auch problematisch von der benennung her. Das kann zwar
> auch einfach nur ein hostname sein, aber z.B. viele Browser setzen das
> automatisch vor einen namen wenn sie ihn sonst nicht finden können.
> Und damit mag es noch mehr fallstricke geben. Da es ein interner Alias
> ist kannst du es ja mal mit einem anderen namen testen.

@www ist in der fli4l-Doku explizit verwendet worden (wobei in diesem
Fall "www" als HOSTNAME definiert wurde). Ich habe mir noch keine
Gedanken darüber gemacht, ob das eventuell problematisch sein könnte.
Ich habe es aber in public Records auch schon so gefunden.

> >> 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.  
> > 
> > Ich kann Deinen Ausführungen überhaupt nicht folgen.  
> 
> Vielleicht half das o.g. ja schon weiter.
> 
> Zu dem was Christoph ansprach scheint es nun so zu sein das FLI
> hostnamen intern mit IP-Adressen verknüpft und diese Tabelle für den
> Paketfilter vorhält so das dort keine dns-abfragen nötig sind. ABER, das
> scheint nur DANN zu funktionieren wenn der hostname vom fli schon mal
> angefragt wurde.
> 
> Beispiel1: Ein PC im Lan fragt deinen fli nach 'nautilus'. FLI merkt
> sich die antwort und der paketfilter reagiert auch auf ein @nautilus
> richtig.
> 
> Beispiel2: KEIN PC im Lan hat den o.g. hostnamen nachgefragt, oder er
> benutzte direkt die IP Adresse. Hier hat FLI sich nichts merken können
> und darum funktioniert die paketfilter-regel mit @nautilus nicht.
> 
> OB und wie das auch auf Aliase zutrifft ist dem genannten nicht zu
> entnehmen. Denkbar wäre es.

Dann dürfte die Regel @hostname eigentlich eher nicht funktionieren,
tut sie aber (und ist auch dokumentiert).

> Mache einen Test. Richte das obige so ein wie du es wolltest, mit
> @hostname und @aliasname und teste ob deine paketfilter-regel mit @www
> nicht funktioniert. Dann mache von einem internen PC ein 'host www' oder
> ein 'ping www'. Dann teste nochmal ob deine paketfilter regel jetzt
> funktioniert.
> 
> Wenn es dann geht -> Solved.
> Wenn es dann nicht geht: Hast du was falsch gemacht oder: es geht nicht!

Ah, vielleicht hätte ich das Ergebnis des Image-Erstellungsprozesses
dazu schreiben sollen: Ich glaube, das bei Verwendung des Alias eine
Fehlermeldung kommt und das Image gar nicht erst erstellt wird. Aber
da ich mir nicht ganz sicher bin, werde ich das nochmal ausprobieren
und bei Erfolg Deinen Testfall auch durchführen.

Viele Grüße, Alexander.



Mehr Informationen über die Mailingliste Fli4L