Benutzer-Werkzeuge

Webseiten-Werkzeuge


edv:openvpn

Dies ist eine alte Version des Dokuments!


openVPN

Server

Client

nachsehen, was im P12-Zertifikat drin steht (eine P12-Datei ist praktisch eine verschlüsselte PEM-Datei):

> openssl pkcs12 -info -in /home/fritz/key.p12
Enter Import Password:
MAC Iteration 2048
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
    localKeyID: DC 63 92 67 35 7D E2 58 8A F1 DC FE 38 58 7E 79 EB 15 F1 42
subject=/C=DE/ST=Bundesland/L=Stadt/O=Organisation/CN=Fritz/emailAddress=fritz@firma.de
issuer=/C=DE/ST=Bundesland/L=Stadt/O=Organisation/CN=Zertifizierungsstelle/emailAddress=a.bubi@work.de
-----BEGIN CERTIFICATE-----
...

Zertifikat im PEM-Format exportieren:

> openssl pkcs12 -in /home/fritz/key.p12 -out /home/fritz/cert.pem
Enter Import Password:
MAC verified OK
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

Gültigkeitszeitraum des PEM-Zertifikates anzeigen:

> openssl x509 -noout -dates -in /home/fritz/cert.pem
notBefore=May 12 15:46:00 2015 GMT
notAfter=May 11 15:46:00 2016 GMT

Ablaufdatum des PEM-Zertifikates anzeigen:

> openssl x509 -noout -enddate -in /home/fritz/cert.pem
notAfter=May 11 15:46:00 2016 GMT

Bei Ubuntu:

> aptitude -y install openvpn

Konfiguration

> vi opnevpn.conf

client
;dev tun
dev tap
;dev-node MyTap
proto tcp
;proto udp
;remote gateway.domain.de 1194
remote 123.456.789.101 1194
;remote-random
resolv-retry infinite
nobind
persist-tun
persist-key
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
;mute-replay-warnings
pkcs12 /home/fritz/key.p12
;ns-cert-type server
;ns-cert-type client
;tls-auth ta.key 1
;cipher x
comp-lzo
pull
verb 3
;mute 20
;up /home/fritz/bin/ovpn_start.sh
;down /home/fritz/bin/ovpn_stop.sh
;up /etc/network/if-up.d/openvpn
;down /etc/network/if-down.d/openvpn

Default

Bei den meisten (großen) Linux-Distributionen (z.B. RedHat, CentOS, Fedora oder Ubuntu) sollte es so funktionieren:

Als erstes die Konfigurationsdatei mit einem erwarteten Namen an den erwarteten Ort kopieren.

# cp opnevpn.conf /etc/openvpn/

Dann kann man es starten (bei einem passwort geschützten Schlüssel, wird es natürlich an dieser Stelle auch abgefragt!).

# /etc/init.d/openvpn start
 * Starting virtual private network daemon(s)...
 *   Autostarting VPN 'openvpn'
Enter Private Key Password:
                                                                       [ OK ]

von Hand

Sollte es aus irgendwelchen Gründen nicht hin hauen, dann funktionierte es aber auf jeden Fall von Hand!

Gestartet wird openVPN als root so:

# openvpn --config /home/fritz/opnevpn.conf

oder als fritz so:

# su - root -c "openvpn --config /home/fritz/opnevpn.conf"

Es ist weiterhin darauf zu achten, dass die /etc/resolv.conf evtl. die nötigen Einträge hat.

Sollte man auf die Mitnahme der SSH-Schlüssel angewiesen sein, kann man bei Problemen ausprobieren, ob diese Kommandos helfen:

> echo 'eval $(ssh-agent)' >> ~/.bashrc
> echo "ssh-add" >> ~/.bashrc

Eigentlich sollte es ja automatisch gehen, aber die Ausnahme bestätigt die Regel…

Sollte es trotzdem nicht funktionieren, dann empfehle ich das Paket keychain, das hat bis jetzt immer geholfen:

# keychain --agents ssh ~/.ssh/id_dsa ~/.ssh/id_rsa ~/.ssh/id_rsa_arbeit

openVPN - ein Beispiel

getestet mit Ubuntu 18.04.1 LTS

die Schlüssel müssen sicher vor der Welt sein:

> chown -R 0:0 /etc/openvpn/schl
> chmod 0700 /etc/openvpn/schl
> chmod 0600 /etc/openvpn/schl/*
/etc/openvpn/openvpn.conf
# openvpn --config /etc/openvpn/openvpn.conf
auth-nocache
#
remote 199.227.199.199 1194
pkcs12 /etc/openvpn/schl/ho.p12
#
comp-lzo
dev tap
cipher AES-256-CBC
tls-auth /etc/openvpn/schl/ta.key 1
#
auth SHA1
#auth SHA256
#auth SHA512
#
client
proto udp
#resolv-retry infinite
resolv-retry 3
nobind
persist-key
persist-tun
pull
verb 3
#
ping-restart 5          # Restart pause, 5 second(s)
### WARNING: No server certificate verification method has been enabled.
#ns-cert-type server    # is DEPRECATED
remote-cert-tls server
/home/sbin/Bereitschaft.sh
#!/bin/bash
echo 'Z2VoZWltZXMgUGFzc3dvcnQgZsO8ciBkZW4gUDEyLVNjaGzDvHNzZWwK' | base64 -d
openvpn --writepid /run/openvpn/openvpn.pid --status /run/openvpn/openvpn.status 10 --cd /etc/openvpn --config /etc/openvpn/openvpn.conf
> screen -S openVPN /root/bin/Bereitschaft.sh
> route -n
> screen -x openVPN
> ps alx | fgrep -v grep | fgrep openvpn
> cat /run/openvpn/openvpn.pid
> cat /run/openvpn/openvpn.status
> kill -9 $(cat /run/openvpn/openvpn.pid)
> kill -9 $(cat /run/openvpn/openvpn.pid) || rm /run/openvpn/openvpn.pid
/home/http/wiki/data/attic/edv/openvpn.1712327335.txt · Zuletzt geändert: von manfred