Maßgebend für die OpenVPN Server Konfiguration ist die Datei server.conf
/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/VPN_Server_name_code-code-code-code-code.crt
key /etc/openvpn/easy-rsa/pki/private/VPN_Server_name_code-code-code-code-code.key
dh none
ecdh-curve prime256v1
topology subnet
server 10.8.0.0 255.255.255.0
# Set your primary domain name server address for clients
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 1.1.1.1"
# Prevent DNS leaks on Windows
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"
push "route 192.168.177.0 255.255.255.0"
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
Wenn man Probleme mit der Stabilität der VPN-Verbindung hat, oder die Geschwindigkeit optimieren möchte empfiehlt es sich die MTU-Size zu verringern. Besonders, wenn man Hybrid oder LTE Router einsetzt ist eine Verringerung der MTU-Size eine absolute Notwendigkeit. in der server.conf wird folgender Eintrag gemacht:
tun-mtu 1380
Welcher Wert sich für die VPN-Verbindung am Besten eignet kann man entweder ausprobieren, oder mit diversen Tools messen. Generell empfiehlt es sich aber ein MTU-Wert zwischen 1300 und 1420.
Standardmäßig wird der gesamte Internet Traffic eines Clients über den OpenVPN Server geroutet. Wenn man das VPN lediglich nutzen möchte um eine Verbindung zu einem anderen Zielnetzwerk herzustellen kann man es deaktivieren indem man folgendes auskommentiert oder löscht.
# push "redirect-gateway def1"
# push "block-outside-dns"
Wenn man das Routen des Internet Traffic's über VPN deaktiviert, sollte man daran denken die entsprechende Route des Zielnetzwerks welches erreicht werden soll in der server.conf zu hinterlegen:
push "route 192.168.177.0 255.255.255.0"
Wenn man den Clients einen DNS Server vorschreiben oder zur Verfügung stellen möchte, weil man zum Bespiel ein Pi-Hole, Adguard, oder einen Domain-Controller am Zielnetzwerk nutzen möchte, dann geht das mit folgender Zeile:
push "dhcp-option DNS 192.168.177.10"
Wenn man verhindern möchte, dass VPN-Clients innerhalb des VPN Netzwerks 10.8.0.0/24 miteinander kommunizieren können, sollte man die Option client-to-client auskommentieren.
# client-to-client
Wenn man sich zu einem späteren Zeitpunkt dazu entschließen sollte das Protokoll, oder den Port zu ändern, dann kann man das in der server.conf Datei ändern. Wichtig ist dabei, die bereits vorhandenen Client-Config-Files entsprechend anzupassen.
proto udp
# oder
proto tcp
port 1194
Wenn man Grundlegende Werte der OpenVPN Konfiguration ändern möchte wie zum Beispiel das Protokoll, den DynDNS Eintrag, oder den Port, dann kann man dies in der folgenden Text-Datei abändern:
/etc/openvpn/easy-rsa/pki/Default.txt
Es bewirkt, dass beim Erstellen eines neuen Clients automatisch die angepassten Werte in der Client-Config erscheinen. (Gilt nur für PiVPN)
Die Einstellungen der server.conf Datei wirken sich auf alle VPN-Clients aus. Um einzelnen Clients gesonderte Einstellungen mitzuteilen werden diese unter folgenden Pfad mit entsprechenden Usernamen angelegt:
/etc/openvpn/ccd/
Beispiel:
nano /etc/openvpn/ccd/clientname
# Gibt dem Client eine statische IP des VPN-Network
ifconfig-push 10.8.0.2 255.255.255.0
# Teilt dem VPN-Server mit welches Zielnetzwerk er hinter dem Client findet (notwendig bei Side to Side)
iroute 192.168.178.0 255.255.255.0
Damit die Einstellungen wirksam werden ist es notwendig, dass in der server.conf die Zeile
client-config-dir /etc/openvpn/ccd
vorhanden ist.
Damit Änderungen in der server.conf wirksam werden kann es notwendig sein den OpenVPN Dienst neu zu starten.
systemctl restart openvpn.service