22.11.2009

OpenVPN (Anleitung)

default

 

Anleitung Server (in Linux und alles als User "root")

 

Installieren

Je nach Distribution über die Paketverwaltung, z.B. Debian:

  • apt-get install openvpn

 

Einrichten

  • Das Verzeichnis /usr/share/doc/openvpn/examples/easy-rsa/ kopieren nach: /etc/openvpn
  • Wechseln nach /etc/openvpn/easy-rsa/
  • Die Datei vars bearbeiten und die folgenden Variablen auf individuelle Werte setzen:
    • export KEY_COUNTRY="DE"
    • export KEY_PROVINCE="<land>"
    • export KEY_CITY="<stadt>"
    • export KEY_ORG="<firma>"
    • export KEY_EMAIL="<email>"
  • Infrastruktur, Server-Key, Client-Keys und Diffie-Hellman-Parameter erzeugen (im Beispiel für 3 Clients):
    • source ./vars
    • ./clean-all
    • ./build-ca
    • ./build-key-server server
    • ./build-key client1
    • ./build-key client2
    • ./build-key client3
    • ./build-dh

Die Dateien ca.crt, server.crt, server.key und dh1024.pem kopieren nach: /etc/openvpn/

Die Beispielkonfiguration /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz entpacken, nach /etc/openvpn/ kopieren und bearbeiten:

Vorher Nachher
;proto tcp proto tcp
proto udp ;proto udp
;push "route 192.168.20.0 255.255.255.0" push "route <mein-netzwerk> 255.255.255.255"
;client-to-client client-to-client
;log-append openvpn.log log-append openvpn.log

 

Portforwarding auf dem Router setzen (iptables unter Linux)

Wenn der Router auch der VPN-Server ist:

  • iptables -A INPUT -i ppp0 -p tcp --dport 1194 -j ACCEPT

Wenn der VPN-Server hinter dem Router sitzt:

  • iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 1194 -j DNAT --to <meine-server-ip>:1194

 

Samba anpassen (Server für "Windows Dateifreigabe" unter Linux)

/etc/samba/smb.conf bearbeiten, neue Shares für 10.8.0.0/24 anlegen:

  • vpn-read
    • writable = no
    • allow hosts = <mein netzwerk>, 10.8.0., localhost
  • vpn-write
    • writable = yes
    • allow hosts = <mein netzwerk>, 10.8.0., localhost

Lesbar soll alles sein, was der Außendienst braucht. Eventuell legt man ein Extra-Verzeichnis an mit Links auf jedes nötige Directory. (Ich glaube, man muß noch irgendwo in smb.conf sowas wie "follow links = yes" setzen.)

Schreibbar sollte nur ein einziges Verzeichnis sein, damit nicht jemand von außerhalb mit einem gestohlenen Key unseren Server löschen oder überschreiben kann. Aber auch versehentliches Überschreiben passiert viel leichter, wenn man außerhalb vor Ort arbeitet, in ungewohnter Umgebung. Man muß deshalb nach dem Hochladen neuer oder geänderter Dateien einen Mitarbeiter in der Firma anrufen und bitten, die hochgeladenen Dateien an die richtige Stelle zu schieben. Vier Augen sehen mehr als zwei.

 

Client-Key ungültig machen (wenn gestohlen, etc.):

  • Revoke-Zertifikat erzeugen:
    • cd /etc/openvpn/easy-rsa
    • . ./vars
    • revoke-full client2
    • chmod 644 crl.pem
  • Revoke-Zertifikat kopieren nach: /etc/openvpn/
  • Server-Konfiguration bearbeiten, Zeile ergänzen:
    • crl-verify crl.pem

Anmerkung: Diesen letzten Punkt (Key ungültig machen) habe ich bisher nur gelesen und abgeschrieben, aber noch nicht selbst ausprobiert.

 

Anleitung Clients (in Windows XP)

 

Herunterladen und Installieren

  • http://openvpn.net/
    • Community Software
    • Downloads
    • Windows Installer
  • Ausführen:
    • openvpn...install.exe

Das Weitere stimmt evtl. nur, wenn man alle Vorschläge des Installers einfach bestätigt:

 

Einrichten

  • Dateien vom Server holen, aus dem Verzeichnis /etc/openvpn/examples/easy-rsa/keys/ und auf den Client kopieren nach: C:/Programme/OpenVPN/config/
    • ca.crt
    • client1.conf
    • client1.crt
    • client1.key

Die Datei client1.conf kopieren nach client1.ovpn und bearbeiten:

Vorher Nachher
;proto tcp proto tcp
proto udp ;proto udp
remote my-server-1 1194 remote <meine ip-adresse oder DNS-adresse> 1194
ca ca.crt ca C:/Programme/OpenVPN/config/ca.crt
cert client.crt cert C:/Programme/OpenVPN/config/client1.crt
key client.key key C:/Programme/OpenVPN/config/client1.key

 

Benutzen

  • OpenVPN-GUI starten (Rechtsklick auf das Icon im System-Tray, dem vertieften Bereich ganz rechts in der Taskleiste)
  • Connect

Dann (vermutlich) "Computer suchen", und zwar 10.8.0.1 oder <mein-netzwerk/server-adresse>

abatz.de Jörn Abatz - Technische Software Impressum