zwei Standorte mit OpenVPN verbinden

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
mat6937
Beiträge: 1133
Registriert: 09.12.2014 10:44:00

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 12.09.2018 09:43:55

joe2017 hat geschrieben: ↑ zum Beitrag ↑
11.09.2018 17:46:21
Ich habe meine Routen in den FritzBoxen ausgetragen ...
Ohne statische Route in der FritzBox musst Du die Route dann in jedem einzelnen Client (aus dem W/LAN der FritzBox) konfigurieren, damit die Clients das VPN-Gateway finden.

EDIT:

BTW: Die netmask darf in der interfaces-Datei, bei address mitangegeben werden.

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

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 12.09.2018 11:34:41

Es kann aber doch nicht sein, dass ich die Routen in jedem einzelnen Client in meinem Clinet Netz konfigurieren muss.
Ich hab in dem Client einfach als Gateway die OpenVPNClient IP eingetragen. Es sollte doch somit ausreichen, wenn der OpenVPNClient die Routen kennt oder?

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

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 12.09.2018 11:38:02

joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.09.2018 11:34:41
Es kann aber doch nicht sein, dass ich die Routen in jedem einzelnen Client in meinem Clinet Netz konfigurieren muss.
Wenn nicht alle Clients das VPN nutzen sollen, hast Du recht.
joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.09.2018 11:34:41
Ich hab in dem Client einfach als Gateway die OpenVPNClient IP eingetragen. Es sollte doch somit ausreichen, wenn der OpenVPNClient die Routen kennt oder?
Ja, für den einen Client ist das OK.

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

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 12.09.2018 14:03:53

Ich poste einfach noch einmal die gesamte Konfiguration damit es keine Missverständisse gibt. Vielleicht erkennt ja jemand meinen Fehler.
Ich muss mit meinem Client hinter dem OpenVPN Client auf Server hinter dem OpenVPN Server zugreifen können.

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
Client = 192.168.0.20
FritzboxClient = 192.168.0.254


OpenVPN Server
sudo nano /etc/openvpn/server.conf (Hier hab ich nur die aktivierten Zeilen eingefügt)

Code: Alles auswählen

port 1194
proto udp
dev tun

ca /etc/openvpn/ssl/ca.chain.pem
cert /etc/openvpn/ssl/server.crt.pem
key /etc/openvpn/ssl/server_re.key.pem
dh none

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.0.0 255.255.255.0"
client-config-dir ccd
route 192.168.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
client-to-client
keepalive 10 120
tls-auth /etc/openvpn/ssl/ta.key 0 # This file is secret
cipher AES-256-GCM
user openvpn
group openvpn
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1
sudo nano /etc/network/interfaces

Code: Alles auswählen

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp1s0
iface enp1s0 inet static
        address 10.5.0.10/16
        gateway 10.5.0.254
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 10.5.0.254
        up route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.5.0.10 dev enp1s0
        up route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.5.0.10 dev enp1s0
sudo nano /etc/openvpn/ccd/OpenVPN Client Name

Code: Alles auswählen

iroute 192.168.0.0 255.255.255.0

OpenVPN Client
sudo nano /etc/openvpn/client.conf (Hier hab ich nur die aktivierten Zeilen eingefügt)

Code: Alles auswählen

client
dev tun
proto udp
remote PUBLIC-IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/ssl/ca.chain.crt.pem
cert /etc/openvpn/ssl/client.crt.pem
key /etc/openvpn/ssl/client_re.key.pem
remote-cert-tls server
tls-auth /etc/openvpn/ssl/ta.key 1
cipher AES-256-GCM
verb 3
sudo nano /etc/network/interfaces

Code: Alles auswählen

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp1s0
iface enp1s0 inet static
        address 192.168.0.10/24
        gateway 192.168.0.254
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 192.168.0.254
        up route add -net 10.1.0.0 netmask 255.255.0.0 gw 192.168.0.10 dev enp1s0
        up route add -net 10.8.0.0 netmask 255.255.255.0 gw 192.168.0.10 dev enp1s0

Debian CLIENT hinter OpenVPN Client
sudo nano /etc/network/interfaces

Code: Alles auswählen

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp1s0
iface enp1s0 inet static
        address 192.168.0.20/24
        gateway 192.168.0.10
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 192.168.0.254

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

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 12.09.2018 14:14:05

joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.09.2018 14:03:53
Ich muss mit meinem Client hinter dem ...
Wie sind auf diesem Client, die Ausgaben von:

Code: Alles auswählen

ip a
route -n
?

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

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 12.09.2018 14:40:39

OpenVPN 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
192.168.0.0/24 via 10.8.0.2 dev tun0
OpenVPN Client
ip -4 r

Code: Alles auswählen

0.0.0.0/1 via 10.8.0.5 dev tun0
default via 192.168.0.254 dev enp1s0 onlink
10.5.0.0/16 via 10.8.0.5 dev tun0
10.8.0.0/24 via 10.8.0.5 dev tun0
10.8.0.5 dev tun0 proto kernel scope link src 10.8.0.6
128.0.0.0/1 via 10.8.0.5 dev tun0
PUBLIC-IP via 192.168.0.254 dev enp1s0
192.168.0.0/24 dev enp1s0 proto kernel scope link src 192.168.0.10
Clinet hinter OpenVPN Client
ip -4 r

Code: Alles auswählen

default via 192.168.0.10 dev enp2s0 onlink
192.168.0.0/24 dev enp2s0 proto kernel scope link src 192.168.0.20

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

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 12.09.2018 15:04:48

joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.09.2018 14:40:39
Clinet hinter OpenVPN Client
ip -4 r

Code: Alles auswählen

default via 192.168.0.10 dev enp2s0 onlink
192.168.0.0/24 dev enp2s0 proto kernel scope link src 192.168.0.20
Dieser Client hat nur eine default route und eine definierte Route nach 192.168.0.0/24.

Mit welcher Route soll deiner Meinung nach, via VPN das gewünschte Ziel erreicht werden?

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

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 12.09.2018 15:13:16

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
Client = 192.168.0.20
FritzboxClient = 192.168.0.254

Ich dachte wenn ich in meinem Client (192.168.0.20) als defaul gw den OpenVPN Client (192.168.0.10) eingetrage, und in meinem OpenVPN Client (192.168.0.10) folgende Routen eintrage, dass ich anschließend die Route aufgebaut habe.

Code: Alles auswählen

up route add -net 10.5.0.0 netmask 255.255.0.0 gw 192.168.0.10 dev enp1s0
up route add -net 10.8.0.0 netmask 255.255.255.0 gw 192.168.0.10 dev enp1s0
Hab ich hier doch ein Denkfehler? Ich möchte das gesamte Netzwerk hinter dem OpenVPN Client durch schleifen. Ohne mit jedem Client eine VPN Verbindung aufbauen zu müssen.

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

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 12.09.2018 15:19:11

joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.09.2018 15:13:16
..., und in meinem OpenVPN Client (192.168.0.10) folgende Routen eintrage, dass ich anschließend die Route aufgebaut habe.

Code: Alles auswählen

up route add -net 10.5.0.0 netmask 255.255.0.0 gw 192.168.0.10 dev enp1s0
up route add -net 10.8.0.0 netmask 255.255.255.0 gw 192.168.0.10 dev enp1s0
Ich denke nicht, dass mit diesem gateway 192.168.0.10 (bzw. mit diesem interface enp1s0) die Subnetze 10.5.0.0/16 und 10.8.0.0/24 erreicht werden können.

EDIT:
joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.09.2018 15:13:16
Hab ich hier doch ein Denkfehler? Ich möchte das gesamte Netzwerk hinter dem OpenVPN Client durch schleifen. Ohne mit jedem Client eine VPN Verbindung aufbauen zu müssen.
Eine VPN-Verbindung brauchst Du nicht auf jedem Client, aber das erforderliche Routing, da Du es ja nicht zentral im (W)LAN vom Router machen lassen willst.

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

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 12.09.2018 17:46:56

Ich möchte eigentlich mein Debian Server als Router verwenden.
Das Routing müsste doch hier ebenfalls möglich sein.

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

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von mat6937 » 12.09.2018 20:35:02

joe2017 hat geschrieben: ↑ zum Beitrag ↑
12.09.2018 17:46:56
Ich möchte eigentlich mein Debian Server als Router verwenden.
Das Routing müsste doch hier ebenfalls möglich sein.
Das wäre schon möglich, wenn Du deinen Server als Router konfiguriert hast. D. h. z. B. auch DNS und NTP (Zeit) via deinen Server. Alles was auch eine FritzBox als Router so macht, in einem (W)LAN/VPN.

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

Re: [überarbeitet] zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 13.09.2018 15:31:34

Ich entschuldige mich schon einmal dafür, dass ich etwas an der Grundkonfiguration ändern muss. Jedoch hat sich das ganze Projekt etwas verändert. Die beiden Standorte werden jetzt über eine geschaltete Leitung verbunden. Somit habe ich indirekt eine Verbindung vergleichbar mit einem Patchkabel. Ich habe das ganze jetzt folgendermaßen in einer Testumgebung aufgebaut.

Ich habe einen VPNServer mit zwei Netzwerkkarten.
Ich habe einen VPNClient mit zwei Netzwerkkarten.

Die beiden enp1s0 Adapter im Server und Client sind aktuell über ein Patchkabel miteinander verbunden.
Die beiden enp2s0 Adapter im Server und Client sind aktuell mit dem Switch des jeweiligen Netzwerkes verbunden.

Ich möchte das Routing in dem VPNServer und VPNClient eintragen.
In der VPNClient .conf habe ich die PUBLIC-IP auf die IP-Adresse des VPNServer (192.168.1.1) umgestellt

Standort A = 10.5.0.0/16
IP für OpenVPN Server = 192.168.1.1/24
IP für Netzwerk = 10.5.0.1/16
Internet-Router (Fritzbox) = 10.5.0.254

Standort B = 192.168.0.0/24
IP für OpenVPN Client = 192.168.1.2/24
IP für Netzwerk = 192.168.0.1/24
Internet-Router (Fritzbox) = 192.168.0.254

VPN-Netz = 10.8.0.0


Somit habe ich folgende Konfiguration in der /etc/network/interfaces

VPNServer

Code: Alles auswählen

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp1s0
iface enp1s0 inet static
        address 192.168.1.1/24

allow-hotplug enp2s0
iface enp2s0 inet static
        address 10.5.0.1/16
        gateway 10.5.0.254
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 10.5.0.254
        up route add -net 10.8.0.0 netmask 255.255.255.0 gw 192.168.1.1 dev enp1s0
        down route del -net 10.8.0.0 netmask 255.255.255.0 gw 192.168.1.1 dev enp1s0
        up route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.1 dev enp1s0
        down route del -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.1 dev enp1s0
        up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev enp1s0
        down route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev enp1s0

VPNClient

Code: Alles auswählen

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp1s0
iface enp1s0 inet static
        address 192.168.1.2/16

allow-hotplug enp2s0
iface enp2s0 inet static
        address 192.168.0.1/16
        gateway 192.168.0.254
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 192.168.0.254
        up route add -net 10.8.0.0 netmask 255.255.255.0 gw 192.168.1.2 dev enp1s0
        down route del -net 10.8.0.0 netmask 255.255.255.0 gw 192.168.1.2 dev enp1s0
        up route add -net 10.5.0.0 netmask 255.255.0.0 gw 192.168.1.2 dev enp1s0
        down route del -net 10.5.0.0 netmask 255.255.0.0 gw 192.168.1.2 dev enp1s0
        up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.2 dev enp1s0
        down route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.2 dev enp1s0
Mein Tunnel wurde jetzt aufgebaut.
Ich kann von meinem VPNServer meinen VPNClient an pingen.
Ich kann von meinem VPNServer einen Client hinter meinem VPNClient an pingen.
Ich kann von meinem VPNClient meinen VPNServer an pingen.

Ich kann jedoch nicht von meinem VPNClient einen Server hiner meinem VPNServer an pingen.

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

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 18.09.2018 15:33:49

Anbei meine routing table und ein traceroute

VPNServer

Code: Alles auswählen

default via 10.5.0.254 dev enp2s0 onlink 
10.5.0.0/16 dev enp2s0 proto kernel scope link src 10.5.0.1 
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 
192.168.1.0/24 dev enp1s0 proto kernel scope link src 192.168.1.1 
192.168.0.0/24 via 10.8.0.2 dev tun0 


traceroute to 192.168.0.188 (192.168.0.188), 30 hops max, 60 byte packets
 1  10.8.0.6 (10.8.0.6)  1.087 ms  1.071 ms  1.067 ms
 2  192.168.0.188 (192.168.0.188)  1.232 ms  1.239 ms  1.236 ms
Beim Server wird alles richtig aufgelöst.


VPNClient

Code: Alles auswählen

default via 192.168.0.254 dev enp2s0 onlink 
10.5.0.0/16 via 10.8.0.5 dev tun0 
10.8.0.0/24 via 10.8.0.5 dev tun0 
10.8.0.5 dev tun0 proto kernel scope link src 10.8.0.6 
192.168.1.0/24 dev enp1s0 proto kernel scope link src 192.168.1.2 
192.168.0.0/24 dev enp2s0 proto kernel scope link src 192.168.0.1


traceroute to 10.5.0.73 (10.5.0.73), 30 hops max, 60 byte packets
 1  localhost (10.8.0.1)  1.132 ms  1.107 ms  1.100 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
Beim Client aktuell nicht.

dufty2
Beiträge: 1510
Registriert: 22.12.2013 16:41:16

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von dufty2 » 18.09.2018 15:53:24

Mmmh, OpenVPN ist jetzt nicht so mein Ding,
aber einmal ist da
10.8.0.1 + 10.8.0.2
und dann nochmal
10.8.0.5 + 10.8.0.6
Ist das so geplant?

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

Re: zwei Standorte mit OpenVPN verbinden

Beitrag von joe2017 » 18.09.2018 16:31:07

Das ist das OpenVPN Netz. Ja das ist normal so.
Mich wundert es nur, dass ich von meinem VPNServer auf alle Clients hinter meinem VPNClient Netzwerk zugreifen kann.
Von meinem VPNClient jedoch nicht auf die Server hinter meinem VPNServer Netzwerk.

Wenn ich am VPNClient ein traceroute absetzte Bsp. auf 10.5.0.73 wird die Route schon einmal automatisch an meine VPNServer IP (10.8.0.1) geleitet. Jedoch weiß diese IP anscheinend nicht wie die Adresse 10.5.0.73 erreicht werden kann.
Wenn ich jedoch VPNClient ein traceroute absetzte Bsp. auf die VPNServer IP (10.5.0.1) wird die Route automatisch an meine VPNServer IP (10.8.0.1) geleitet und somit an 10.5.0.1 aufgelöst.

Hab ich noch irgendwo ein Denkfehler?
Muss ich für den tun0 Adapter eine Route anlegen? Und wenn ja wie genau kann ich diese Route anlegen wenn der tun0 automatisch über die OpenVPN Konfiguration und nicht über die /etc/network/interfaces angelegt wird?

Antworten