vpn
Inhaltsverzeichnis
Programm installieren
openvpn auf Server und Client installieren
Server konfigurieren
- Ordner
/usr/share/doc/packages/openvpnnach/etc/openvpnkopieren - In das Verzeichnis
/etc/openvpn/easy-rsawechseln und die Dateivarsbearbeiten - Folgende Befehle ausführen:
. ./vars (punkt leerzeichen punkt slash) ./clean-all ./build-ca
- Das Serverzertifikat mit
./build-key-server s4eerstellen - Den Schlüssel für den Client mit
./build-key d4eerstellen - Folgendes ausführen:
./build-dh - Ein Verzeichnis
/etc/openvpn/ccdanlegen - Eine Datei
/etc/openvpn/ccd/d4emit folgendem Inhalt anlegen:
iroute 192.168.4.0 255.255.255.0
- Der Datei
/etc/init.d/openvpnfolgende 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.confanlegen:
# 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/nfsfolgende 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
- bgweiz.ovpn von http://files.bgweiz.at/vpn/ herunterladen
- Verbindung mit OpenVPN Client aufbauen
- Windows Explorer: \\5.5.5.5\vorname.zuname oder
- 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: von admin
