Optionen für OpenVPN auf Centos

Routen

Manchmal ist es notwendig Routen zu setzten. Z.B. um Geräte in einem anderen Netzwerk über VPN zu erreichen. Um nun das Netzwerk mit dem Adressraum 192.168.7.0 über unsere VPN-Verbindung zu erreichen, benötigen wir Routen.

In der Konfigurationsdate /etc/openvpn/server.conf von OpenVPN können wir bereits die Routen für die Clients festlegen.

In den Bereich für "push routes" fügen wir folgende Zeile ein, um die Routing-Anweisung beim Verbinden an unsere Clients zu schicken. Danach starten wir den OpenVPN-Server neu.

...

push "route 192.168.7.0 255.255.255.254 10.8.0.1"

...
systemctl restart openvpn@server.service

Gesamten Traffic routen

Um den gesamten Traffic über unsere VPN-Leitung zu schicken müssen wir in der OpenVPN-Konfigurationsdatei /etc/openvpn/server.conf folgende Zeile auskommentieren oder hinzufügen.

...

push "redirect-gateway def1 bypass-dhcp"

...
systemctl restart openvpn@server.service

Clients untereinander sichtbar

Damit auch die Clients untereinander erreichbar sind müssen wir diese Zeile in /etc/openvpn/server.conf auskommentieren oder hinzufügen.

...

client-to-client

...
systemctl restart openvpn@server.service

Gleiche Zertifikate verwenden

Damit mehrere Clients das gleiche Zertifikat verwenden dürfen brauchen wir folgende Anweisung in der Konfigurationsdatei /etc/openvpn/server.conf.

...

duplicate-cn

...
systemctl restart openvpn@server.service

Sicherheit erhöhen

Um die Sicherheit bei OpenVPN zu erhöhen brauchen wir einen zusätzlichen Key.

openvpn --genkey --secret /etc/openvpn/openvpn.tlsauth

In der OpenVPN-Konfigurationsdatei /etc/openvpn/server.conf suchen wir folgende Zeile:

tls-auth ta.key 0 # This file is secret

und ersetzen sie durch:

;tls-auth ta.key 0 # This file is secret

tls-crypt openvpn.tlsauth

remote-cert-eku "TLS Web Client Authentication"

Und starten den OpenVPN neu.

systemctl restart openvpn@server.service

In unsere client-#.ovpn ergänzen wir diese Zeilen:

tls-crypt openvpn.tlsauth

remote-cert-eku "TLS Web Server Authentication"

Port ändern

Da SELinux auch die Ports überwacht, müssen wir in Centos zu ersten den neuen Port registrieren und dann geben wir den ihn in der Firewall frei.

semanage port -a -t openvpn_port_t -p udp 11193

firewall-cmd --zone=public --add-port=11193/udp --permanent

firewall-cmd --reload

Zusätzlich können wir die alten Ports entfernen wenn wir sie nicht mehr benötigen.

semanage port -d -t openvpn_port_t -p udp 1193

semanage port -d -t openvpn_port_t -p tcp 1193

firewall-cmd --zone=public --remove-service=openvpn --permanent

firewall-cmd --reload

Mehrere VPN-Verbindungen gleichzeitig

Um sich mit mehreren VPN-Servern gleichzeitig verbinden zu können, müssen diese auf unterschiedlichen Ports laufen (siehe vorheriger Punkt).

Das Netzwerk des Servers und des Clients müssen sich in zwei unterschiedlichen Subnetzwerken befinden. Haben wir OpenVPN so konfiguriert, dass ein eigenen Subnet erzeugt wird, müssen wir zusätzlich den Adressraum in unserer /etc/openvpn/server.conf ändern. Wir suchen nach der Zeile:

;server 10.8.0.0 255.255.255.0

und ändern sie wie folgt ab:

;server 10.8.0.0 255.255.255.0
server 10.8.6.0 255.255.255.0
systemctl restart openvpn@server.service

 

Auf macOS basierten Systemen wird beim Starten einer zusätzlichen Verbindung das benötigte TAB-Schnittstelle automatisch erzeugt. Auf Windows-Systemen müssen wir diese zusätzlich installieren. Wir gehen in den Programmeordner von Windows und führen die addtap.bat Datei aus.

C:\Program Files\TAP-Windows\bin\addtap.bat

Nun solle es auch auf Windows möglich sein, zweite OpenVPN-Verbindung zu starten.

Eigener Address Pool

Um zu bestimmen, welche IP-Adresse der Server bekommen soll und in welchem Bereich IP-Adressen an die Clients vergeben werden, müssen wir die server Zeile auskommentieren und folgende Zeilen einfügen.

;server 10.8.0.0 255.255.255.0
;server 10.8.6.0 255.255.255.0

mode server
tls-server

ifconfig 10.8.6.1 255.255.255.0
ifconfig-pool 10.8.6.101 10.8.6.150

(Zertifikate auf Windows erzeugen)

https://learntomato.com/how-to-setup-a-vpn-server-with-tomato-openvpn/)

Quellen

Custom openvpn port with SElinux enabled

http://sysadmin-notepad.blogspot.com/2013/05/custom-openvpn-port-with-selinux-enabled.html

How To Set Up and Configure an OpenVPN Server on CentOS 7

https://www.digitalocean.com/community/tutorials/how-to-set-up-and-configure-an-openvpn-server-on-centos-7

Windows 10 Can't Use 2nd TAP Adapter for OpenVPN

https://www.experts-exchange.com/questions/29115029/Windows-10-Can't-Use-2nd-TAP-Adapter-for-OpenVPN.html

OpenVPN Adress Pool - ifconfig-pool

http://roberts.bplaced.net/index.php/linux-guides/centos-6-guides/vpn-server/openvpn-server

Changing openvpn dhcp pool

https://serverfault.com/questions/761857/changing-openvpn-dhcp-pool

OpenVPN - Getting started How-To

https://community.openvpn.net/openvpn/wiki/GettingStartedwithOVPN

Kommentare

Was ist die Summe aus 6 und 7?