Im Vergleich zu anderen Lösungen wie PPTP, IPsec, L2TP bietet es einen hohen Sicherheitsstandard bei gleichzeitiger Kompatibilität mit diversen Plattformen wie Windows, Mac OS X, Linux, BSD.

Dieser Artikel erklärt die Einrichtung eines OpenVPN Servers / Gateways unter Ubuntu.
Installation
Zur Installation wechselt man in ein Terminal und installiert das OpenVPN + IPTables Persistent Paket:
sudo apt-get install openvpn iptables-persistentIm Anschluss müssen noch die Konfigurationsdateien an den entsprechenden Ort kopiert werden.
sudo cp -r /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gunzip -d /etc/openvpn/server.conf.gz
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa2Als nächstes wird ein Verzeichnis für die Zertifikate erstellt:
sudo mkdir /etc/openvpn/easy-rsa2/keysKonfiguration
Serverzertifikat erstellen
Zunächst muss ein Serverzertifikat erstellt werden. Hierzu wird folgende Datei als Root editiert. Dies geschieht am einfachsten über den Editor nano.
sudo nano /etc/openvpn/easy-rsa2/varsexport KEY_COUNTRY="DE"
export KEY_PROVINCE="BY"
export KEY_CITY="Haibach"
export KEY_ORG="FoxPlex"
export KEY_EMAIL="info@example.com"
Zum Speichern STRG + O und anschließend die Eingabetaste drücken.
Um die Variablen systemweit bekannt zu machen, ist folgender Befehl notwendig.
source /etc/openvpn/easy-rsa2/varsJetzt kann das Serverzertifikat erstellt werden. Hierzu wechseln wir in das easy-rsa2 Verzeichnis:
cd /etc/openvpn/easy-rsa2Damit die Umgebungsvariablen beim Aufruf von sudo nicht zurückgesetzt werden, verwenden wir hier die Option -E.
Folgende Befehle erstellen das Zertifikat für die CA (=Certificate Authority), welche später die Zertifikate für die einzelnen Benutzer bzw. Clients vergibt.
sudo -E ./clean-all
sudo -E ./build-caDie eigentliche Erstellung des Serverzertifikates erfolgt über diesen Befehl:
sudo -E ./build-key-server serverBei Feld "Common Name" sollte der Name eingegeben werden mit welchem man auch auf den VPN Server zugreifen möchte (z.B. vpn.foxplex.com). Die Felder für das "Challenge Password" können leer gelassen werden.
Benutzer anlegen
Nun können wir uns dem Anlegen neuer Benutzer / Clients widmen. Hierzu verwenden wir das Skript build-key.
Wichtig: Bevor zu einem späteren Zeitpunkt neue Clients hinzugefügt werden, muss die Datei /etc/openvpn/easy-rsa2/vars erneut per source eingebunden werden.
sudo -E ./build-key client1Im Feld "Common Name" sollte auch hier wieder der Name des Clients (Idealerweise der Hostname oder Benutzername) eingetragen werden (Hier: client1).
Zum Abschluss wird noch der Diffie-Hellmann Key erzeugt. Das Diffie-Hellmann Protokoll wird für den sicheren Schlüsselaustausch benötigt.
sudo -E ./build-dhZertifikate
Im Verzeichnis keys befinden sich anschließend alle benötigten Zertifikate. Um den client1 später mit dem VPN zu verbinden, werden folgende Dateien benötigt:
- ca.crt - Masterzertifikat der Certificate Authority
- client1.crt - Clientzertifikat
- client1.key - Schlüssel für das Clientzertifikat
Die *.key Dateien sind nur an die entsprechenden Benutzer / Clients auszugeben.
Konfiguration anpassen
Jetzt muss noch die Konfiguration des Servers angepasst werden. Hierzu muss die Konfigurationsdatei des Servers editiert werden.
sudo nano /etc/openvpn/server.confHierbei sollten folgende Optionen gesetzt sein:
;dev tap
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.pemWeiterhin sind folgende Optionen an das eigenen Netzwerk anzupassen.
Netz für die VPN-Clients:
server 10.8.0.0 255.255.255.0Route für das lokale Netzwerk hinter dem VPN-Gateway. Diese Option ermöglicht, dass Clients aus dem Netz 10.8.0.0 auch das Netz 192.168.1.0 erreichen können.
push "route 192.168.1.0 255.255.255.0"Forwarding und Firewall
Damit die Kommunikation über VPN mit den Clients im lokalen Netzwerk möglich wird, sind noch einige Firewallregeln und Anpassungen am System erforderlich.
Zur Weiterleitung der Pakete zwischen verschiedenen Netzwerkschnittstellen muss das IP-Forwarding aktiviert werden.
sudo sysctl -w net/ipv4/ip_forward=1Um die Option permanent bei jedem Systemstart zu aktivieren, muss die Datei /etc/sysctl.conf folgendermaßen ergänzt werden:
net.ipv4.ip_forward=1Im Folgenden ist die Konfiguration per iptables erkennbar. Sämtlicher VPN-Traffic läuft über das virtuelle Gerät "tun0". Das interne LAN ist über das Netzwerkinterface eth0 angebunden.
Neue Verbindungen von Innen nach Außen + Außen nach Innen:
iptables -A INPUT -i tun0 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o tun0 -m state --state NEW -j ACCEPTNeue Verbindungen durchreichen:
iptables -A FORWARD -i tun0 -o eth0 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m state --state NEW -j ACCEPTBestehende und verwandte Verbindungen durchreichen:
iptables -A FORWARD -i tun0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPTUm die Regeln auch nach einem Neustart einzubinden, werden diese gespeichert.
iptables-save > /etc/iptables/rules.v4Befindet sich der Server hinter einem Router, ist selbstverständlich noch eine Portweiterleitung auf Port 1194/UDP anzulegen.
Abschluss
Zum Schluss muss der OpenVPN Dienst neu gestartet werden.
sudo service openvpn restartDamit ist der Server einsatzbereit.
Fazit
Die Konfiguration eines OpenVPN Server unter Ubuntu gestaltet sich recht umfangreich. Man sollte grundlegende Kenntnisse über Netzwerke mitbringen.
Dennoch gestaltet sich die Konfiguration im Vergleich zu IPsec und anderen Protokollen verhältnismäßig einfach und übersichtlich.
Quellen: Ubuntu Logo, OpenVPN Logo - Trade Mark (tm) of OpenVPN Technologies, Inc.
Ähnliche Artikel
 
			
						
					



 
								 
					 
						 Suchen
Suchen 
						 
						 
														
 
				
Hinterlasse einen Kommentar