Samstag, 22. April 2006

HOWTO_ OpenVPN-Server unter Debian 3.1 "Sarge" und Mac OS X als Client

Im ersten Teil beschreibe ich, wie man innerhalb von wenigen Minuten unter Debian Sarge (der aktuellen "stable release") den OpenVPN-Server einrichtet und als Client einen Mac OS X-Rechner damit verbindet. Im zweiten Teil werde ich einige Tipps geben, wie man auch hinter einem Proxy-Server "nach Hause" kommt.
  1. Server (Debian Sarge 3.1 "stable)

    1. Installation
      Einfacher geht es nicht: apt-get install openvpn.
    2. Schlüssel und Zertifikate
      Hat so funktioniert, wie im offiziellen Quick-HOWTO beschrieben.
      Zuerst müssen die Installationsscripte in das vorgesehende Verzeichnis kopiert werden:
      cp -r /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn/
      Um nicht später bei der Erstellung der Zertifikate alles per Hand mehrfach eingeben zu müssen, werden in der Datei /etc/openvpn/easy-rsa/vars ein paar Variablen gesetzt:
      export KEY_COUNTRY=DE
      export KEY_PROVINCE=NA
      export KEY_CITY="<Stadt>"
      export KEY_ORG="<Organisation>"
      export KEY_EMAIL="<Mailadresse>"

      Das erste Zertifikat ist das er zertifizierenden Stelle, bei Common-Name ist ein beliebiger Name einzutragen, das Passwort ist nicht zu belegen.
      . ./vars; ./clean-all; ./build-ca
      Nun erstellt ./build-key-server server das Serverzertifikat, bei Common-Name ist server einzutragen, alle Nachfragen nach Zertifizierungen sind mit Y zu bejahen.

      Für jeden Client, der später zum Server connecten darf, muss nun ebenfalls ein Zertifikat und ein Schlüssel erstellt werden, dabei muss der Common-Name mit dem jeweils angegebenen Clientnamen des Kommandozeilenaufrufs (im Beispiel client1) übereinstimmen.
      ./build-key client1

      Die Diffie-Hellman-Parameter werden mit ./build-dh erstellt. Die folgende Tabelle zeigt, welche Dateien auf welchem Rechner benötigt werden:
      Datei Rechner Zweck
      ca.crt Serv+Cl Root CA Zertifikat
      ca.key Signierung Root CA Schlüssel
      dh{n}.pem Server Diffie Hellman Param.
      server.crt Server Server Zertifikat
      server.key Server Server Schlüssel
      client1.crt Client1 Client1 Zertifikat
      client1.key Client1 Client1 Schlüssel
      Alle Schlüssel (*.key) sind dabei geheim und sollten nicht öffentlich zugänglich sein. Die für den Betrieb von OpenVPN benötigten Dateien server.key, server.crt, ca.crt und dh{n}.pem sind nach /etc/openvpn zu kopieren.
    3. Konfiguration
      Die Vorlagen aus /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz nach /etc/openvpn kopieren und entpacken. Drei Änderungen sind vorzunehmen:
      # Ändert auf Clients den default Gateway auf
      # den VPN-Server um, so dass SÄMTLICHER
      # traffic über das VPN geleitet wird
      # (ausser für das jeweils lokale Netzwerk).
      push "redirect-gateway def1“

      # Aktivieren der Kompression, da
      # mehrfaches Tunnel massiv die
      # Geschwindigkeit drückt.
      comp-lzo

      # Standardwert ist nobody, doch diese
      # Gruppe existiert auf Debian Sarge nicht
      group nogroup
      Nach einem Neustart des OpenVPN-Servers wird die Konfiguration übernommen:
      /etc/init.d/openvpn stop
      /etc/init.d/openvpn start
    4. NAT-Routing
      Jetzt wird zwar sämtlicher Traffic von den Clients auf den Server geleitet, kommt von dort aber nicht mehr weiter. Daher muss hier noch etwas Arbeit geleistet werden, die Langfassung beschrieb T.J. Nelson.
      touch /etc/init.d/iptables.openvpn.sh legt eine neue Datei fürs Routing an. Folgende Zeilen sind in die Datei einzutragen:
      #!/bin/bash
      # get rid of previous iptables entries
      iptables -F
      iptables -F -t nat
      iptables -X
      
      iptables -t nat -A POSTROUTING -o eth0  -j SNAT --to 192.168.0.2
      iptables -A FORWARD  -j ACCEPT
      #iptables -L -t nat     (list all rules)
      
      # activate ip forwarding
      echo 1 > /proc/sys/net/ipv4/ip_forward
      Nun noch einmalig händisch starten
      chmod +x /scripts/iptables.ovpn.sh
      /etc/init.d/iptables.openvpn.sh
      und automatisch beim Systemstart ausführen lassen:
      update-rc.d iptbl.ovpn defaults 98
  2. Client (Max OS X)

    Die Hauptarbeit ist bereits getan, nach wenigen Schritten sollte sich nun der erste Client verbinden lassen. Der fertig geschnürte OpenVPN-Client Tunnelblick muss in der Version 3 heruntergeladen und alle enthaltenen Programme mit Doppelklick auf Tunnelblick-Complete.mpkg installiert werden.

    Nachdem die Schlüssel und Zertifkate client1.crt, client1.key und ca.crt (etwa per SCP) vom Server nach /Users/USERNAME/Library/openvpn/ gewandert sind, startet man Tunnelblick mit einem Doppelklick (zu finden unter Utilities). Ein Klick auf das Symbol öffnet das spartanische Menü, Details... öffnet den Log Output, bei dem sich ein Button Edit Configuration findet. Hier sind nur wenige Änderungen vorzunehmen:
    # Serveradresse angeben
    remote HOST PORT
    
    # Zertifikat und Schlüssel
    cert client1.crt
    key client1.key
    
    # Kompression
    comp-lzo
    Abspeichern und ein Klick auf Connect oder openvpn (Disconnected im Menü sollte erfolgreich Zugang zum Server gewähren.

Reflog

Informationstechnische Howtos, Hinweise und Merkwürdiges

Batchlib v1.0 2008-03-29

Aktuelle Beiträge

HOWTO_ O2 DSL Surf &...
Der O2 DSL Surf & Phone-Router ist für die alleinige...
cypressor - 12. Feb, 19:57
Uptweak Windows XP Home...
There are a lot of annoying limitations in Windows...
cypressor - 9. Okt, 19:30
BATCHLIB_ Batchlib package...
Download Batchlib package v1.0 (5 KB zip file) What...
cypressor - 29. Mär, 19:10
BATCHLIB_ Batchlib library...
The batchlib library string.cmd is part of the batchlib...
cypressor - 29. Mär, 18:10

Homepage Ticker

Links

Status

Online seit 6590 Tagen
Zuletzt aktualisiert: 28. Jun, 11:32
RSS XML 1.0 Button-Get-Firefox

batch
batchlib
howto
tech
video
Profil
Abmelden
Weblog abonnieren