OpenVPN-Simple-Setup/HowTo.txt
2020-04-17 00:06:32 +02:00

112 lines
5.1 KiB
Plaintext

Erstellt nach:
[1] - https://www.linode.com/docs/networking/vpn/set-up-a-hardened-openvpn-server/
[2] - https://oli.new-lan.de/2015/02/openvpn-crypto-tuning-tls-auth-tls-cipher-tls-version-min-dh-verify-x509-name-cipher-auth-remote-cert-tls/
[3] - Raspberry PI TUN/TAP-Device: https://blog.doenselmann.com/raspberry-pi-als-openvpn-server/
[4] - Persistente IP-Tables: https://www.thomas-krenn.com/de/wiki/Iptables_Firewall_Regeln_dauerhaft_speichern
[5] - Interfaces - https://askubuntu.com/questions/853615/files-in-etc-network-interfaces-d-ignored-but-not-etc-network-interfaces-itse
[6] - Compress lz4-v2 instead of lzo - https://forums.openvpn.net/viewtopic.php?t=28372
OpenSSL / EasyRSA:
Für den Server wird ein neues Key-Pair benötigt, welches wir lokal erzeugen und
anschließend auf den Server uploaden. EasyRSA ist entsprechend vorkonfiguriert,
sodass nur die folgenden Schritte ausgeführt werden müssen:
1.) Die "EasyRSA-Start.{bat/sh}" aus dem "EasyRSA"-Verzeichnis ausführen
2.) $ ./easyrsa build-server-full [NAME] nopass
3.) $ ./easyrsa gen-dh
4.) Verschiebe den private Key, das Zertifikat sowie die
Diffie-Hellmen Parameter auf den VPN-Server
- private Key: EasyRSA\pki\private\[NAME].key
- Zertifikat: EasyRSA\issued\[NAME].crt
- DH-Parameter: EasyRSA\pki\dh.pem
Server-Konfiguration:
1.) Installiere persistente IP-Tables sowie OpenVPN.
$ apt-get install openvpn iptables-persistent
2.) Lösche unter "/etc/openvpn" die Verzeichnise "server" und "client"
3.) Erstelle das Verzeichnis "VPN" und kopiere die folgenden Dateien hinen:
- ca.crt (aus OpenVPN/Config)
- SharedSecret.psk (aus OpenVPN/Config)
- dh.pem (siehe "OpenSSL / EasyRSA")
- den private Key (siehe "OpenSSL / EasyRSA")
- das Zertifikat (siehe "OpenSSL / EasyRSA")
4.) Erstelle das Verzeichnis "logs"
5.) Kopiere die Server-Config (Server.conf) auf den Server
in das Verzeichnis /etc/openvpn
6.) Ersetze "[NAME]" in der Server-Config durch den Namen des Server-Zertifikats und
"[DNS-SERVER-IP]" durch die IP des lokalen DNS-Servers:
$ nano /etc/openvon/server.conf
7.) Lege für OpenVPN einen eigenen Benutzer und eine Gruppe an:
$ adduser --system --shell /usr/sbin/nologin --no-create-home ovpn
$ groupadd ovpn
$ usermod -g ovpn ovpn
8.) Setze die Berechtigungen für die Ordner "VPN" und "logs"
im Verzeichnis /etc/openvon
$ chmod -R 400 VPN
$ chmod -R 700 logs
$ chown -R ovpn:ovpn VPN
$ chown -R root:root logs
9.) IP-Forwarding aktivieren
- temporär: $ echo 1 >> /proc/sys/net/ipv4/ip_forward
- persistent: edit "/etc/sysctl.conf"
# Packet forwarding
net.ipv4.ip_forward = 1
net.inet.ip.fastforwarding = 1
10.) In den IP-Tables das NAT einrichten:
Im Ordner "IP-Tables" finden sich verschiedene Regel-Listen:
- "min-rules.ipv4"
Diese Liste ermöglicht nur das NATing ins Netzwerk des Servers und
bietet darüber hinaus keinen Schutz.
- "rules.ipv4"
Diese Liste sperrt sämtlichen eingehenden Datenverkehr außer SSH und VPN.
Damit stellt diese Liste die sicherer Variante dar.
Für den Fall, dass "wlan0" genutzt werden soll, müssen die
- eth0-Regeln mit dem Präfix "#" versehen und bei den
- wlan0-Regeln das Präfix "#" entfernt werden.
Kopiere eine der IPv4-Listen als "rules.v4" auf den Server
in das Verzeichnis "/etc/iptables" und aktiviere die Regeln mittels
$ iptables-restore < /etc/iptables/rules.v4
Passe die Dateiberechtigungen an:
$ chown -R root:root /etc/iptables
& chmod -R 740 /etc/iptables
11.) Statische IP
Editiere die Datei "/etc/network/interfaces" [5]
Ersetze "source-directory /etc/network/interfaces.d"
mit "source /etc/network/interfaces.d/*"
Erstelle unter "/etc/network/interfaces.d/" die Datei "eth0.conf" mit folgendem Inhalt:
auto eth0
iface eth0 inet static
address [Adresse des PI's]
netmask 255.255.255.0
network [Internes Netz]
broadcast [Broadcast-Adresse]
gateway [Netzwerk-Gateway]
dns-nameservers [DNS-Nameserver]
12.) OpenVPN starten
$ service openvpn start
Client-Konfiguration (nutzt die Dateien aus dem Verzeichnis "Config"):
1.) Lege die client.ovpn in das Konfigurations-Verzeichnis von OpenVPN
2.) Kopiere die folgenden Daten in einen neuen Ordner "VPN" neben
der Konfigurations-Datei:
- ca.crt
- SharedSecret.psk
- [User].crt
- [User].key
3.) Ersetze in der client.ovpn in Zeile 2 "[SERVER-IP]" mit der öffentlichen IP
des VPN-Servers, [Port] mit dem Port, auf dem das VPN operiert.