Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

IPTABLES: DNS blocken außer für einen Hostname

Registriert
16. Januar 2012
Beiträge
5.310
Reaktionspunkte
6.045
Punkte
373
Ort
127.0.0.1
Halli Hallo und Guten Tag,

ich benötige mal den Rat der IP-Tables-Experten, da ich auch nach Stunden noch kein Ergebnis erzielen konnte.

Ich habe einen Router auf DD-WRT Basis, welcher sich mit dem internen OpenVPN-Client zum VPN-Anbieter verbindet. Das klappt wunderbar.
Natürlich soll keine Verbindung nach außen dringen, wenn der VPN-Tunnel nicht besteht. Dafür sorgen folgende IPTables-Einträge:

Code:
iptables -I FORWARD -i br0 -o tun1 -j ACCEPT
iptables -I FORWARD -i tun1 -o br0 -j ACCEPT
iptables -I FORWARD -i br0 -o vlan2 -j DROP
iptables -I INPUT -i tun1 -j REJECT
iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE

Klappt ebenfalls sehr gut. Sowie keine Verbindung per VPN besteht geht nichts raus.

Nun zum Kern des Pudels: Mein Anliegen dreht sich darum, dass Hostnamen trotz fehlendem VPN-Tunnel aufgelöst werden.

Beispiel (mit nicht bestehendem VPN-Tunnel):

Code:
C:\Users\Unknown>ping amazon.es

Ping wird ausgeführt für amazon.es [52.95.116.112] mit 32 Bytes Daten:
Zeitüberschreitung der Anforderung.
Zeitüberschreitung der Anforderung.

Das pingen klappt (richtigerweise nicht), es wird allerdings der willkürlich gewählte Hostname aufgelöst. Dies muss ja nun doch über meinen gewöhnlichen Internet-Anschluss geschehen. Das sollte nach meinem Verständnis so nicht sein.

Nun lässt sich DNS nachvollziehbar nicht komplett blocken.

Meine Überlegung war nun, dass DNS für die Verbindung OHNE VPN geblockt wird mit der Ausnahme des Hostnamen des VPN-Anbieters, sonst kann ja der Tunnel nicht aufgebaut werden. Sowie der Tunnel dann steht sollte DNS komplett über den Tunnel abgewickelt werden.

Aber wie setze ich das um?

Ich habe nun schon lange mit allen möglichen Einstellungen rumprobiert wie:

Code:
iptables -A OUTPUT -o vlan2 -p udp --port 53 -m string --string VPN-ANBIETER --algo bm -j ACCEPT
iptables -A INPUT -i vlan2 -p udp --port 53 -m string --string VPN-ANBIETER --algo bm -j ACCEPT
iptables -A OUTPUT -o vlan2 -p tcp --port 53 -m string --string VPN-ANBIETER --algo bm -j ACCEPT
iptables -A INPUT -i vlan2 -p tcp --port 53 -m string --string VPN-ANBIETER --algo bm -j ACCEPT
iptables -A OUTPUT -o vlan2 -p udp --dport 53 -j DROP
iptables -A OUTPUT -o vlan2 -p tcp --dport 53 -j DROP

Aber das wars noch nicht.

Bitte erleuchtet mich.

Vielen Dank.
 
Zuletzt bearbeitet:
Hi,

da würde ich nicht bei iptables ansetzen, sondern am (eigenen) DNS Server, PI Hole z.B.

Ob die internen Clients was auflösen können oder nicht, ist ja so gesehen egal.

Gruß

Gesendet von meinem Xiaomi POCOPHONE F1 mit Tapatalk
 
Code:
# Allow DNS (53) to <dest IP>
iptables -A INPUT -p udp --dport 53 -d <dest IP> -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -d <dest IP> -j ACCEPT

# Deny all other DNS requests
iptables -A INPUT -p udp --dport 53 -j DROP
iptables -A INPUT -p tcp --dport 53 -j DROP

-supraracer
 
Hallo Supraracer,
danke schonmal für deine Teilnahme.

Das ist nicht ganz das was ich suche.

Wenn ich es richtig verstehe, dann wird bei deiner Lösung ein bestimmter DNS-Resolver (z.B. 8.8.8.8 von Google) gestattet und alle anderen nicht.

Ich will aber, dass solange kein Tunnel besteht NUR DER NAME DER VPN-SERVER aufgelöst wird (z.b. berlin.vpn-anbieter.com bzw. Allgemein *.vpn-anbieter.com). Und wenn der Tunnel dann besteht, dürfen durch diesen (und nur durch diesen) ALLE NAMEN aufgelöst werden.

Vielen Dank und beste Grüße
 
mir erschliesst sich der sinn nicht, aber nichtsdestotrotz würde ich es mit "Conditional forward" im DNS versuchen. Allerdings weiss ich nicht, ob deine infrastruktur das hergibt.
 
Zurück
Oben