Verwenden eines lokalen ungebundenen DNS-Servers für Strongswan-VPN-Verbindungen

562
b4d

Idee: Ich möchte ungebundenes DNS verwenden, das auf demselben Server wie die VPN-Lösung installiert ist, um Anzeigen und ähnliche unerwünschte Websites mit DNS für alle VPN-Verbindungen zu blockieren.

Derzeit ist ungebunden für lokale Anfragen eingerichtet.

Wie kann ich Strongswan / ipsec so einrichten, dass ungebundene DNS-Server verwendet werden? Muss ich das Internet ungebunden öffnen, oder kann ich den DNS lokal von der VPN-Verbindung über den Server abfragen?

Danke im Voraus!

PS: Wenn Sie weitere Informationen zum Setup benötigen, zögern Sie nicht, nachzufragen.

0
Verwenden Sie Split-Tunneling? Oder wird der gesamte Clientverkehr auf den VPN-Server getunnelt? Welche Kunden benutzen Sie? ecdsa vor 6 Jahren 0
Der gesamte Datenverkehr wird über VPN-Server getunnelt, wenn ein Client eine Verbindung herstellt. Clients sind iOS und MacOS. b4d vor 6 Jahren 0

1 Antwort auf die Frage

1
ecdsa

Eine Möglichkeit, dies zu tun, besteht darin, dem Server eine IP-Adresse aus dem Subnetz zuzuweisen, das Sie für die virtuellen IPs Ihrer Clients verwenden. Dann weisen Sie diese IP-Adresse Ihren Clients als DNS-Server zu und schließen die IP aus dem IP-Adresspool aus. Optional können Sie den Zugriff auf diese IP-Adresse über das Richtlinienanpassungsmodul von Netfilter filtern (siehe Manpage iptables-extensions ), sodass nur über VPN zugegriffen werden kann.

Wenn Ihr IP-Adresspool 192.168.8.0/24beispielsweise konfiguriert ist (z. B. rightsourceipin ipsec.conf oder einem Abschnitt "pool" in swanctl.conf), weisen Sie 192.168.8.1Ihrem Server (auf einer beliebigen Schnittstelle, z. B. lo) zu und ändern dann den Pool in 192.168.8.2/24(so Die erste Adresse, die einem Kunden zugewiesen wurde, lautet 192.168.8.2). Um ihn 192.168.8.1als DNS-Server zuzuweisen, konfigurieren Sie ihn rightdnsin ipsec.conf oder im Poolbereich in swanctl.conf.

Sie können zwar auch die öffentliche IP-Adresse des Servers verwenden und nur den Zugriff auf UDP-Port 53 über VPN mit der genannten Richtlinienübereinstimmung zulassen. Dies funktioniert jedoch nicht mit Apple-Clients, da sie keine Pakete über VPN an die öffentliche IP-Adresse des Servers senden ( Sie müssen also den DNS-Server öffentlich verfügbar machen oder Firewall-Regeln dynamisch hinzufügen, die den Zugriff von der öffentlichen / angegebenen IP-Adresse des Clients aus ermöglichen.

Danke für die Antwort, es erscheint logisch, ich werde es ausprobieren und die Ergebnisse berichten. b4d vor 6 Jahren 0
Ich habe dies getan, aber der Client verwendet immer noch den zweiten DNS-Eintrag in Rightdns. Wenn ich versuche, das VPN "dig @ 192.168.8.1 etwas" zu erzwingen, wird es Timeout. Ich habe die IP-Adresse der Loopback-Schnittstelle mit "ip addr add 192.168.8.1 dev lo" zugewiesen. Ich glaube, dass die Iptables das Problem sind, derzeit akzeptiere ich alle in der Kette zwischen 192.168.8.0/24 und alles andere. Versucht, die IP durch 192.168.8.2/24 zu ersetzen, aber iptables übernimmt die Änderung nicht. Irgendwelche Ideen, was kann ich sonst noch tun? b4d vor 6 Jahren 0
Die INPUT-Kette ist in diesem Fall relevant (die Zieladresse ist lokal), nicht FORWARD. ecdsa vor 6 Jahren 0
Hmm, sollte diese Regel es nicht fangen? ACCEPT all - lo * 0.0.0.0/0 0.0.0.0/0 / * Loopback * / b4d vor 6 Jahren 0
Okay, es funktioniert, mit LOG in iptables habe ich festgestellt, dass die Pakete verworfen werden. Hinzufügen einer Regel für alle behoben: ACCEPT udp - * * 192.168.8.2/24 192.168.8.1 udp dpt: 53 / * DNS ungebunden über VPN * / Vergessen Sie nicht, die Schnittstelle unbound.conf hinzuzufügen und die Zugriffskontrolle zuzulassen. Danke Ecdsa! b4d vor 6 Jahren 0
OK, großartig, du hast es geschafft. ecdsa vor 6 Jahren 0