OpenVPN stellt eine Verbindung her, aber kein Internetzugang

OpenVPN stellt eine Verbindung her, aber kein Internetzugang

Ich kann nicht herausfinden, warum meine OpenVPN-Verbindung nicht funktioniert. Es scheint, als ob die Verbindung einwandfrei funktioniert. Ich kann mich mit meinem Server verbinden, aber wenn ich einmal verbunden bin, kann ich das Internet nicht über VPN nutzen.

Dies ist ein VPS-Server, der unter Debian läuft

Hier ist meine OpenVPN-Server.conf-Datei

port 1194

proto udp

dev tun

ca ca.crt
cert server.crt
key server.key  # This file should be kept secret

dh dh2048.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "redirect-gateway def1"

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

keepalive 10 120

comp-lzo

user nobody
group nogroup

persist-key
persist-tun

status openvpn-status.log

log         openvpn.log

verb 6

mute 20

Und hier ist meine client.conf-Datei

client

dev tun

proto udp

remote server_ip 1194

resolv-retry infinite

nobind

persist-key
persist-tun

ca ca.crt
cert client.crt
key client.key

ns-cert-type server

comp-lzo

verb 3

remote-cert-tls server

Ich habe auch Firewall-Regeln hinzugefügt, um Verbindungen und Routen zu akzeptieren, aber seltsamerweise erscheinen einige Regeln mehrfach. Hier ist meine iptables-Speicherdatei

# Generated by iptables-save v1.4.8 on Sun Dec 22 04:36:18 2013
*nat
:PREROUTING ACCEPT [53:9749]
:POSTROUTING ACCEPT [9:675]
:OUTPUT ACCEPT [9:675]
-A PREROUTING -d server_ip/32 -p udp -m udp --dport 53 -j REDIRECT --to-ports 1194 
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 
-A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source server_ip 
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 
COMMIT
# Completed on Sun Dec 22 04:36:18 2013
# Generated by iptables-save v1.4.8 on Sun Dec 22 04:36:18 2013
*filter
:INPUT ACCEPT [946:112417]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [824:172939]
-A INPUT -i tun0 -p tcp -m tcp --dport 1194 -j ACCEPT 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 10.8.0.0/24 -j ACCEPT 
-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 10.8.0.0/24 -j ACCEPT 
-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 10.8.0.0/24 -o eth0 -j ACCEPT 
COMMIT
# Completed on Sun Dec 22 04:36:18 2013

Ich habe auch /etc/sysctl.conf überprüft, um sicherzustellen, dass

net.ipv4.ip_forward=1

ich habe auch

net.ipv6.conf.all.forwarding=1

Ich habe also eine OpenVPN-Verbindung auf meinem Linux-PC und auf Virtualbox XP ausprobiert und beide hatten eine Verbindung, aber keiner von ihnen hatte nach der Verbindung Zugriff auf das Internet.

Das Seltsamste daran ist, dass beim Durchführen meines Traceroute eine Verbindung über VPN angezeigt wird.

Ich mache zum Beispiel traceroute google.com

1 my ip from vpn connection
2 openvpn server ip
3 ...
4 ...
5 ... few hops between server to google
6 and finally google server ip

Traceroute zeigt also, dass die Verbindung über VPN läuft, und auch wenn ich einen Ping ausführe, erhöht sich der Ping auf 100 ms. Im Gegensatz dazu beträgt der Ping, wenn ich nicht mit VPN verbunden bin, etwa 20 ms.

Aber wenn ich versuche, mit einem beliebigen Programm (Firefox, Chrome, iExplorer) im Internet zu surfen, passiert nichts. Nichts wird geladen und die Verbindung läuft ab.

Es liegt nicht daran, dass mein Server langsam ist und daher die Seiten nicht geladen werden. Der Geschwindigkeitstest zeigt eine Verbindung von etwa 70 Mbit/s auf dem Server, und ich habe eine Verbindung von 6 Mbit/s.

Und wenn ich versuche, eine Verbindung zu einem anderen VPN wie Cloudnymous herzustellen, funktioniert alles einwandfrei. Es stimmt nur etwas mit meinem OpenVPN-Setup nicht.

BEARBEITEN: Schließlich dachte ich, ich hätte es endlich zum Laufen gebracht, nachdem ich mit vielen Einstellungen herumgespielt habe, kann ich mich endlich mit meinem VPN verbinden und von dort auf das Internet zugreifen.

Jetzt habe ich noch ein letztes Problem. Da ich Linux verwende, funktionieren einige Programme hier nicht und ich verwende Virtualbox mit einer Windows XP-Installation, aber wenn ich mit VPN auf Virtualbox verbunden bin, kann ich im Internet surfen. Aber kein Programm kann eine Verbindung zum Internet herstellen. Außerdem verliert meine VPN-Verbindung von Zeit zu Zeit die Internetverbindung, und es liegt nicht an meiner Internet- oder Serververbindung, denn während ich in dieser Zeit die Internetverbindung über VPN verliere, kann ich mich immer noch mit Putty über SSH mit dem Server verbinden und verschiedene Dinge tun.

Antwort1

Masquerading funktioniert auf einem VPS nicht. Sie müssen iptables Source NATstattdessen Folgendes verwenden:

iptables -t nat -A POSTROUTING -s 10.x.x.x/xx -j SNAT --to-source y.y.y.y

x.x.x.x/xist das VPN-Subnetz - y.y.y.yist die IP-Adresse Ihrer Server-Ausgabeschnittstelle.

Antwort2

Stellen Sie sicher /etc/default/ufw, dass auf dem Server DEFAULT_FORWARD_POLICY="ACCEPT"statt "DROP" und starten Sie dann die Firewall neu

sudo ufw disable
sudo ufw enable

Antwort3

Ich hatte ein ähnliches Problem, bei dem OpenVPN einwandfrei funktionierte, bis ich den Router wechselte. Ich vermutete, dass es an der Firewall des Routers lag, obwohl ich die erforderlichen Ports geöffnet hatte. Ich schaute mir jedoch rc.local an und sah, dass bei der ersten Konfiguration die iptables-Zeile mit der tatsächlichen IP-Adresse eingerichtet worden war und nicht mit der erwarteten $MY_IP-Variable:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to 192.168.0.15

statt:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --zu $MY_IP

Das Problem bestand darin, dass durch die Änderung des Routers dem Server eine andere IP zugewiesen wurde und ich einfach eine Reservierung für die neue IP vorgenommen habe und erwartet habe, dass alles funktioniert.

Wenn ich für den Server die gleiche IP reserviert hätte wie zuvor, hätte ich mir viel Kopfzerbrechen ersparen können.

verwandte Informationen