OpenVPN
Script-Start
#!/bin/sh
# Pakete installieren
yum install openvpn easy-rsa
# Schlüssel & Zertifikate für OpenVPN erzeugen
# Im ersten Schritt müssen wir die Schlüssel und Zertifikate für OpenVPN erzeugen.
mkdir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
/usr/share/easy-rsa/3/easyrsa --days=3650 init-pki
/usr/share/easy-rsa/3/easyrsa --days=3650 build-ca nopass
/usr/share/easy-rsa/3/easyrsa --days=3650 gen-dh
# Schlüssel für die OpenVPN-Server erzeugen
/usr/share/easy-rsa/3/easyrsa --days=3650 build-server-full server nopass
# Schlüssel für die OpenVPN-Clients erzeugen
/usr/share/easy-rsa/3/easyrsa --days=3650 build-client-full client-1 nopass
# Schlüssel und Zertifikate übertragen
# Am Server bzw. Router kopieren wir die erstellten Schlüssel und Zertifikate in den OpenVPN Konfigurationsordner.
cd /etc/openvpn
ln -s /etc/openvpn/easy-rsa/pki/ca.crt ca.crt
ln -s /etc/openvpn/easy-rsa/pki/private/server.key server.key
ln -s /etc/openvpn/easy-rsa/pki/issued/server.crt server.crt
ln -s /etc/openvpn/easy-rsa/pki/dh.pem dh.pem
# VPN-Interface und Firewall-Einstellungen
# Im Gegensatz zu OpenWRT wird in Centos das Interface automatisch erzeugt. Wir müssen jedoch noch das Service in die Firewall eintragen.
firewall-cmd --permanent --zone=public --add-service=openvpn
firewall-cmd --reload
exit
OpenVPN - Server konfigurieren
Zuerst holen wir uns die Standardkonfiguration aus dem Dokumentenordner in den Konfigurationsordner:
cp /usr/share/doc/openvpn-2.4.6/sample/sample-config-files/server.conf /etc/openvpn/server/
Wir suchen die Zeile "topology subnet" und kommentieren diese aus. Dadurch wir ein 10.8.0.0/24 Subnet erzeugt. Der Server erhält die erste IP mit 10.8.0.1. Der erste Client erhält10.8.0.2 usw.
topology subnet
Um die Sicherheit zu erhöhen, soll OpenVPN ohne Privilegien laufen. Dazu suchen wir die Zeile mit den beiden Einträgen "user nobody" und "group nobody". Dieser werden wieder auskommentiert.
user nobody
group nobody
Damit OpenVPN auch neben einer IKEv2-Verbindung laufen kann, soll statt des TUN-Interfaces das TAP-Interface verwendet werden.
;dev tun
dev tap
Nun setzen wir OpenVPN als Bootservice und starten den Dienst.
systemctl enable openvpn@server.service
systemctl start openvpn@server.service
OpenVPN - Client konfigurieren (OpenWRT & Centos)
Mit Hilfe eines FTP-Clients holen wir uns folgende Dateien in einen Konfigurationsordner für VPN auf dem Client.
/etc/openvpn/easy-rsa/pki/issued/client-1.crt
/etc/openvpn/easy-rsa/private/client-1.key
/etc/openvpn/easy-rsa/pki/ca.crt
Konfigurationsscript erstellen
In dem gleichen Ordner, in welchen wir zuvor die Client-Zertifikate heruntergeladen haben, erstellen wir die Datei "client-1.ovpn" und fügen folgende Zeilen ein:
client
dev tap
auth-nocache
remote <Server-IP>
port 1194
verb 3
ca ca.crt
cert client-1.crt
key client-1.key
cipher AES-256-CBC
remote-cert-tls server
# Kann auskommentiert werden um dem TUN Interface eine fixe MAC-Adresse zuzuweisen.
;lladdr 96:45:2A:82:EE:0D
Der "chiper" wurde hier nochmal extra angegeben. AES-256-CBC wird zwar als Standardverschlüsselung verwendet, ein Client hat jedoch versucht zu erst eine niedrigere Verschlüsselung zu verwenden. Daher hier die explizite Angabe.
Quelle
How To Set Up and Configure an OpenVPN Server on CentOS 7
Kommentare