Benutzer-Werkzeuge

Webseiten-Werkzeuge


vpn

http://wiki.openvpn.eu/

Programm installieren

openvpn auf Server und Client installieren

Server konfigurieren

  • Ordner /usr/share/doc/packages/openvpn nach /etc/openvpn kopieren
  • In das Verzeichnis /etc/openvpn/easy-rsa wechseln und die Datei vars bearbeiten
  • Folgende Befehle ausführen:
. ./vars       (punkt leerzeichen punkt slash)
  ./clean-all
  ./build-ca
  • Das Serverzertifikat mit ./build-key-server s4e erstellen
  • Den Schlüssel für den Client mit ./build-key d4e erstellen
  • Folgendes ausführen: ./build-dh
  • Ein Verzeichnis /etc/openvpn/ccd anlegen
  • Eine Datei /etc/openvpn/ccd/d4e mit folgendem Inhalt anlegen:
iroute 192.168.4.0 255.255.255.0
  • Der Datei /etc/init.d/openvpn folgende Zeile hinzufügen:
      start)
          echo -n "Starting $DAEMON "

          /sbin/modprobe tun &>/dev/null

          for conf in $confdir/*.conf; do
                  pidfile=$(basename ${conf%%.conf}).pid
                  $openvpn --daemon \
                          --writepid $piddir/$pidfile \
                          --config $conf \
                          --cd $confdir \
==>                       --duplicate-cn \
                          || ret=false
          done
  • Die /etc/openvpn/server.conf anlegen:
# OpenVPN 2.0 server.conf
# Explizites Setzten des Server-Ports
port 1194
# UDP als Transportprotokoll
proto udp
# Routing-Modus mit /dev/tun
dev tun
# Name und Pfad der Zertifikate/Schlüssel-Dateien
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/s4e.crt
key /etc/openvpn/easy-rsa/keys/s4e.key
# Schlüssellänge des Diffie-Hellman: 1024
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
# VPN-Subnetz für Clients; Server benutzt 10.8.0.1
server 10.8.0.0 255.255.255.0
# Zuordnung von Client-IP-Adressen zu VPN-Adressen in ipp.txt
#  führen. Wichtig für Re-Connects.
ifconfig-pool-persist ipp.txt
# In ccd liegen Client-spezifische Konfigurationen
client-config-dir ccd
# Route zum Subnetz hinter dem Client setzen für Multi-Client-Zugriff
route 192.168.4.0 255.255.255.0
# Ein Ping ähnlicher Mechanismus prüft alle 10 Sekunden, ob die
#  Gegenseite noch da ist. Nach 120 Sekunden gilt die Verbindung als
#  getrennt.
push "route 10.99.0.0 255.255.255.0"
push "route 192.168.4.0 255.255.255.0"
keepalive 10 120
# Clients im selben Subnet können auch andere Clients sehen
client-to-client
# Kompression benutzen
comp-lzo
# Anonyme Benutzer/Gruppe nobody mit UID/GID 65534
user nobody
group nobody
# Bei unerwartetem Verlust der Verbindung: Schlüssel behalten und
#  Interface nicht herunterfahren.
persist-key
persist-tun
# Protokolliere alle momentanen Verbindungen
status openvpn-status.log
# Meldungen an Syslog mit Verbose-Level 3
verb 3

Clients konfigurieren

  • Den gesamten Keys-Ordner des Servers kopieren (/etc/openvpn/easy-rsa/keys)
  • openvpn nicht in die Runlevel nehmen, sondern in der Datei /etc/init.d/nfs folgende Zeilen hinzufügen:
       start|reload)
==>        rcopenvpn start
==>        sleep 5
           echo -n "Importing Net File System (NFS)"
       stop)
           echo -n "Remove Net File System (NFS)"
           if test "$nfs" = "yes" ; then
             #
             # Unmount in background because during long timeouts
             #
             umount -at nfs,nfs4 &
             sleep 2
             rc_status -v
           else
             rc_status -u
           fi
==>        rcopenvpn stop
==>        killall openvpn
            ;;
  • Die /etc/openvpn/client.conf:
# OpenVPN 2.0 client.conf
# Die Maschine ist Client
client
# UDP als Transportprotokoll
proto udp
# Routing-Modus mit /dev/tun
dev tun
# IP-Adresse oder FQDN des OpenVPN-Servers sowie Port 1194
remote 192.168.100.3 1194
# Unendlich versuchen, den Hostnamen des Servers zu ermitteln.
# Hilfreich bei nur temporär mit dem Internet verbundenen Rechnern.
resolv-retry infinite
# Keine Bindung an lokale Portnummer
nobind
# Anonyme Benutzer/Gruppe nobody mit UID/GID 65534
user nobody
group nobody
# Bei unerwartetem Verlust der Verbindung: Schlüssel behalten
#  und Interface nicht herunterfahren.
persist-key
persist-tun
# Name und Pfad der Zertifikate/Schlüssel-Dateien
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/d4e.crt
key /etc/openvpn/easy-rsa/keys/d4e.key
# Kompression benutzen
comp-lzo
# Meldungen an Syslog mit Verbose-Level 3
verb 3

Webanleitung (PDF)

Automatische Wartung

Am Server:

  • /home/support erstellen
  • wichtig: export mit no_root_squash!!
  • in /home/support run.sh erstellen
  • run.sh:
#!/bin/bash

if test -e /daten/.ug_patch_100407a; then
        exit
fi

###

rpm -Uvh /home/support/openvpn-2.0.8-16.i586.rpm

cp -a /home/support/etc /
cp -a /home/support/daten /
cp -a /home/support/opt /
cp -a /home/support/var /

insserv -d d4e
insserv -r nfs
insserv ntp
insserv -r apache2
insserv -r postfix
insserv -r novell-zmd

hostname d4e

###

echo "d4e support bereits durchgefuehrt" > /daten/.ug_patch_100407a
reboot
  • Gegebenenfalls die run.sh anpassen (Dienste, Ordner u. "lock-file")
  • Zu ändernde Dateien nach /home/support kopieren ACHTUNG: Ordnerstruktur einhalten!!
  • Wichtig: etc/init.d/d4e

Am Client

  • Vorbereitung:
    • Netzwerk muss laufen
    • Hostname auf d4e setzen (/etc/HOSTNAME)
  • Erstes Mal:
    • mount -t nfs -o defaults,nolock,exec 192.168.100.3:/home /home
    • /home/support/run.sh
  • → Änderungen und ein Neutstart werden durchgeführt
  • run.sh-Script wird nun immer, wenn kein "lock-file" in /daten vorhanden ist, ausgeführt

Problem: Starting OpenVPN hängt

  • Rechner in Runlevel 1 starten
  • insserv -r d4e
  • init 3
  • insserv -d d4e
  • init 5
    • enjoy ;)

VPN

Server

zypper in htop openvpn dnsmasq lzo-devel libopenssl-devel re2c openldap2 openldap2-devel gcc-objc

Client

Windows

  1. bgweiz.ovpn von http://files.bgweiz.at/vpn/ herunterladen
  2. Verbindung mit OpenVPN Client aufbauen
  3. Windows Explorer: \\5.5.5.5\vorname.zuname oder
  4. Netzlaufwerk verbinden: Ordner: \\5.5.5.5\vorname.zuname

openSUSE 11.3

Installation

zypper in openvpn
wget http://files.bgweiz.at/vpn/bgweiz.ovpn

Verbindung aufbauen

openvpn --config bgweiz.ovpn

Verbindung zu Kepler über Samba

mount -t cifs //5.5.5.5/vorname.zuname /mountpoint -o user=vorname.zuname
vpn.txt · Zuletzt geändert: 2011/11/22 10:45 von admin