19.04.2023

Software Tipps und FAQs

MSOffice | Outlook
OpenOffice
LocoSoft
Backup Exec
Veeam Backup
BauSU
Datev
TurboMed
Diamant Software
ELO Office
Sage Software
ChartaCasa
Starmoney/ Starmoney Business
AVM Ken!
Profit Änderungen für W2K Server und Peer to Peer Installation
Installation von KWP
Acrobat Reader
Symantec AntiVirus und PC-Anywhere auf Win2003 Server
Knoppix
Kaspersky, F-Secure, ESET, Avira, McAfee, Trend Micro
OpenVPN
NCP VPN Client
SSL
Nemetschek Allplan
ESTOS CTI
Benchmark Programme
Internet Browser
eMail Clients
Syncronisations Software
Allegro
WireShark
WinPcap
OpenStreetMap
WinBuilder
Let’s-Encrypt Zertifikat
Acronis
DriveSnapshot
Autopsy
Übersicht
sonstiges

Navigation:

Links:
OpenVPN Wiki
OpenVPN Wiki - Vergleich TUN/TAP
OpenVPN Forum (deutsch)
OpenVPN Bedienanleitung
OpenVPN Zertifikat Check
TunnelBlick OpenVPN für OSx
SoftEther - OpenVPN alternative

Seitenanfang

OpenVPN Windows einrichten

- nach der Installation ausführen

cd \Programme\OpenVPN\easy-rsa\
init-config
edit vars.bat
vars
clean-all
build-ca

Public Key Verfahren

- Serverzertifikat erstellen

build-key-server server

- Clientzertifikate erstellen

build-key client1
build-key client2
build-key client3

als "Common Name" muss immer ein anderer Name angegeben werden, da nicht zwei Zertifikate mit gleichen "Common Name" erstellt werden können.

- Diffie Hellmann parameter erstellen

build-dh
Filename	Needed By			Purpose				Secret
ca.crt		server + all clients		Root CA certificate		NO
ca.key		key signing machine only	Root CA key			YES
dh{n}.pem	server only			Diffie Hellman parameters	NO
server.crt	server only			Server Certificate		NO
server.key	server only			Server Key			YES
client1.crt	client1 only			Client1 Certificate		NO
client1.key	client1 only			Client1 Key			YES
client2.crt	client2 only			Client2 Certificate		NO
client2.key	client2 only			Client2 Key			YES
client3.crt	client3 only			Client3 Certificate		NO
client3.key	client3 only			Client3 Key			YES

- folgende Dateien ins config Verzeichnis auf dem Server kopieren

ca.crt
dh1024.pem
server.crt
server.key

- folgende Dateien ins config Verzeichnis auf dem Client kopieren

ca.crt
client.crt
client.key

Gemeinsame Schlüsseldatei für Server und Client

- Schlüsseldatei mit 2048 Bit SSL Key erstellen, diese wird dann im Parameter secret openvpn.sec angegeben. Für einen längerne Schlüssel z.B. die Option --keysize 4096 nutzen.

openvpn --genkey --secret openvpn.sec

Servermodus mit Konfigfile starten

openvpn --config server.ovpn
Seitenanfang

Zertifkate

Seitenanfang

Zertifkat sperren

Variablen laden und das Zertifikate für den client3 sperren

vars
revoke-full client3

in der letzen Zeile beim Zertifikat sperren, sollte dann folgendes stehn.

error 23 at 0 depth lookup:certificate revoked

in der Serverkonfig noch folgenden Parameter setzen, die Datei crl.pem vorher ins config Verzeichnis kopieren und dann denn Server neustarten.

crl-verify crl.pem

Revoke von Zertifikaten

Seitenanfang

Ablaufdatum eines Zertifikates prüfen

Wenn der Verbindungsaufbau mit dem Fehler TLS handshake failed abbricht, kann es sein das eines der Zertifikate abgelaufen ist. Dies kann man wie folgt am Beispiel des CA Zertifikates prüfen. Die Clientzertifikate müssen daraufhin auch auf Ablauf geprüft werden.

openssl x509 -noout -enddate -in ca.crt
Seitenanfang

Zertifikate für Android bereitstellen

- Zertifikat für ein Android System in PFX/P12/PKCS#12 umwandeln, der Parameter -name bezeichnet den Namen, der dann auf dem Gerät als Zertifikatsname angezeigt wird.

openssl pkcs12 -export -in keys\client1.crt -inkey keys\client1.key -certfile keys\ca.crt -name ZertName -out ZertName.p12
Seitenanfang

EasyRSA 3

vars-sample konfigurieren und als vars speichern.

- PKI (Public Key Infrastructure) initialisieren
- Diffie-Hellman Schlüsselaustausch generieren
- CA erstellen und Passwort für das Zertifizierungstellenzertifikat erstellen
- Server Zertifikat erstellen
- Client Zertifikat erstellen

CD \OpenVPN\easy-rsa\
EasyRSA-Start.bat
./easyrsa init-pki
./easyrsa gen-dh
./easyrsa build-ca
./easyrsa build-server-full <UNIQUE_SERVER_SHORT_NAME> nopass
./easyrsa build-client-full <UNIQUE_CLIENT_SHORT_NAME> nopass

- Zertifikat anzeigen

./easyrsa show-cert client1

- Zertifikat zurückziehen
- CRL (Certificate Revoking List) zum Einbinden auf dem Server erzeugen

./easyrsa revoke client1
./easyrsa gen-crl

 



 Seitenanfang

OpenVPN Parameter

Device TUN überträgt IP-Pakete im OSI Layer 3, Broadcast werden z.B. nicht übertragen.

Device TAP (Bridge Modus) überträgt Ethernetframes im OSI Layer 2, Broadcast werden übertragen, ist als ob man local am Netz angeschlossen ist. Protokolle wie AppleTalk oder IPX können auch über den Tunnel genutzt werden.

Parameter für Server und Client Erläuterung
dev tun/tap welches Device verwendet werden soll tun oder tap
proto udp/tcp-client Protokoll udp oder tcp
dev-node <TAP-Device> Name der virtuellen Netzwerkkarte/Device, bei Verwendung von mehreren Device z.B. wenn der PC als Server und Client läuft.
comp-lzo Komprimierung aktivieren
ifconfig ServerIP ClientIP (Linux) Angabe der IP Adressen des Tunnelendes
ca ca.crt Zertifikat des Zertifizierungsstelle (Öffentlich)
cert zertifikat.crt Zertifikatsdatei (Öffentlich)
key zertifikat.key Schlüsseldatei (Privat)
secret /etc/openvpn/openvpn.sec Speicherort der gemeinsamen Keydatei (für Client und Server)
tun-mtu 1380 (Maximum Tranfer Unit) MTU des TUN Device, der OpenVPN Overhead muss bei tun-mtu mit eingerechnet werden
link-mtu 1432 der OpenVPN Overhead wird vom TUN-Interface automatisch berücksichtigt
mssfix Fix für Microsoft Clients (MTU 1300 wird gesetzt)
mssfix 1357 Fix für Microsoft Clients MTU auf 1357 setzen
fragment 1300 ab welcher Größe die Pakete die durch den Tunnel gehen, geteilt (fragmentiert) werden. !! nur unter UDP verwendbar !!
verb 3 LogLevel auf 3 gesetzt (Loglevel 0 - 9)
persist-key Hält den privaten Schlüssel im Speicher
persist-tun Hält das TUN/TAP Gerät bei einem Neustart offen
ip-win32 ipapi DHCP-Server/Client über die Windows API
ip-win32 netsh verwendet netsh und trägt die IP statisch ein
ip-win32 manual statische IP
auth SHA1  
cipher AES-256-CBC  
   
Server Parameter
port 1194 Portnummer auf der der Server auf Verbindung wartet
topology subnet/net30/p2p Wiki ab OpenVPN 2.1 und höher im TUN Modus, Parameter p2p ist nicht für Windows
server 192.168.17.0 255.255.255.0 TUN Servermodus, der Server ist unter der IP 192.168.17.1 erreichbar, der erste Client bekommt die 192.168.17.6 zugewiesen per DHCP
server-bridge 192.168.17.1 255.255.255.0 192.168.17.5 192.168.17.10 TAP Servermodus, der Server ist unter der IP 192.168.17.1 erreichbar, die Clients bekommen die IPs 192.168.17.5 - 192.168.17.10 per DHCP zugewiesen
push "route 192.168.1.0 255.255.255.0" Route ins OpenVPN-Server-LAN auf dem Client automatisch zuweisen
route 192.168.2.0 255.255.255.0 Route beim herstellen der Verbindung auf dem OpenVPNServer automatisch setzen
push "dhcp-option DNS 192.168.1.1" DNS Server automatisch zuweisen
client-to-client ermöglicht die Kommunikation der VPN-Clients untereinander
keepalive 10 120 alle 10 Sekunden wird versucht, die Gegenstelle zu erreichen, wenn diese nach 120 Sekunden nicht geantwortet hat wird versucht die Verbindung neu aufzubauen
status openvpn-status.log Name der LOG Datei
tls-server Server bei der Authentifizierungs
dh dh1024.pem Dieffie-Hellman Zertifikat
ifconfig-pool-persist ipp.txt in der Datei ipp.txt werden die IPs der Clients gespeichert.
server-ipv6 fd00:defa:defa:17::/64 IPv6 Netzwerk des Servers festlegen, Server erhätl die IPv6 fd00:defa:defa:17::1
crl-verify crl.pem gesperrte Zertifikate aus der Datei crl.pem auslesen
auth-user-pass-verify <Datei/Script> via-env/via-file Username und Passwort abfragen, per Variable oder Datei
script-security 3 Security Level beim Ausführen von Scripten
   
Client Parameter
client im Clientmodus starten
nobind keine Bindung an locale Ports
remote <Server-IP oder DNSName> Port Adresse des Servers
iroute 192.168.2.0 255.255.255.0 setzt eine Interne Route, wird auf dem OpenVPN Server verwendet, wenn man für bestimmte Clients Konfigurationen im CCD Verzeichnis abgelegt hat. client-config-dir /vpn/ccd-dir Wiki
tls-client Client bei der Authentifizierungs
auth-nocache Passwörter nicht im Speicher halten
remote-cert-tls server Zertifikat von Server prüfen, der Parameter ns-cert-type ist ab V2.4 veraltet
auth-user-pass Username und Passwort abfragen oder hinterlegen
   
Seitenanfang

OpenVPN Client mit fester IP-Adresse

ein Verzeichnis erstellen z.B. "ccd" in diesem Verzeichnis wird dann eine Text Datei abgelegt mit folgendem Inhalt. Diese Textdatei enthält die Konfiguration und die IP Adressen des/der Clients.

client-config-dir ccd
route 192.168.17.0 255.255.255.252
ifconfig-push 192.168.17.5 192.168.17.6
Seitenanfang

OpenVPN Routing

Beispiel: TUN Device (dev tun)

  IP-Netz IP Adresse Gateway SubnetMask
LAN IP OpenVPN Client 192.168.200.0 10.0.200.50   255.255.255.0
LAN IP OpenVPN Server 192.168.100.0 10.0.100.100   255.255.255.0
TAP-Device IP OpenVPN Server 192.168.17.0 192.168.17.1 192.168.17.2 255.255.255.252
TAP-Device IP OpenVPN Client 192.168.17.4 192.168.17.6 192.168.17.5 255.255.255.252

Route auf den OpenVPN Client ins OpenVPN Server Netzwerk

route add 10.0.100.0 mask 255.255.255.0 192.168.17.5
# automatisch durch Eintrag in der Konfig des Servers server.ovpn
...
push "route 192.168.100.0 255.255.255.0"

Route auf dem PC im OpenVPN Client Netz zum OpenVPN Server Netzwerk

route add 192.168.17.4 mask 255.255.255.252 10.0.200.50

auf den OpenVPN Server muss das Routing aktiviert werden, so das die Pakete vom VPN Client zum PC im Netz des VPN Servers und wieder zurück gelangen können.

Routing unter Windows aktivieren

nach dem setzen des Parameters, der Rechner neu starten.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters]
"IPEnableRouter"=dword:00000001
Seitenanfang

Kommandozeilen Befehle

Befehl Erläuterung
openvpn --show-adapters TAP Adapter anzeigen
openvpn --show-digests Krypo Hash, mögliche Parameter für die auth Option z.B. auth SHA512
openvpn --show-ciphers Verschlüsselungsalgorithmus, Parameter für cipher Option z.B. cipher AES-256-GCM
openvpn --help alle möglichen Parameter für OpenVPN
   

 

Registry Parameter

[HKEY_LOCAL_MACHINE\SOFTWARE\OpenVPN]
@="C:\\Programme\\OpenVPN"
"config_dir"="C:\\Programme\\OpenVPN\\config"
"config_ext"="ovpn"
"exe_path"="C:\\Programme\\OpenVPN\\bin\\openvpn.exe"
"log_dir"="C:\\Programme\\OpenVPN\\log"
"priority"="NORMAL_PRIORITY_CLASS"
"log_append"="0"
Seitenanfang

OpenVPN Bridge-Modus TAP-Device

Server Konfiguration

Variante 1 OpenVPN TAP Device hat eine andere IP als das LAN Interface des Servers, wenn weitere Rechner im LAN mit dem VPN Client kommunizieren sollen, muss bei denen noch eine Route gesetzt werden.

# OpenVPN Windows Server Konfiguration
# das OpenVPN TAP Device hat die IP 192.168.17.1/255.255.255.0 zugewiesen
# das LAN Netzwerk hat die IP 192.168.5.0
# TAP Adaptereinstellung MTU 1500
# IP	192.168.17.1
# Mask	255.255.255.0
# DNS	127.0.0.1 (beliebig)

port 1194
proto udp
dev tap
;dev-node ServerTAP
mssfix 1357

# Anpassung ab Win2008/Win7
route-method exe
route-delay 2

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

ifconfig-pool-persist ipp.txt
server-bridge 192.168.17.1 255.255.255.0 192.168.17.5 192.168.17.10
push "route 192.168.5.0 255.255.255.0 192.168.17.1"
push "dhcp-option DNS 192.168.5.1"

persist-key
persist-tun
auth SHA1
cipher AES-256-CBC
keepalive 10 120
status openvpn-status.log
verb 3

für eine bessere Verschlüsselung können die auth und cipher Parameter noch angepasst werden, die Parameter müssen in der Server und Client Konfiguration gleich sein.

auth SHA512
cipher AES-256-GCM

Variante 2 das OpenVPN TAP Device ist mit einer Netzwerkbrücke mit dem LAN Interface verbunden

Die OpenVPN Clients bekommen IP-Adressen von 192.168.5.5 - 192.168.5.10 zugewiesen.

# OpenVPN Windows Server Konfiguration
# Netzwerkbrücke zwischen TAP und LAN Device
# die Netzwerkbrücke hat die IP 192.168.5.1
#
port 1194
proto udp
dev tap
;dev-node ServerTAP
mssfix 1357

# Anpassung ab Win2008/Win7
route-method exe
route-delay 2

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

ifconfig-pool-persist ipp.txt
server-bridge 192.168.5.1 255.255.255.0 192.168.5.5 192.168.5.10
push "dhcp-option DNS 192.168.5.1"

persist-key
persist-tun
auth SHA1
cipher AES-256-CBC
keepalive 10 120
status openvpn-status.log
verb 3

Client Konfiguration

# OpenVPN Windows Client Konfiguration
# das OpenVPN TAP Device steht auf DHCP

remote <IP-des-Servers> 1194

ca ca.crt
cert client1.crt
key client1.key

client
dev tap

# ab v2.4 per Default aktiv
# dhcp-release
dhcp-renew

# Anpassung OpenVPN 2.4
# Server Zertifikat prüfen
remote-cert-tls server
# Passwort nicht im Speicher halten
auth-nocache

;dev-node TAP
proto udp
nobind
resolv-retry infinite
persist-key
persist-tun
auth SHA1
cipher AES-256-CBC
verb 3
Seitenanfang

OpenVPN Routing-Modus TUN-Device

TUN-Device Konfiguration läuft nicht auf Domaincontrollern ab Windows 2008. Dafür ein TAP-Device verwenden.

Server Konfiguration

Variante 1 OpenVPN TUN-Device ab Win2008/Win7

# OpenVPN Windows ab Win2008/Win7
# das TAP Device steht auf DHCP MTU 1500 belassen

port 1194
proto udp
dev tun
;dev-node ServerTUN
mssfix 1357

# Anpassung ab Win2008/Win7
route-method exe
route-delay 2

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

ifconfig-pool-persist ipp.txt

# IPv4 Servers Netzwerk - Server IP 192.168.17.1
server 192.168.17.0 255.255.255.0
# IPv6 Servers Netzwerk - Server IP fd00:defa:defa:17::1
server-ipv6 fd01:edda:edda:17::/64 persist-key persist-tun auth SHA1 cipher AES-256-CBC keepalive 10 120 status openvpn-status.log verb 3

für eine bessere Verschlüsselung können die auth und cipher Parameter noch angepasst werden, die Parameter müssen in der Server und Client Konfiguration gleich sein.

auth SHA512
cipher AES-256-GCM

Variante 2 OpenVPN TUN-Device Konfiguration für ältere Server

# OpenVPN Windows bis Win2003/WinXP
# das LAN Netzwerk hat die IP 192.168.0.0
# das TAP Device hat die IP 192.168.17.1/255.255.255.252 zugewiesen, Adaptereinstellung MTU 1300
# IP	192.168.17.1
# Mask	255.255.255.252
# DNS	127.0.0.1 (beliebig)

port 1194
proto udp
dev tun
;dev-node ServerTUN
mssfix 1357

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

server 192.168.17.0 255.255.255.0
ifconfig-pool-persist ipp.txt

persist-key
persist-tun
auth SHA1
cipher AES-256-CBC
keepalive 10 120
status openvpn-status.log
verb 3

Client Konfiguration

# OpenVPN Windows Client Konfiguration
# das OpenVPN TAP Device steht auf DHCP
#
remote <IP-des-Servers> 1194

ca ca.crt
cert client1.crt
key client1.key

client
dev tun

# ab v2.4 per Default aktiv
# dhcp-release
dhcp-renew

# Anpassung OpenVPN 2.4
# Server Zertifikat prüfen
remote-cert-tls server
# Passwort nicht im Speicher halten
auth-nocache

;dev-node Tap
proto udp
nobind
resolv-retry infinite
persist-key
persist-tun
auth SHA1
cipher AES-256-CBC
verb 3
Seitenanfang

OpenVPN GUI

Registry Schlüssel

Konfiguration anpassen anzeigen

"allow_edit"="1"

Passwort ändern anzeigen, das Passwort wird in der Datei gesetzt die unter den Parameter key client.key in der .ovpn Datei angegeben ist. (mind. 8 Stellen lang)

"allow_password"="1"

Proxy Einstellungen anzeigen

"allow_proxy"="1"

Balloon bei Verbindungsaufbau anzeigen

"show_balloon"="1"

Verbindungsfenster anzeigen

"silent_connection"="0"
Seitenanfang

Fehlermeldungen

Fehler

write UDPv4: Interrupted system call (WSAEINTR) (code=10004)

WSACancelBlockingCall

Fehlermeldung Server LOG

Could not determine IPv4/IPv6 protocol. Using AF_INET6

scheint eine Statusmeldung zu sein, keinen Parameter gefunden diese Meldung abzustellen.

Fehlermeldung Client LOG

WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this

in der Clientkonfiguration den Parameter auth-nocache setzen, Passwörter werden nicht mehr im Speicher des Rechners gehalten.

WARNING: No server certificate verification method has been enabled.
 See http://openvpn.net/howto.html#mitm for more info.

in der Clientkonfiguration den Parameter ns-cert-type server setzen, Die Option wird in OpenVPN 2.5 entfernt und statdessen soll der Parameter remote-cert-tls verwendet werden.

Obsolete option --dhcp-release detected. This is now on by default

Der Parameter # dhcp-release kann aus der Konfiguration entfernt werden, wird per Default gesetzt.

- Fehlermeldung beim Verbindungsaufbau vom Client ab OpenVPN 2.4.6 mit OpenSSL 1.1.0h

OpenSSL: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak
Cannot load certificate file client.crt

Das Clientzertifikat wird von OpenSSL abgelehnt, da im Zertifikat noch MD5 Hash verwendet wird. OpenSSL unterstützt per default keine MD5 Zertifikate mehr. !!! Die Zertifikate sollten erneuert werden !!!

Mit dem folgenden Parameter kann man OpenSSL anweisen mit MD5 Zertifikaten zu arbeiten.

tls-cipher "DEFAULT:@SECLEVEL=0"

 

Seitenanfang

Konfiguration Server und Client gleichzeitig

ein weiteres Tun/TAP Interface installieren, passend benennen. Das Device kann man dann nach Namen zuordnen z.B. Device wurde mit Server-TAP benannt.

# server.ovpn
... dev-node Server-TAP
...

 

Seitenanfang

OpenVPN unter Linux

Der Linux Kernel muss mit Unterstützung für TUN und TAP Device kompiliert sein.
TUN - Tunnel Device
TAP - Bridging für andere Protokolle wie NetBEUI, IPX oder AppelTalk

Kernel 2.4
Network Device Support | Universal TUN/TAP Device

Kernel 2.6
Device Drivers | Networking Support

- TUN Device anlegen

mkdir /dev/net
mknod /dev/net/tun c 10 200

- TUN Device laden

modprobe tun

- Kernelmodul beim Booten automatisch laden in /etc/modules.conf eintragen

alias char-major-10-200 tun

- IP Forwarding einschalten, wenn Pakete ins lokale Netz weitergeleitet werden sollen
Testen ob IP-Forwarding eingeschaltet ist (es wird eine 1 ausgegeben)

cat /proc/sys/net/ipv4/ip_forward

wenn IP-Forwarding aktivieren

echo 1 > /proc/sys/net/ipv4/ip_forward

- Firewall Regeln anpassen OpenVPN läuft in der Grundeinstellung im UDP Modus auf Port 1194

iptables -I INPUT -p upd -dport 1194 -j ACCEPT
iptables -I OUTPUT -m state --state ESTABLISHED -j ACCEPT

Pakete openvpn und openssl installieren.

Schlüssel und Zertifikate generieren

Konfigurationsdatei openssl.cnf von OpenSSL bearbeiten im Abschnitt [ CA_default ]
- Ordnervariable setzen

dir = /etc/ssl/				# Where everything is kept

- Dateinamen des CA-Zertifikates festlegen

certificate = $dir/cacert.pem		# The CA certificate

- Dateinamen des privaten CA Schlüssels

private_key = $dir/private/cakey.pem	# The private key

- beim anlegen von mehreren Zertifikaten ist es vorteilhaft die Voreinstellungen in der openssl.cnf zu setzen. Unter [ req_distinguished_name ]

countryName_default 		= Staat
stateOrProvinceName_default	= Bundesland
localityName			= Stadt
0.organizationName_default	= Firma
organizationalUnitName_default	= Abteilung
commonName			= CA-Name
emailAddress			= user@example.com

- Das private Verzeichnis der CA vor unerlaubten Zugriff schützen.

cd /etc/ssl
chmod 700 /etc/ssl/private

- Schlüsselpaar der CA erstellen mit der Schlüssellänge 2048Bit. Es wird nach einer Passphrase gefragt, die dann beim Anlegen neuer Zertifikate der CA benötigt wird.

openssl genrsa -aes256 -out private/cakey.pem 2048

- ein selbstsigniertes CA-Zertifikat erzeugen, dient der Verteilung des öffentlichen Schlüssels an die VPN Teilnehmer

openssl req -new -x509 -days 3650 -key private/cakey.pem -out cacert.pem -set_serial 1

- Zertifikate der Clients vorbereiten

touch index.txt
echo 01 > serial

- Serverzertifikat erstellen, bei der Frage nach dem CommonName Server eingeben. Die extra Attribute bleiben leer.

openssl req -new -newkey rsa:1024 -out certs/servercsr.pem -nodes -keyout private/serverkey.pem -days 365

Der private Schlüssel des Servers serverkey.pem wird erzeugt.

- Serverzertifikat erstellen

openssl x509 -req -in certs/servercsr.pem -out certs/servercert.pem -CA cacert.pem -CAkey private/cakey.pem -CAserial /etc/ssl/serial

Das Serverzertifikat befindet sich unter certs/servercert.pem.

- Clientzertifikate anlegen, als CommonName trägt man z.B. Client1 ein

openssl req -new -newkey rsa:1024 -out certs/client1csr.pem -nodes -keyout private/client1key.pem -days 365
openssl x509 -req -in certs/client1csr.pem -out certs/client1cert.pem -CA cacert.pem -CAkey private/cakey.pem -CAserial /etc/ssl/serial

private Schlüssel client1key.pem
öffentliche Schlüssel certs/client1cert.pem

- löschen der CSR Dateien da diese nicht mehr gebraucht werden

rm certs/*csr.pem

- für den Schlüsselaustausch von OpneVPN erforderliche Diffie-Hellman-Parameter anlegen

openssl dhparam -out dh1024.pem 1024

OpenVPN Konfiguration des Servers

unter /etc/openvpn die Serverkonfigurationsdatei und Zertifikate ablegen

server.conf		Konfigurationsdatei des Servers
serverkey.pem		geheime Schlüssel des Servers Zugriff auf 600 setzen
servercert.pem		Zertifikat des Servers
cacert.pem		CA-Zertifikat
dh1024.pem		Diffie-Hellman-Parameter

server.conf

port 1194
port udp
dev tun
tun-mtu 1300
ca cacert.pem
cert servercert.pem
key serverkey.pem
dh dh1024.pem
server 10.12.34.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.2.0 255.255.255.0"
push "dhcp-option DNS 192.168.2.1"
keepalive 30 300
auth SHA1
cipher AES-256-CBC
comp-lzo
verb 3

- starten des Servers

openvpn --config /etc/openvpn/server.conf
openvpn --show-digests Liste der unterstützten Authentifizierungsverfahren
openvpn --show-cipher Liste der unterstützten Verschlüsselungsverfahren

Konfiguration des Clients

client1.conf		Konfigurationsdatei des Clients (Linux)
client1key.pem		geheime Schlüssel des Clients
client1cert.pem		Zertifikat des Clients
cacert.pem		CA-Zertifikat

client1.ovpn

remote <IP-des-Servers> 1194

client
proto udp
dev tun

# ab v2.4 per Default aktiv
# dhcp-release
hcp-renew

ca cacert.pem
cert client1cert.pem
key client1key.pem

auth SHA1
cipher AES-256-CBC
comp-lzo

Denn MTU Wert sollte man auf 1300 Byte setzen, da den Datenpaketen zusätzliche Header hinzugefügt werden und man so verhindert, das die Pakete zu gross werden.

TUN/TAP Device einrichten

Im Kernel unter "Network device support" als Modul einbinden
< M> Universal TUN/TAP device driver support

Devicefile erstellen
mknod /dev/net/tun c 10 200
oder mknod /dev/net/tun0 c 10 200 je nach Distribution

Seitenanfang

sonstiges

Seitenanfang

OpenVPN auf einem Windows Domaincontroller mit TUN Device

Die Route wird beim starten des OpenVPN Servers nicht richtig gesetzt. Es wird das LAN Interface (IP der LAN Schnittstelle 192.168.20.54) als Schnittstelle gesetzt, nicht das TAP Interface der OpenVPN Netzwerkkarte.

# route print
...
     192.168.17.0    255.255.255.0     192.168.17.2    192.168.20.54     11
...

mit dem erneuten setzen der Route kann man das umgehen, oder Neustart des OpenVPN Dienstes. Macht aber kein Sinn, da das bei jedem Neustart des Servers geschehen muss.

route change 192.168.17.0 mask 255.255.255.0  192.168.17.2
Seitenanfang

OpenVPN MTU Test

OpenVPN Server Parameter TAP Device MTU 1300
tun-mtu 1500
fragment 1300
mssfix

OpenVPN Client Parameter TAP Device MTU 1300
tun-mtu 1500
fragment 1300
mssfix

ping -n 1 192.168.17.1 -f -l 1272
Ping wird ausgeführt für 192.168.17.1 mit 1272 Bytes Daten:
Antwort von 192.168.17.1: Bytes=1272 Zeit<1ms TTL=128
OpenVPN Server Parameter TAP Device MTU 1300
tun-mtu 1500
fragment 1300
mssfix

OpenVPN Client Parameter TAP Device MTU 1500
tun-mtu 1500
fragment 1300
mssfix

ping -n 1 192.168.17.1 -f -l 1276
Ping wird ausgeführt für 192.168.17.1 mit 1276 Bytes Daten:
Antwort von 192.168.17.1: Bytes=1276 Zeit<1ms TTL=128
OpenVPN Server Parameter TAP Device MTU 1500
tun-mtu 1500
fragment 1300
mssfix

OpenVPN Client Parameter TAP Device MTU 1500
tun-mtu 1500
fragment 1300
mssfix

ping -n 1 192.168.17.1 -f -l 1472
Ping wird ausgeführt für 192.168.17.1 mit 1472 Bytes Daten:
Antwort von 192.168.17.1: Bytes=1472 Zeit<1ms TTL=128
OpenVPN Server Parameter TAP Device MTU 1500
tun-mtu 1300
fragment 1300
mssfix

OpenVPN Client Parameter TAP Device MTU 1500
tun-mtu 1300
fragment 1300
mssfix

ping -n 1 192.168.17.1 -f -l 1272
Ping wird ausgeführt für 192.168.17.1 mit 1272 Bytes Daten:
Antwort von 192.168.17.1: Bytes=1272 Zeit<1ms TTL=128

 

Seitenanfang

TunnelBlick (macOS)

Tunnelblick DNS Warnung deaktivieren

- DNS Meldung deaktivieren

defaults write net.tunnelblick.tunnelblick skipWarningAboutDnsProblems -bool yes

- DNS Meldung wieder aktivieren

defaults delete net.tunnelblick.tunnelblick skipWarningAboutDnsProblems

- MTU setzen im der .ovpn Konfigurationsdatei

tun-mtu 1300