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
Windows 10 Can't Use 2nd TAP Adapter for OpenVPN
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