Rosendoktor
Well-Known Member
Hallo,
erst mal bisschen Text vorweg
Also, ich war bei der Installation von FreeBSD sehr positiv überrascht, dass der Installer gleich die Installation eines lokalen validierenden Resolvers anbot. Genau sowas habe ich mir nämlich mit einigem Aufwand auch auf meinen Linux Notebooks und Android Phone+Tablet eingerichtet, unter Linux mit bind9 und unter Android mit einem selbstcompilierten unbound (das meiste an Vorarbeit hat da schon ein irgendein Tscheche gemacht).
Dabei gebe ich den Resolvern aber keine Forwarder, sondern lasse sie die Auflösung selbst über die Rootserver machen. Damit aber in lokalen, vertrauenswürdigen Netzen auch die internen Adressen aufgelöst werden können, soll der lokale Resolver in solchen Netzen nicht benutzt werden.
Jetzt ist die Frage, wie man das automatisiert. Da bieten sich ja mehrere Möglichkeiten an. Unter Linux erledigt das sehr bequem der ... tadaaaaaaaaaaaaa! ... NetworkManager! Bitte keine Diskussion darüber... Unter Android habe ich einfach die Holzhammermethode genommen und per iptables Regel alle ausgehenden DNS Pakete nach 127.0.0.1 zum lokalen unbound umgeleitet, ausser sie kommen vom lokalen unbound selbst oder sie gehen an die Adresse(n) vertrauenswürdiger Resolver in bekannten Netzen.
Das möchte ich unter FreeBSD auf dem Notebook auch so machen, bisher aber leider erfolglos. Eine Art NetworkManager gibt es... okay, lassen wir das. Also hab' ich versucht, mit dem recht filigranen Setup aus dhcp, dhcpv6, resolvconf uws. herumzuspielen, irgendwelche hooks zu suchen wo ich mich mit einem Skript einklinken kann, aber alles hat bisher immer mehr kaputtgemacht als dass es funktioniert hätte.
Also doch erst mal die aus Android bekannte Holzhammermethode. Ich habe noch keinerlei Ahnung von ipfw, daher wär's nett wenn mir hier jemand helfen könnte. Die iptables Regel die den Redirect macht sieht so aus:
Also alles ausgehende zu remote port 53, was nicht vom lokalen unbound kommt und nicht zur ip 88.xxx.yyy.146 geht, soll an den lokalen unbound auf 127.0.0.1:53 umgeleitet werden. ipv6 lassen wir jetzt erst mal weg...
Kann das mit ipfw auch so realisiert werden, und kann mir jemand helfen das zu übersetzen?
Danke und Gruss,
Robert
erst mal bisschen Text vorweg
Also, ich war bei der Installation von FreeBSD sehr positiv überrascht, dass der Installer gleich die Installation eines lokalen validierenden Resolvers anbot. Genau sowas habe ich mir nämlich mit einigem Aufwand auch auf meinen Linux Notebooks und Android Phone+Tablet eingerichtet, unter Linux mit bind9 und unter Android mit einem selbstcompilierten unbound (das meiste an Vorarbeit hat da schon ein irgendein Tscheche gemacht).
Dabei gebe ich den Resolvern aber keine Forwarder, sondern lasse sie die Auflösung selbst über die Rootserver machen. Damit aber in lokalen, vertrauenswürdigen Netzen auch die internen Adressen aufgelöst werden können, soll der lokale Resolver in solchen Netzen nicht benutzt werden.
Jetzt ist die Frage, wie man das automatisiert. Da bieten sich ja mehrere Möglichkeiten an. Unter Linux erledigt das sehr bequem der ... tadaaaaaaaaaaaaa! ... NetworkManager! Bitte keine Diskussion darüber... Unter Android habe ich einfach die Holzhammermethode genommen und per iptables Regel alle ausgehenden DNS Pakete nach 127.0.0.1 zum lokalen unbound umgeleitet, ausser sie kommen vom lokalen unbound selbst oder sie gehen an die Adresse(n) vertrauenswürdiger Resolver in bekannten Netzen.
Das möchte ich unter FreeBSD auf dem Notebook auch so machen, bisher aber leider erfolglos. Eine Art NetworkManager gibt es... okay, lassen wir das. Also hab' ich versucht, mit dem recht filigranen Setup aus dhcp, dhcpv6, resolvconf uws. herumzuspielen, irgendwelche hooks zu suchen wo ich mich mit einem Skript einklinken kann, aber alles hat bisher immer mehr kaputtgemacht als dass es funktioniert hätte.
Also doch erst mal die aus Android bekannte Holzhammermethode. Ich habe noch keinerlei Ahnung von ipfw, daher wär's nett wenn mir hier jemand helfen könnte. Die iptables Regel die den Redirect macht sieht so aus:
Code:
iptables -t nat -I OUTPUT -m owner ! --uid-owner <uid von unbound> ! -d 88.xxx.yyy.146 -p udp --dport 53 -j DNAT --to 127.0.0.1:53
iptables -t nat -I OUTPUT -m owner ! --uid-owner <uid von unbound> ! -d 88.xxx.yyy.146 -p tcp --dport 53 -j DNAT --to 127.0.0.1:53
Also alles ausgehende zu remote port 53, was nicht vom lokalen unbound kommt und nicht zur ip 88.xxx.yyy.146 geht, soll an den lokalen unbound auf 127.0.0.1:53 umgeleitet werden. ipv6 lassen wir jetzt erst mal weg...
Kann das mit ipfw auch so realisiert werden, und kann mir jemand helfen das zu übersetzen?
Danke und Gruss,
Robert