Ich habe die folgende Anleitung verwendet, um meinen Himbeer-Pi als Zugangspunkt einzurichten:
Raspberry Pi 3 als WLAN-Zugangspunkt
Ich bin Weiterleitung wlan0
an eth0
und NATing all meinen Verkehr. Funktioniert super!
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Jetzt möchte ich die gleichen Regeln einrichten, außer die Schnittstelle verwenden tun0-00
und den gesamten Datenverkehr über meinen VPN-Tunnel weiterleiten. Ich möchte alles senden, möchte nicht, dass etwas in das Host-Netzwerk gelangt. Denke, es geht ungefähr so:
sudo iptables -t nat -A POSTROUTING -o tun0-00 -j MASQUERADE
sudo iptables -A FORWARD -i tun0-00 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o tun0-00 -j ACCEPT
Leider weiß ich, dass diese iptables-Regeln nicht vollständig sind ... Das Problem ist, dass es eth0
wach bleibt; Die ursprüngliche Regel zum Weiterleiten des Datenverkehrs eth0
besteht weiterhin.
Ich möchte meinen gesamten Verkehr durch den Tunnel senden, wenn der Tunnel geöffnet ist. wenn nicht, bin ich gut damit eth0
.
Aktualisieren:
Ich habe das Flag -I verwendet, um meine Regeln einzufügen:
sudo iptables -t nat -I POSTROUTING 1 -o tun0-00 -j MASQUERADE
sudo iptables -I FORWARD 1 -i tun0-00 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -I FORWARD 1 -i wlan0 -o tun0-00 -j ACCEPT
Die FORWARD-Kette:
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- wlan0 tun0-00 0.0.0.0/0 0.0.0.0/0
2 0 0 ACCEPT all -- tun0-00 wlan0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
3 0 0 ACCEPT all -- eth0 wlan0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
4 0 0 ACCEPT all -- wlan0 eth0 0.0.0.0/0 0.0.0.0/0
5 0 0 ACCEPT all -- wlan1 wlan0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
6 0 0 ACCEPT all -- wlan0 wlan1 0.0.0.0/0 0.0.0.0/0
Immer noch keine Freude, die Weiterleitung scheint nicht zu funktionieren.
Client-VPN-Konfiguration
Ich habe Dinge herausgeschrubbt, die empfindlich aussahen:
dev tun
persist-tun
persist-key
cipher AES-256-CBC
auth SHA1
tls-client
client
resolv-retry infinite
remote XXX.XXX.XXX.XXX PORT_NUM udp
lport XXX
verify-x509-name "VPN_Certificate" name
pkcs12 CERT_NAME.p12
tls-auth CERTIFICATE-tls.key 1
ns-cert-type server
redirect-gateway local def1
Der Pi verbindet sich einwandfrei und spiegelt eine andere öffentliche IP wider. Die Clients zeigen den Pi weiterhin als Gateway an, können jedoch keine Verbindung mehr herstellen.
Lösung
Zuerst musste ich redirect-gateway def1
in die .ovpn-Datei auf dem pi hinzufügen .
Dann musste ich meinen Schnittstellennamen richtig eingeben ... Ugh. Ich fühle mich wie ein Verrückter, aber anscheinend habe ich tun0-00
am Anfang gesehen und das war das einzige Mal, dass es existierte. Die Schnittstelle ist eigentlich nur tun0
.
Die entsprechenden iptables-Befehle waren also:
sudo iptables -t nat -I POSTROUTING 1 -o tun0 -j MASQUERADE
sudo iptables -I FORWARD 1 -i tun0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -I FORWARD 1 -i wlan0 -o tun0 -j ACCEPT
Funktioniert jetzt super!