VPN Server unter Linux (OpenVPN)

openvpn1Kann man einen V-Server oder einen dedizierten Server in einem Rechenzentrum sein Eigen nennen,
bietet sich hier die Gelegenheit, einen VPN-Server aufzusetzen, um bspw. den Tomato-Routern einen
entprechende Gegenstelle zu bieten. Dies möchte ich hier anhand der Linuxdistributionen CentOS/Fedora vorstellen.

 

 

 

 

Ist der Zugriff auf eine Shell, z.B. per Putty, geöffnet, installieren wir den VPN-Server mittels

yum install openvpn openssl -y

Im Anschluss editieren wir die Konfigurationsdatei des OpenVPN-Servers mit einem Texteditor der persönlichen Vorliebe, z.B. nano.

nano /etc/openvpn/openvpn.conf

Entsprechend der Entscheidung, ob man ein geroutetes oder gebrücktes VPN aufbauen möchte, richtet man seine Konfiguration ein. Die Unterschiede der beiden Betriebsmodi werden hier bestens beschrieben Es muss sowohl auf dem Server als auch auf allen Clients der gleiche Modus gesetzt werden. Eine Erläuterung der einzelnen Konfigurationsbefehle bietet die OpenVPN-eigene Dokumentation. Hier zeige ich meine Konfiguration auf, welche sich mit dem Betrieb von Tomato-basierten VPN-Clients bewährt hat:

local 8.8.8.8 #Die öffentliche IP des VPN-Servers
port 1194 #Der Port, auf welchem der VPN-Server eingehende Verbindungen erwartet
proto udp #Das zu verwendende Protokoll. tcp oder udp (empfohlen)
dev tap0 #Das virtuelle Netzwerkinterface für die VPN-Verbindung (hier gebrücktes Netzwerk (Layer 2))
ca /etc/openvpn/keys/ca.crt #Das Zertifikat des CA inkl. vollst. Pfad
dh /etc/openvpn/keys/dh1024.pem #Der verwendete Schlüssel inkl. vollst. Pfad 
cert /etc/openvpn/keys/server.crt #Das Zertifikat des Servers inkl. vollst. Pfad
key /etc/openvpn/keys/server.key  #Der Schlüssel des Servers inkl. vollst. Pfad
mode server
tls-server
ifconfig 172.27.255.241 255.255.0.0 #Die IP-Adresse des Servers auf der VPN-Schnittstelle (muss im eigenen Netz liegen)
ifconfig-pool 172.27.255.242 172.27.255.250 #Der "DHCP"-Pool für die VPN-Verbindungen (Clients)
client-to-client #Ermöglicht eine Kommunikation zwischen den Clients und deren Netzwerken
duplicate-cn #Ein Client-Zertifikat darf für mehrere Verbindungen gleichzeitig genutzt werden
keepalive 10 120
comp-lzo #Komprimierung aktivieren
user nobody #Nutzer, als der der VPN-Server-Prozess ausgeführt wird
group nobody #Gruppe, als die der VPN-Server -Prozess ausgeführt wird 
persist-key
persist-tun
status openvpn-status.log 5 #Logging
verb 3 #Logging-Details

Wie die in der openvpn.conf angegebenen Schlüssel und Zertifikate erstellt werden, wird in diesem Beitrag aufgezeigt. Wir speichern die Datei und beenden nano mit der Tastenkombination „STRG+X“ und starten den VPN-Server mit

/etc/init.d/openvpn start

Ein Blick auf

ps aux | grep openvpn

verrät, ob der Dienst läuft und kann anschließend mit

chkconfig openvpn on

automatisch beim Booten gestartet werden. Mit einer entsprechenden Konfiguration eines Tomato-VPN-Clients kann nun eine Verbindung hergestellt werden. Wie dieser installiert und konfiguriert werden kann, wird in diesem Artikel beschrieben.