User Tools

Site Tools


encryption:openvpn

Tunnel ohne Security

Hier der openvpn-manpage-Auszug:

Example 1: A simple tunnel without security
    On may:

           openvpn --remote june.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 --verb 9

    On june:

           openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 --verb 9

    Now verify the tunnel is working by pinging across the tunnel.

    On may:

           ping 10.4.0.2

    On june:

           ping 10.4.0.1

Preshared Key Methode

Erzeugen des Keys

Zunächst muss ein zufälliger Key erzeugt werden:

openvpn --genkey --secret key

optional auch:

openvpn --genkey --cipher BF-CBC --keysize 128 --secret key

zum anzeigen der möglichen Parameter für cipher und keysize:

openvpn --show-ciphers

Konfiguration der Peers

Die restliche Prozedur erfolgt wie für einen Tunnel ohne Security, <br /> allerdings mit –secret <key> als parameter:

On may:

      openvpn --remote june.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 --verb 5  --secret key

On june:

      openvpn  --remote  may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 --verb 5 --secret key

Server mit tls-Security

Dies setzt die existenz einer ssl-CA vorraus. Zum erzeugen derer unter SSL nachsehen.<br /> Für den tls-Server muss eine Datei mit Diffie Hellman Parametern im .pem Format vorliegen.<br /> Zur erzeugung:

openssl dhparam -out dh1024.pem 1024

Für jeden Peer muss ein Zertifikat mit zugehörigem Private-Key erzeugt werden. Hierzu zunächst ein Certificate-Request erzeugen:

openssl req -nodes -new -keyout mycert.key -out mycert.csr

Dann den Request (mycert.csr) mit der CA signieren:

openssl ca -out mycert.crt -in mycert.csr

Gegen DoS-Attacken kann zusätzlich eine tls-auth-Datei angegeben werden. Diese Datei wird auf alle Peers geshared. Hierzu dient vorzüglich ein preshared-Key, der mit openvpn erstellt wurde:

openvpn --genkey --secret key

Bridging vs. Tunneling

um ein bridge-bares device zu erzeugen, muss –dev tapX gesetzt werden, <br /> ausserdem bekommt –ifconfig eine neue Bedeutung: –ifconfig <eigene ip> <netmask>. <br /> wird tap später zu einer bridge hinzugefügt, sollte –ifconfig ganz weggelassen werden.

Performance-Tuning

Weniger Security

Je weniger Overhead durch die Ver- und Entschlüsselung erzeugt wird, <br /> desto besser ist natürlich die Performance. Allerdings steht meist die Sicherheit <br /> im Vordergrund, daher keine Wirkliche Alternative.

Manchmal kann auch die Benutzung eines kleineren Keys eine Lösung sein.

Output-Dezimierung

Vorallem auf Embedded-Systemen können Resourcen eingespart werden, <br /> wenn –verbose auf einen sehr niedrigen Wert gesetzt wird.

Beispielkonfigurationen

Server

#local 10.0.0.1
tls-server
mode server
port 1194
proto udp
dev tap
#dev tun
ca /etc/ssl/openvpn/cacert.pem
cert /etc/ssl/openvpn/basecrt.pem
key /etc/ssl/openvpn/base.key 
dh /etc/ssl/openvpn/dh1024.pem

#server 10.4.0.0 255.255.255.0
#server-bridge 192.168.1.1 255.255.255.0 192.168.1.100 192.168.1.200

push "route 192.168.1.0 255.255.255.0"
#push "route 192.168.20.0 255.255.255.0"
#push "redirect-gateway"
#push "dhcp-option DNS 192.168.1.23"
push "dhcp-option DNS 192.168.1.1"

keepalive 10 120

tls-auth /etc/ssl/openvpn/ta.key 0 # This file is secret

max-clients 5

user nobody
group nobody
persist-key
persist-tun

verb 3
mute-replay-warnings

Client

tls-client
dev tap
proto udp
#remote pr4x.ath.cx 1194
remote 10.0.0.1
ifconfig 192.168.1.21 255.255.255.0
route-gateway 192.168.1.1
redirect-gateway
nobind
user nobody
group nobody
persist-key
persist-tun
ca /etc/openvpn/cacert.pem
cert /etc/openvpn/tinycrt.pem
key /etc/openvpn/private/tinykey.pem
#ns-cert-type server
tls-auth /etc/openvpn/private/ta.key 1
#verb 6
verb 3
encryption/openvpn.txt · Last modified: 2006/07/15 23:29 (external edit)