OpenVPN/Linux
Aus Palita
Diese Anleitung beschreibt die Installation von OpenVPN unter Linux, basierend auf dem Paketverwaltungssystem apt, welches in Debian oder auch Ubuntu und ähnliche enthalten ist. Wenn du eine andere Paketverwaltungssoftware benutzt musst die Paketinstallationen auf deine Paketverwaltung anpassen. Wie man Pakete mit anderen Paketverwaltungen installiert erfährst du auf Linux Paketinstallation.
Inhaltsverzeichnis |
Grundinstallation
Egal, ob du einen Server oder einen Client installieren möchtest, musst du zunächst das OpenVPN-Programm installieren. Dies geschieht mit dem Befehl
sudo apt-get install openvpn
(sudo ist nur notwendig, wenn du nicht als root angemeldet bist.)
Es sollte etwas ähnliches wie
Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Vorgeschlagene Pakete: openssl Die folgenden NEUEN Pakete werden installiert: openvpn 0 aktualisiert, 1 neu installiert, 0 zu entfernen und 1 nicht aktualisiert. Es müssen 338kB Archive geholt werden. Nach dem Auspacken werden 918kB Plattenplatz zusätzlich benutzt. Hole:1 http://ftp.de.debian.org etch/main openvpn 2.0.9-4etch1 [338kB] Es wurden 338kB in 0s geholt (476kB/s) Vorkonfiguration der Pakete ... Wähle vormals abgewähltes Paket openvpn. (Lese Datenbank ... 20117 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke openvpn (aus .../openvpn_2.0.9-4etch1_i386.deb) ... Richte openvpn ein (2.0.9-4etch1) ... Starting virtual private network daemon:.
ausgegeben werden.
Server Installation
Die Installation ist im Prinzip schon abgeschlossen, was jetzt noch folgt ist lediglich die Konfiguration.
Die Konfigurationsdateien für OpenVPN liegen im Pfad
/etc/openvpn/
gegebenenfalls gibt es Abweichungen für andere Distributionen als Debian / Ubuntu.
Die Konfigurationen unterscheiden sich hier in der Authentifizierung, siehe OpenVPN für die Unterschiede und wähle die für dich passende aus.
Konfiguration mit statischem Schlüssel
TODO
Konfiguration mit Benutzername und Passwort
TODO
Konfiguration mit Zertifikatbasierter Authentifikation
Bei dieser Konfiguration gehen wir davon aus, dass du bereits Zertifikate erstellt hast. Wenn du nicht weißt, wie das funktioniert, findest du eine Anleitung unter OpenSSL/Zertifikate erstellen. Du benötigst die folgenden Zertifikate:
- CA
- Serverzertifikat
- Private-Key
- Diffie-Hellman
Diese Dateien legst du im Ordner /etc/openvpn/certs/ ab, den du eventuell noch erstellen musst.
Die Konfigurationsdatei enthält folgenden Inhalt:
port 1194 # Port auf dem OpenVPN lauscht
proto udp # Zu verwendendes Protokoll (UDP)
mode server # Als Server agieren
tls-server # TLS-Verschlüsselung aktivieren
dev tap # verwende tap-Device, also Ethernet Tunnel
ifconfig 10.0.2.1 255.255.255.0 # Server-IP und Netzmaske für die virtuelle Schnittstelle
ifconfig-pool 10.0.2.2 10.0.2.254 255.255.255.0
# IP-Pool für Clients
# (von-IP, bis-IP, Subnetz)
tun-mtu 1492 # MTU-Wert
mssfix # Für Kompatibilität mit Windows-Clients
ca certs/vpn-ca.pem # Pfad des CA-Certifikats
cert certs/servercert.pem # Pfad des Serverzertifikats
key certs/serverkey.pem # Private-Key des Servers
dh certs/dh1024.pem # Pfad der Diffie-Hellman
client-to-client # Kommunikation unter Clients erlauben
ifconfig-pool-persist ipp.dat # Entspricht etwa DHCP-Leases, Clients bekommen die gleiche IP
# bei Neuverbindung (Erkennung durch Common Name im Zertifikat)
keepalive 10 120 # Keepalive-Pakete senden
auth SHA1 # Authentifizierungsmethode
comp-lzo # LZO-Komprimierung der Daten
user nobody # Als Benutzer nobody und Gruppe
group nogroup # nogroup ausführen
persist-key # Key im Speicher Behalten
persist-tun # Tunneldaten im Speicher Behalten
Diese Konfiguration sollte an sich bereits funktionieren, möchtest du allerdings nicht, dass z.B. Clients untereinander kommunizieren können, kommentiere die Zeile
client-to-client
einfach aus, indem du eine # (Raute) am Anfang der Zeile einfügst. Gegebenenfalls möchtest du auch noch die IP-Adresse und den IP-Pool ändern.
Diese Konfiguration speicherst du unter dem Dateinamen server.conf im OpenVPN-Ordner ab, der Pfad zur Datei lautet also
/etc/openvpn/server.conf
Starten des Servers
Den Server kannst du jetzt als Superuser (root) mit dem Befehl
sudo /etc/init.d/openvpn restart
Starten. Alternativ funktioniert auch der Befehl
sudo openvpn --config /etc/openvpn/server.conf --daemon
Mit diesen Befehlen wird OpenVPN im Daemon-Modus gestartet, also im Hintergrund. Alle Benachrichtigungen und Fehlermeldungen (Logs) werden in
/var/log/syslog
geschrieben (sofern vom System oder OpenVPN nicht anders vorgegeben). Um diese Logs anzuzeigen kannst du zum Beispiel mittels
tail -f /var/log/syslog
die letzten Zeilen der Datei ausgeben lassen und bei Neueinträgen die Anzeige automatisch aktualisieren. Um die Anzeige der Logdatei zu beenden verwendest du die Tastenkombination Strg + C.
Client Installation
TODO
TODO
- Terminal Starten?
- Andere Distributionen?