Traffic nur auf VPN beschränken (IPTables)

Mei

Neu angemeldet
Registriert
5 Nov. 2014
Beiträge
2
Hi,
da ich hier immer am lesen bin, habe mir gedacht, auch ein Account zu erstellen. Mich würde eure Meinung zu meinem kleinen "Problem" interessieren :)

Ich habe einen kleinen Linux Rechner im Netzwerk der mit einem VPN dienst verbunden ist (nvpn). Ich möchte erreichen das der Rechner nur mit vpn ins Internet kommt. Sollte der Fall eintritt, dass der vpn Dienst down ist, soll der Rechner nicht ins Internet kommen.

Ich habe mich etwas mit Iptables beschäftigt und ein paar Regeln definiert.

[src=bash]
# local traffic
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -d 192.168.0.0/24 -j ACCEPT
# local connections via loopback
iptables -A OUTPUT -o lo -j ACCEPT
# Default Policy - Drop
iptables -P OUTPUT DROP
iptables -P INPUT DROP
# Allow DNS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
# Allow VPN establishment
iptables -A OUTPUT -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -p udp --sport 1194 -j ACCEPT
# Allow all bidirectional traffic
iptables -A INPUT -j ACCEPT -i tun0
iptables -A OUTPUT -j ACCEPT -o tun0
[/src]

Port 1194 ist der Port des vpn Anbieters. Ich muss den zur erstellung des Tun0 adapters erlauben. Das gleiche gilt für dns (port 53). In der vpn.config Datei ist keine IP des vpn Servers angegeben, sondern nur ein hostname.

So grob würde ich sagen es müsste funktionieren. Aber man kann sich halt nicht sicher sein. Ich bin ein Linux neuling und es ist wohl ganz gut möglich das ich etwas entscheidendes vergessen habe.
 
Grundsätzlich korrekt, in der Zeile
Code:
Expand Collapse Copy
iptables -A INPUT -d 192.168.0.0/24 -j ACCEPT
möchtest du allerdings wohl eher Pakete mit Quelle ([kw]-s[/kw]) 192.168.0.0/24 akzeptieren. Um DNS-Leaks zu verhindern, könnte auch sinnvoll sein, den Hostnamen in der Konfigurationsdatei durch die IP-Adresse zu ersetzen ([kw]nslookup hostname[/kw] liefert dir die zugehörige IP-Adresse) und keinen DNS-Traffic ausserhalb des VPNs zuzulassen.
 
Hallo,

auch wenn ich jetzt zu der Sache nichts genau sagen kann hätte ich da eine Frage.
Wie packe ich es das mein Linux Rechner ( in meinem Fall ein Raspberry ) über vpn ins Internet geht ich aber trotzdem über die Interne IP per SSH / FTP / Smb darauf zugreifen kann?

Möglich das diese Frage leicht zu beantworten ist, ich persönlich bin aber noch nicht darauf gekommen.

Ansonsten herzlichst willkommen!

lg
 
  • Thread Starter Thread Starter
  • #4
@Kugelfisch
Ja hast recht ich werde die INPUT regel ergänzen, danke. Aber es ist der mit der ip nicht so das die sich auch aendern kann? Müsste dann ja theoretisch ein Skript schreiben das in regelmäßigen Abständen checkt ob sich die Ip geändert hat. Oder verstehe ich da was falsch?

@Sp1xx
OpenVpn würde beim Raspberry Pi einen zweiten Adapter erstellen (tun0) dieser tunnelt dann den gesamten Traffic. Ich gehe mal davon aus mit interner ip meinst du die lokale ip adresse des Raspberry Pi? Ist ja so das es dann noch eth0 gibt. Dieser nimmt dann locale anfragen entgegen und tun0 kümmert sich um den Internet traffic.
 
Ok dann gibt es da gar keine komplikationen.
Na dann werde ich das heute mal testen :)

Viel Erfolg noch.
 
Zurück
Oben