OpenVPN Server: Linux Server als Gateway nutzen
Heute beschäftigen wir uns mit der Einrichtung eines OpenVPN Tun Servers und der Konfiguration des OpenVPN Clients
Vorbereitung:
- Root zugriff auf einen Linux Server (Debian / Ubuntu)
- Der Server darf nicht mit OpenVZ Virtualliesiert sein da dort die Kernelerweiterung für (TUN/TAP) nicht aktiviert werden kann
Durchführung:
Als erstes bringen wir unser System auf den aktuellsten Stand
bash:~$ apt-get update && apt-get upgrade -y
Den OpenVPN Server installieren wir jetzt mit:
bash:~$ apt-get install openvpn -y
Als nächstes müssen wir die Konfigurationsfiles in das richtige Verzeichnis kopieren
bash:~$ cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
bash:~$ gunzip /etc/openvpn/server.conf.gz
bash:~$ cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa2
Nun geht es an die Erstellung des Serverzertifikates
bash:~$ cd /etc/openvpn/easy-rsa2/
bash:~$ mkdir keys
bash:~$ source ./vars
bash:~$ ./clean-all
bash:~$ ./build-ca
Wichtig: bei Common Name
Die IP-Adresse oder FQDN Namen eures Servers eintragen!
Als nächstes Schritt müssen noch Zertifikate für die Clients erstellt werden die sich später mit dem Server verbinden sollen
bash:~$ ./build-key client1
bash:~$ ./build-key client2
bash:~$ ./build-key client3
Daraufhin ist ein sogenannter Diffie-Hellman-Schlüsselaustausch zu generieren
bash:~$ ./build-dh
Des Weiteren legen wir die zugehörige Server Konfigurationsdatei an
bash:~$ cd /etc/openvpn/server.conf
bash:~$ nano -w server.conf
Hierzu kann die von mir bereits erstellte Konfiguration verwendet werden.
port 1194
proto udp
dev tun
ca ./easy-rsa2/keys/ca.crt
cert ./easy-rsa2/keys/server.crt
key ./easy-rsa2/keys/server.key
dh ./easy-rsa2/keys/dh1024.pem
#crl-verify ./easy-rsa2/keys/crl.pem
push “redirect-gateway”
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
Um den OpenVPN Server später auch wirklich als Gateway nutzen zu können müssen wir noch ein paar Routing Änderungen am Netzwerk des Servers einrichten, um dies zu tätigen öffnen wir die Datei /etc/rc.local
mit einem Editor und tragen folgendes ans Ende der Datei ein. „exit 0“
darf erst am ende der Datei sein!
bash:~$ iptables -t nat -F POSTROUTING
bash:~$ echo 1 > /proc/sys/net/ipv4/ip_forward
bash:~$ iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE
Somit ist die eigentliche Einrichtung auf dem des VPN-Servers abgeschlossen.
Damit alle Einstellungen korrekt übernommen werden sollte der gesamte Server neu gestartet werden, oder die Routing Einstellungen manuelle gesetzt werden!
Weiter geht es mit unseren Clients
Als erstes benötigen wir die OpenVPN Client Software für unser Endgerät dies finden wir auf der Entwicklerseite unter
Windows: http://openvpn.net/index.php/download/community-downloads.html
Linux: apt-get install openvpn -y
Android: https://play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=de
iOS: https://itunes.apple.com/de/app/openvpn-connect/id590379981?mt=8
Als erstes müssen wir die Zertifikate unseres zuvor erstellten Clients herunterladen, dies Files liegen im Ordner /etc/openvpn/easy-rsa2
auf dem Server benötigt werden.
ca.crt
client1.crt
client1.key
Diese speichert ihr unter Windows am besten direkt im Ordner C:\Program Files\OpenVPN\config
Der nächste Schritt ist es im Ordner config
eine weitere Datei mit dem Namen client1.ovpn
zu erstellen in die vollende Einstellungen eingetragen wird:
client
dev tun
proto udp
# Hier FQDN oder IP des Servers eintragen!
remote example.org 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
verb
Um sich mit dem OpenVPN-Server zu verbinden, öffnet die OpenVPN GUI mit Admin-Rechten und öffnen über das Tray-Icon das VPN Symbol.
Dort klickt man auf Verbinden
, nun sollte eine Verbindung mit dem VPN Server zustande kommen.
Testen ob ihr nun die IP-Adresse des Servers habt könnt ihr z.B. auf http://myip.is.