zwei Standorte mit OpenVPN verbinden

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
joe2017
Beiträge: 459
Registriert: 07.08.2017 14:29:51

zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 29.08.2018 10:05:58

Guten Morgen alle zusammen.

Ich hätte mal eine Verständnisfrage zu OpenVPN und hoffe, dass mir jemand etwas weiterhelfen kann. Ich bräuchte etwas Licht in der Sache. :-)

Ich habe zwei Standorte mit unterschiedlichen Netzwerken und möchte diese mit OpenVPN verbinden. Ich verwende die aktuelle Debian Installation 9.5.0.
Standort A = 10.5.0.0 - 255.255.0.0
OpenVPN Server = 10.5.0.10
FritzboxServer = 10.5.0.254

Standort B = 192.168.0.0 - 255.255.255.0
OpenVPN Client = 192.168.0.10
FritzboxClient = 192.168.0.254


Aktuell habe ich ein Test Szenario mit zwei Internetverbindungen und jeweils einer Fritzbox als Router aufgebaut.
Ich habe eine eigene CA welche mir die Zertifikate (ECC 384) bereitstellt.

In meiner Server Config hab ich folgendes angepasst.
sudo nano /etc/openvpn/server.conf

Code: Alles auswählen

ca /etc/openvpn/ssl/ca.crt.pem
cert /etc/openvpn/ssl/OpenVPNServer.crt.pem
key /etc/openvpn/ssl/OpenVPNServer.key.pem
dh none

tls-auth /etc/openvpn/ssl/ta.key 0
cipher AES-256-GCM

dev tun0
port 1194
server 10.5.0.0 255.255.0.0

user openvpn
group openvpn
sudo service openvpn restart
Der Server wurde gestartet und ich sehe auch den tun0 Adapter mit der IP Adresse 10.5.0.1.


In meiner Client Config habe ich folgendes angepasst.
sudo nano /etc/openvpn/client.conf

Code: Alles auswählen

remote 10.5.0.1 1194

ca /etc/openvpn/ssl/ca.pem
cert /etc/openvpn/ssl/OpenVPNClient.crt.pem
key /etc/openvpn/ssl/OpenVPNClient.key.pem

tls-auth /etc/openvpn/ssl/ta.key
cipher AES-256-GCM
sudo /etc/init.d/openvpn restart

Für einen Test sollte dies doch eigentlich erst einmal ausreichen oder? Was muss ich jetzt noch in den Fritzboxen konfigurieren?
Ich habe in der FritzboxServer eine Portfreigabe für die IP 10.5.0.1 und den Port 1194 eingerichtet.
In der FritzboxClient muss ich eigentlich noch eine IP-Route eintragen aber da komme ich nicht weiter. Ich habe aktuell ja keine Feste IP Adressen für diese Netze zugewiesen. Aber ich kann für den Test doch einfach die aktuelle IP Adresse verwenden.

Um es einfacher zu machen, nehmen wir mal an, dass die beiden Fritzbox Internet Adressen folgende sind.
FritzboxServer = 88.88.88.88
FritzboxClient = 77.77.77.77

Ich hoffe, dass mir hierbei jemand weiterhelfen kann. Mir fehlt leider etwas das Verständnis zu dem Thema. Auch die Dutzenden Seiten welche ich gelesen habe bringen mich irgendwie nicht weiter.

eggy
Beiträge: 1934
Registriert: 10.05.2008 11:23:50

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von eggy » 29.08.2018 11:13:45

"remote 10.5.0.1 1194" sollte die externe IP der FB vor dem Server sein

mat6937
Beiträge: 1417
Registriert: 09.12.2014 10:44:00

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 29.08.2018 12:17:50

joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 10:05:58
Standort A = 10.5.0.0 - 255.255.0.0
OpenVPN Server = 10.5.0.10
FritzboxServer = 10.5.0.254

Standort B = 192.168.0.0 - 255.255.255.0
OpenVPN Client = 192.168.0.10
FritzboxClient = 192.168.0.254


dev tun0
port 1194
server 10.5.0.0 255.255.0.0

Der Server wurde gestartet und ich sehe auch den tun0 Adapter mit der IP Adresse 10.5.0.1.

In der FritzboxClient muss ich eigentlich noch eine IP-Route eintragen aber da komme ich nicht weiter. Ich habe aktuell ja keine Feste IP Adressen für diese Netze zugewiesen. Aber ich kann für den Test doch einfach die aktuelle IP Adresse verwenden.
Verwende für das Zwischennetz ein anderes/unterschiedliches Subnetz, als die die Du in den FritzBoxen-Server/-Client (W/LAN) hast.

Die statische Route in den FritzBoxen, soll für das Subnetz/Netmask des Zwischennetzes, mit der lokalen IP des Client/Server aus dem Subnetz der jeweiligen FritzBox als gateway, konfiguriert werden.

BTW: Was genau meinst Du mit:
Ich habe aktuell ja keine Feste IP Adressen für diese Netze zugewiesen.
?

joe2017
Beiträge: 459
Registriert: 07.08.2017 14:29:51

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 29.08.2018 13:54:01

Es sind zwei Standorte welche über zwei getrennte Internet Verbindungen angebunden sind. Diese wissen nichts von einander.
Beide Internetverbindungen haben keine FESTE IP.

Mein Client muss ja wissen, dass alle Anfragen welche nicht im 192.186.0.0 Netz erreichbar sind über die VPN Verbindung (10.5.0.0) erreichbar ist.
Da sich die beiden Server (VPN Server und VPN Clinet) nicht sehen, muss ich doch eine Route in der Fritzbox eintragen oder?

mat6937
Beiträge: 1417
Registriert: 09.12.2014 10:44:00

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 29.08.2018 14:02:41

joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 13:54:01
Beide Internetverbindungen haben keine FESTE IP.
Das müssen sie auch nicht, denn es gibt ja ddns-Provider.
joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 13:54:01
Mein Client muss ja wissen, dass alle Anfragen welche nicht im 192.186.0.0 Netz erreichbar sind über die VPN Verbindung (10.5.0.0) erreichbar ist.
Da sich die beiden Server (VPN Server und VPN Clinet) nicht sehen, muss ich doch eine Route in der Fritzbox eintragen oder?
Nein, für den VPN-Client ist die statische Route in der FritzBox nicht erforderlich, denn der VPN-Client hat ja eine definierte Route in bzw. für das Subnetz des VPN-Server. Nur für andere Clients (... die den VPN-Client als gateway benutzen wollen/müssen) im (W)LAN der FritzBox, ist so eine statische Route in der FritzBox, erforderlich.

joe2017
Beiträge: 459
Registriert: 07.08.2017 14:29:51

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 29.08.2018 14:10:03

Um den DDNS erst einmal außen vor zu lassen hatte ich ja folgendes geschrieben:
joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 10:05:58
Um es einfacher zu machen, nehmen wir mal an, dass die beiden Fritzbox Internet Adressen folgende sind.
FritzboxServer = 88.88.88.88
FritzboxClient = 77.77.77.77
Das bedeutet ich muss in meiner Client Config die Route wie folgt eintragen:

Code: Alles auswählen

remote 10.5.0.1 1194
Oder muss hier die Public IP (88.88.88.88) eingetragen werden?

Woher kennt mein Client die Route zu meinem VPN Server?
Mein Client versucht eine Verbindung aus dem Netz (192.168.0.0) zu meinem VPN Server (10.5.0.1) aufzubauen. Jedoch ist diese durch das Internet getrennt. Ich müsste doch in meiner CLIENT Fritzbox diese Route von 192.168.0.0 (Public IP 77.77.77.77) zu 10.5.0.1 (88.88.88.88) eintragen.

Oder hab ich einen Denkfehler?

mat6937
Beiträge: 1417
Registriert: 09.12.2014 10:44:00

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 29.08.2018 14:14:01

joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 14:10:03
Oder muss hier die Public IP (88.88.88.88) eingetragen werden?
Ja.
joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 14:10:03
Woher kennt mein Client die Route zu meinem VPN Server?
Mein Client versucht eine Verbindung aus dem Netz (192.168.0.0) zu meinem VPN Server (10.5.0.1) aufzubauen. Jedoch ist diese durch das Internet getrennt.
Deshalb das Zwischennetz (für die tun-Interfaces).
joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 14:10:03
Ich müsste doch in meiner CLIENT Fritzbox diese Route von 192.168.0.0 (Public IP 77.77.77.77) zu 10.5.0.1 (88.88.88.88) eintragen.
Nein, denn wenn es um Internet geht, ist die FritzBox als gateway für die bzw. mit der _default route_ (auf VPN-Client/-Server) zuständig.

joe2017
Beiträge: 459
Registriert: 07.08.2017 14:29:51

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 29.08.2018 14:39:20

Ok ich habe das Zwischennetzt jetzt auf folgende Config angepasst.

Code: Alles auswählen

ca /etc/openvpn/ssl/ca.crt.pem
cert /etc/openvpn/ssl/OpenVPNServer.crt.pem
key /etc/openvpn/ssl/OpenVPNServer.key.pem
dh none

tls-auth /etc/openvpn/ssl/ta.key 0
cipher AES-256-GCM

dev tun0
port 1194
server 10.8.0.0 255.255.0.0

user openvpn
group openvpn
Somit hat mein tun die Adresse 10.8.0.1.

In der Client Config habe ich jetzt ebenfalls folgendes angepasst.

Code: Alles auswählen

remote 88.88.88.88 1194

ca /etc/openvpn/ssl/ca.pem
cert /etc/openvpn/ssl/OpenVPNClient.crt.pem
key /etc/openvpn/ssl/OpenVPNClient.key.pem

tls-auth /etc/openvpn/ssl/ta.key
cipher AES-256-GCM

user openvpn
group openvpn
Aber wie kommt nun die Route zustande? Mein Client fragt nach der Public IP Adresse 88.88.88.88. Woher kennt der Client den VPN Server mit der Zwischennetz IP Adresse 10.8.0.1?

Ich hab gelesen, dass ich zusätzlich folgende Route in der Server Fritzbox eintragen.

Code: Alles auswählen

IPv4 Netzwerk 10.8.0.0
Subnet 255.255.0.0
Gateway 10.5.0.10

mat6937
Beiträge: 1417
Registriert: 09.12.2014 10:44:00

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 29.08.2018 15:37:37

joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 14:39:20
Aber wie kommt nun die Route zustande? Mein Client fragt nach der Public IP Adresse 88.88.88.88. Woher kennt der Client den VPN Server mit der Zwischennetz IP Adresse 10.8.0.1?
Wie ist auf dem Server und auf dem Client, die Ausgabe von:

Code: Alles auswählen

route -n
ifconfig -a
?
joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 14:39:20
Ich hab gelesen, dass ich zusätzlich folgende Route in der Server Fritzbox eintragen.

Code: Alles auswählen

IPv4 Netzwerk 10.8.0.0
Subnet 255.255.0.0
Gateway 10.5.0.10
Ja, wenn der Server als VPN-gateway im (W)LAN der FritzBox fungieren soll.

joe2017
Beiträge: 459
Registriert: 07.08.2017 14:29:51

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 29.08.2018 16:15:41

Also die beiden von dir genannten Befehle werden nicht gefunden. Wir haben wie gesagt eine Standard Debian 9.5.0 Installation.

Ich denke das wir einen kleinen Schritt weiter sind. Wenn wir auf unserem Client folgende Zeile ausführen erhalten wir jedoch folgende Fehlermeldung.
sudo openvpn --config /etc/openvpn/client.congf

Code: Alles auswählen

VERIFY ERROR: depth=1, error=unable to get issuer certificate: C=DE, ST=*, O=*, OU=* intermediate ECDSA CA, CN=Intermediate-CA-*
OpenSSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
TLS_ERROR: BIO read tls_read_plaintext error
TLS Error: TLS object -> incoming plaintext read error
TLS Error: TLS handshake failed
SIGUSR1[soft,tls-error] received, process restarting
Restart pause, 5 second(s)

mat6937
Beiträge: 1417
Registriert: 09.12.2014 10:44:00

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 29.08.2018 16:23:44

joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 16:15:41
Also die beiden von dir genannten Befehle werden nicht gefunden. Wir haben wie gesagt eine Standard Debian 9.5.0 Installation.
Wer ein VPN konfiguriert weiß, dass man dann auch:

Code: Alles auswählen

ip a
ip -4 r
zeigen kann. ;-)
joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 16:15:41

Code: Alles auswählen

VERIFY ERROR: depth=1, error=unable to get issuer certificate: C=DE, ST=*, O=*, OU=* intermediate ECDSA CA, CN=Intermediate-CA-*
OpenSSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
TLS_ERROR: BIO read tls_read_plaintext error
TLS Error: TLS object -> incoming plaintext read error
TLS Error: TLS handshake failed
SIGUSR1[soft,tls-error] received, process restarting
Restart pause, 5 second(s)
Versuch mal mit:

Code: Alles auswählen

auth RSA-SHA512
auth-nocache
tls-exit
tls-cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA
cipher AES-256-CBC

joe2017
Beiträge: 459
Registriert: 07.08.2017 14:29:51

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 29.08.2018 16:29:49

Danke für den Tipp. ;-)

Code: Alles auswählen

ip a
ip -4 r
mat6937 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 16:23:44
Versuch mal mit:

Code: Alles auswählen

auth RSA-SHA512
auth-nocache
tls-exit
tls-cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA
cipher AES-256-CBC
Ich nehme mal an, dass du die Anpassung in der Client.conf meinst.
Das Problem ist leider nur, dass ich ECC 384 Zertifikate verwende und ich dementsprechend meinen cipher auf AES-256-GCM einstellen muss.

Server ip -4 r

Code: Alles auswählen

default via 10.5.0.254 dev enp1s0 onlink
10.5.0.0/16 dev enp1s0 proto kernel scope link src 10.5.0.10
10.8.0.0/24 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
Client ip -4 r

Code: Alles auswählen

default via 192.168.0.254 dev enp1s0 onlink
192.168.0.0/24 dev enp1s0 proto kernel scope link src 192.168.0.10
Zuletzt geändert von joe2017 am 29.08.2018 16:34:10, insgesamt 1-mal geändert.

mat6937
Beiträge: 1417
Registriert: 09.12.2014 10:44:00

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 29.08.2018 16:32:03

joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 14:39:20

Code: Alles auswählen

tls-auth /etc/openvpn/ssl/ta.key
BTW: Für tls-auth ist zu beachten:

Code: Alles auswählen

In the server configuration, add:
tls-auth ta.key 0

In the client configuration, add:
tls-auth ta.key 1

mat6937
Beiträge: 1417
Registriert: 09.12.2014 10:44:00

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 29.08.2018 16:33:30

joe2017 hat geschrieben: ↑ zum Beitrag ↑
29.08.2018 16:29:49
Das Problem ist leider nur, dass ich ECC 384 Zertifikate verwende ...
Sind bei dir diese Zertifikate zwingend vorgegeben bzw. vorgeschrieben?

joe2017
Beiträge: 459
Registriert: 07.08.2017 14:29:51

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 29.08.2018 16:43:10

Oh entschuldige, das war mein Fehler. Sebstverständlich habe ich die Bezeichnung in der Config richtig

Code: Alles auswählen

Server = tls-auth /etc/openvpn/ssl/ta.key 0
Client = tls-auth /etc/openvpn/ssl/ta.key 1
Die Zertifikate sind leider vorgeschrieben.
Ich habe jedoch die Zertifikate aus meiner eingenen Zertifizierungsstelle verwendet. Ich habe kein easy-rsa in Verwendung.
Den ta.key habe ich jedoch auf dem Server mit dem Befehl openvpn --genkey --secret ta.key erstellt. Diesen ta.key habe ich dann ebenfalls auf meinen Client kopiert.

Antworten