Inhaltsverzeichnis

http://wiki.openvpn.eu/

Programm installieren

openvpn auf Server und Client installieren

Server konfigurieren

. ./vars       (punkt leerzeichen punkt slash)
  ./clean-all
  ./build-ca
iroute 192.168.4.0 255.255.255.0
      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
# 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

       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
            ;;
# 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)

http://www.vnudownload.de/linux-professionell/Linux_Professionell_0305_VPN-Server.pdf

Automatische Wartung

Am Server:

#!/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

Am Client

Problem: Starting OpenVPN hängt

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