Kein Internet über PiVPN / OpenVPN Client

raffi_xd60

Cadet 2nd Year
Registriert
Juli 2022
Beiträge
19
Guten Abend zusammen,
Ich habe schon etwas länger einen Raspberry Pi und nun will ich ihn als VPN Nachhause von Unterwegs aus nutzen. Ich habe PiVPN mit dem Script:

curl -L https://install.pivpn.io | bash

installiert und habe nun das Problem, dass ich kein Internet habe, aber der Client ist verbunden.

Hier meine cofig:
client
dev tun
proto udp
remote meinedomain.net 1194
resolv-retry infinite
nobind
remote-cert-tls server
tls-version-min 1.2
verify-x509-name raspberrypi_my name
cipher AES-256-CBC
auth SHA256
auth-nocache
verb 3

Den Port habe ich an meiner FritzBox freigegeben.
Der Pi hat auch eine feste IP Adresse.

Was vielleicht noch wichtig ist zu erwähnen, ich nutze nebenbei noch PiHole... vielleicht liegt da irgendwo das Problem?

Danke für eure Hilfe

Mit freundlichen Gruß
 
Zuletzt bearbeitet:
hätteste ma besser wireguard genommen...dann wäre es etwas einfacher...
nunja...

also, zunächst muss im rapsi bei dnsmasq.d eine textdatei rein (als name zb 99-pivpn.conf).
dort drin steht nur "listen-address=127.0.0.1, [IP des Pihole], [IP des Vpn]"
beispiel:
Code:
# dnsmasq soll auf localhost, pihole und pivpn lauschen
listen-address=127.0.0.1, 192.168.178.10, 10.8.0.1

weiterhin muss die openvpn server config angepasst werden.
dort muss der dns server (pihole) mitgeteilt werden:
Code:
push "dhcp-option DNS 192.168.178.10"

wie sieht denn deine server.conf aus?
da fehlen evtl einträge wie zb
Code:
server 10.8.0.1 255.255.255.0
push "route 192.168.178.10 255.255.255.255"
push "redirect-gateway def1"

da muss in jedem fall von hand nachgearbeitet werden.
openvpn ist da etwas komplizierter..
(bei wireguard muss man nur die listen adress eintragen sonst nix)
 
Wie testest du die Verbindung denn? Hoffentlich nicht von zu Hause aus dem WLAN, sondern mit einer Mobilfunkverbindung?

Wir brauchen mehr Informationen über dein IP-Setup und dein Routing. Soll der VPN Server NAT machen oder vollwertig routen?

n1tro666 schrieb:
openvpn ist da etwas komplizierter..
(bei wireguard muss man nur die listen adress eintragen sonst nix)
Dafür muss man sich bei Wireguard um die gesamte Umgebung und das Adressmanagement selber kümmern, das nimmt OpenVPN einem vollständig ab. Und OpenVPN ist leistungsfähiger, wenn man Verbindungen aus kritischen Umgebungen heraus braucht.

n1tro666 schrieb:
wie sieht denn deine server.conf aus?
da fehlen evtl einträge wie zb
Code:
server 10.8.0.1 255.255.255.0
push "route 192.168.178.10 255.255.255.255"
push "redirect-gateway def1"
Wenn du das Default Gateway umleitest, brauchst du die zusätzliche Host Route nicht.

Aber generell wären mehr Informationen zu den conf Dateien hilfreich.
 
n1tro666 schrieb:
hätteste ma besser wireguard genommen...dann wäre es etwas einfacher...
nunja...

also, zunächst muss im rapsi bei dnsmasq.d eine textdatei rein (als name zb 99-pivpn.conf).
dort drin steht nur "listen-address=127.0.0.1, [IP des Pihole], [IP des Vpn]"
beispiel:
Code:
# dnsmasq soll auf localhost, pihole und pivpn lauschen
listen-address=127.0.0.1, 192.168.178.10, 10.8.0.1

weiterhin muss die openvpn server config angepasst werden.
dort muss der dns server (pihole) mitgeteilt werden:
Code:
push "dhcp-option DNS 192.168.178.10"

wie sieht denn deine server.conf aus?
da fehlen evtl einträge wie zb
Code:
server 10.8.0.1 255.255.255.0
push "route 192.168.178.10 255.255.255.255"
push "redirect-gateway def1"

da muss in jedem fall von hand nachgearbeitet werden.
openvpn ist da etwas komplizierter..
(bei wireguard muss man nur die listen adress eintragen sonst nix)
Wo genau finde ich denn die einzelnen Dateien bzw wo muss ich diese informationen dann eintragen? Zudem wird in PiHole der VPN Client angezeigt, sicher das dass nicht schon eingetragen ist?
Ergänzung ()

riversource schrieb:
Wie testest du die Verbindung denn? Hoffentlich nicht von zu Hause aus dem WLAN, sondern mit einer Mobilfunkverbindung?

Wir brauchen mehr Informationen über dein IP-Setup und dein Routing. Soll der VPN Server NAT machen oder vollwertig routen?


Dafür muss man sich bei Wireguard um die gesamte Umgebung und das Adressmanagement selber kümmern, das nimmt OpenVPN einem vollständig ab. Und OpenVPN ist leistungsfähiger, wenn man Verbindungen aus kritischen Umgebungen heraus braucht.


Wenn du das Default Gateway umleitest, brauchst du die zusätzliche Host Route nicht.

Aber generell wären mehr Informationen zu den conf Dateien hilfreich.
Wie schon gefragt wo finde ich die einzelnen conf dateien also in welchem Verzeichnis?

Ich will den ganzen Traffic umleiten falls ich mal im Urlaub oder so bin...
Ergänzung ()

Hier noch eine Zusatzinfo: Der Upload scheint zu gehen.. Aber download hab ich 0B/s
 
Zuletzt bearbeitet:
raffi_xd60 schrieb:
Wie schon gefragt wo finde ich die einzelnen conf dateien also in welchem Verzeichnis?
Das musst du doch am besten wissen, du benutzt das Installationsscript doch ... was ist mit /etc/openvpn? Legt das Script dort was an? Oder ändert es die Verzeichnisse?

Das ist das Problem an diesen Installationsscripten: Die richten irgendwas irgendwo ein. Wenn dann alles klappt, ist es gut, aber wehe, man muss anschließend noch mal an die Konfiguration.

raffi_xd60 schrieb:
Ich will den ganzen Traffic umleiten falls ich mal im Urlaub oder so bin...
Ja, dafür leitest du die Default Route übers VPN. Das beantwortet aber die anderen Fragen noch nicht, die ich oben gestellt habe.
 
riversource schrieb:
Wenn du das Default Gateway umleitest, brauchst du die zusätzliche Host Route nicht.
ja das ist mir klar..wollte nur ein paar beispiele aufführen, was fehlen könnte..,
denn wie du schon sagst...
riversource schrieb:
generell wären mehr Informationen zu den conf Dateien hilfreich
..müsste man mehr wissen..

raffi_xd60 schrieb:
Wie schon gefragt wo finde ich die einzelnen conf dateien also in welchem Verzeichnis?

liste doch mal auf:

Code:
cat /etc/openvpn/server.conf

in der openvpn server.conf muss man einstellen das als dns die ip-adresse des pihole
oder die des vpn (zb 10.8.0.1) benutzt an die clients übermittelt wird, mittels (beispiel):

Code:
push "dhcp-option DNS 10.8.0.1"

raffi_xd60 schrieb:
Ich will den ganzen Traffic umleiten

dazu muss noch dann

Code:
push "redirect-gateway def1"

in der /etc/openvpn/server.conf eingetragen sein.

-----
Code:
ls -la /etc/dnsmasq.d

in diesem verzeichnis eine datei erstellen mittels (beispiel):

Code:
sudo nano /etc/dnsmasq.d/99-openvpn.conf

und dort hinein schreiben (als beispiel adressen des localhost, pihole, openvpn)

Code:
listen-address=127.0.0.1, 192.168.178.10, 10.8.0.1

dann abspeichern und raspi neu starten.
 
Ich hatte in diesem Zusammenhang und auch sonst mit DietPi keinerlei Probleme.
DietPi ist das Betriebssystem, hat ein semi-grafisches GUI. Damit PiHole und PiVPN auswählen und installieren, geht ganz ohne Zicken und Allüren.
Bei PIVPN kann man noch zwischen OpenVPN und Wireguard wählen oder auch beides zusammen installieren.
 
n1tro666 schrieb:
ja das ist mir klar..wollte nur ein paar beispiele aufführen, was fehlen könnte..,
denn wie du schon sagst...

..müsste man mehr wissen..



liste doch mal auf:

Code:
cat /etc/openvpn/server.conf

in der openvpn server.conf muss man einstellen das als dns die ip-adresse des pihole
oder die des vpn (zb 10.8.0.1) benutzt an die clients übermittelt wird, mittels (beispiel):

Code:
push "dhcp-option DNS 10.8.0.1"



dazu muss noch dann

Code:
push "redirect-gateway def1"

in der /etc/openvpn/server.conf eingetragen sein.

-----
Code:
ls -la /etc/dnsmasq.d

in diesem verzeichnis eine datei erstellen mittels (beispiel):

Code:
sudo nano /etc/dnsmasq.d/99-openvpn.conf

und dort hinein schreiben (als beispiel adressen des localhost, pihole, openvpn)

Code:
listen-address=127.0.0.1, 192.168.178.10, 10.8.0.1

dann abspeichern und raspi neu starten.
Hier die Ergebnisse für

cat /etc/openvpn/server.conf

dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/raspberrypi_4c911ed0-b345-42b4-8c66-af7521 b20b78.crt
key /etc/openvpn/easy-rsa/pki/private/raspberrypi_4c911ed0-b345-42b4-8c66-af7521 b20b78.key
dh none
ecdh-curve secp521r1
topology subnet
server 10.48.37.0 255.255.255.0
# Set your primary domain name server address for clients
push "dhcp-option DNS 10.48.37.1"
push "block-outside-dns"
# Override the Client default gateway by using 0.0.0.0/1 and
# 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of
# overriding but not wiping out the original default gateway.
push "redirect-gateway def1"
client-to-client
client-config-dir /etc/openvpn/ccd
keepalive 15 120
remote-cert-tls client
tls-version-min 1.2
tls-crypt /etc/openvpn/easy-rsa/pki/ta.key
cipher AES-256-CBC
auth SHA256
user openvpn
group openvpn
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
syslog
verb 3
#DuplicateCNs allow access control on a less-granular, per user basis.
#Remove # if you will manage access by user instead of device.
#duplicate-cn
# Generated for use by PiVPN.io
 
Wir brauchen auch die Inhalte der Dateien in /etc/openvpn/ccd.

Dazu brauchen wir Routing Informationen vom Client und vom Server. Vor allem Routen und iptables Regeln vom Server.
Kannst du die OpenVPN Transport-Netz IPs gegenseitig anpingen, also vom Server zum Client und umgekehrt? Kannst du die Host IP des Servers vom Client aus anpingen?
 
Also hier erstmal das ergebnis aus der ccd:


ifconfig-push 10.48.37.2 255.255.255.0

Meinst du ob/dass ich den pi anpingen soll wenn ich mit dem vpn verbunden bin? Falls ja, das klappt. Ich kann meine Geräte im Netzwerk anpingen, komme auch auf die fritzbox und auf die PiHole Webseite. Ich hab auch Upload Traffic nur anscheinend keinen Download und kann daher auch keine Webseite und nichts aufrufen.
 
sieht doch ganz okay aus soweit...

jetzt noch eine datei erstellen in /etc/dnsmasq.d:
Code:
sudo nano /etc/dnsmasq.d/99-ovpn.conf

dort rein kommt:
Code:
listen-address=127.0.0.1, IP.des.ras.pi, 10.48.37.1

danach besitzer und rechte der datei /etc/dnsmasq.d/99-ovpn.conf anpassen:
Code:
sudo chown root:root /etc/dnsmasq.d/99-ovpn.conf
sudo chmod 644 /etc/dnsmasq.d/99-ovpn.conf

jetzt noch die iptables firewall anpassen:
Code:
sudo /sbin/iptables -t nat -A POSTROUTING -s 10.48.37.0/24 -o eth0 -j MASQUERADE
sudo /sbin/iptables -A FORWARD -i tun0 -j ACCEPT
sudo /sbin/iptables -A FORWARD -o tun0 -j ACCEPT

dann mal so testen.
falls es funktioniert, dann die firewall regeln fest abspeichern:
Code:
sudo /sbin/iptables-save > /etc/iptables/rules.v4

viel erfolg..
 
raffi_xd60 schrieb:
Ich kann meine Geräte im Netzwerk anpingen, komme auch auf die fritzbox und auf die PiHole Webseite. Ich hab auch Upload Traffic nur anscheinend keinen Download und kann daher auch keine Webseite und nichts aufrufen.
Die Aussagen sind widersprüchlich. Wenn Pings funktionieren und du die Webseiten der Fritzbox und des Piholes abrufen kannst, dann muss auch Traffic in deine Richtung fließen. Wie sonst sollten die Inhalte der Seite auf dein Gerät kommen (es sei denn, du testest die Verbindung doch aus deinem Heimnetz)?
 
Vielen vielen Dank jetzt geht es wieder.... Nur kurz zum Verständnis das ich dazu lerne... Es lag jetzt daran dass eine config datei gefehlt hat oder? Dann frag ich mich aber warum war die weg... Ich habe über dieses Skript mehrfach die Reparatur versucht und es ging trotzdem nicht... Naja ich danke dir jedenfalls.

Ich habe mich wohl bei meiner letzten Aussage falsch ausgedrückt... Ich hatte kein Traffic nach außen also konnte außerhalb meines Netzwerkes nichts downloaden... aber der Upload schien auch außerhalb meines Netzwerkes zu gehen... Naja wie auch immer bin ich allen die mir hier geholfen haben sehr dankbar <3
 
nicht nur.

die config datei die fehlte, war nie wirklich da.

wenn man per push option dem vpn client mitteilt, welcher dns server benutzt werden soll,
muss auch der dns server dahingegend konfiguriert sein, das er auf den ip bereich
des vpn lauschen (reagieren) soll.

das pihole hat sich in dnsmasq eingenistet, daher muss man wenn das pihole der dns ist,
dnsmasq anpassen das der nicht nur auf localhost und ip des raspi/pihole reagiert, sondern auch
dns anfragen welche aus dem ip-bereich des vpn stammen beantwortet.
das sind die "listen-address".
 
Zurück
Oben