====== OpenVPN Server Konfiguration ====== Maßgebend für die OpenVPN Server Konfiguration ist die Datei **server.conf** /etc/openvpn/server.conf ---- ++++ Beispiel Server Konfiguration | 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\\ ++++ ====MTU (Maximum Transmission Unit)==== 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. ====Route allen Traffic über VPN==== 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" ====DNS Option==== 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" ==== Client to Client==== 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 ====Default OpenVPN Konfiguration==== 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\\ ====Default Client Konfiguration==== 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) ====Ausnahmen bestimmter Clients==== 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 ++++ clientname Konfiguration | # 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. ====OpenVPN Dienst neustarten==== Damit Änderungen in der server.conf wirksam werden kann es notwendig sein den OpenVPN Dienst neu zu starten. systemctl restart openvpn.service