| FOTO | AUTO | EDV | AUDIO |

https://wiki.ubuntuusers.de/OpenVPN/
https://sarwiki.informatik.hu-berlin.de/OpenVPN_(deutsch)

Installation

apt install openvpn easy-rsa 
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
gunzip /etc/openvpn/server.conf.gz
cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa2 

Konfiguration

Schlüssel und Zertifikate
Die Datei /etc/openvpn/easy-rsa2/vars anpassen

export KEY_COUNTRY="DE"
export KEY_PROVINCE="RLP"
export KEY_CITY="Bellheim"
export KEY_ORG="Woody"
export KEY_EMAIL="admin@creutz.net"
export KEY_OU="Webservice"
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=75889345
export KEY_ALTNAMES="woodykey"

Aufgrund eines Fehlers wird manchmal das Unterverzeichnis für die Keys nicht erstellt. Man sollte dies darum von Hand nachholen

mkdir /etc/openvpn/easy-rsa2/keys 

Als nächstes muss unbedingt die neueste openssl-x.x.x.cnf umbenannt werden in openssl.cnf oder ein symbolischer Link erstellt werden.

cp openssl-1.0.0.cnf openssl.cnf

Danach muss die oben angepasste Datei vars in die Umgebungsvariablen aufgenommen werden

source /etc/openvpn/easy-rsa2/vars

Es erscheint eine Warnmeldung, worauf mit den folgenden Skript-Aufrufen das Master-Zertifikat und der Master-Schlüssel erstellt werden (mit sudo):

sudo -E ./clean-all
sudo -E ./build-ca 
sudo -E ./build-key-server server   (PW woody)

Anschließend müssen nun die Schlüssel für alle Benutzer angelegt werden:

sudo -E ./build-key honor   # Erstellt Client-Daten für den Benutzer "honor"
sudo -E ./build-key jd      # Erstellt Client-Daten für den Benutzer "jd"

Jetzt müssen noch die Diffie-Hellman-Parameter generiert werden. Diese sind nötig, um kryptografische Schlüssel sicher über unsichere Kanäle auszuhandeln. Das geschieht mit

sudo -E ./build-dh 

Wirs später ein neuer Client hinzu gefügt, muss diese Eingabe wiederholt werden. Es werden alle neuen Client-Daten generiert.

Client Daten zusammen stellen

cd /etc/openvpn/easy-rsa2/keys/
tar -cf client1.tar client1.key client1.crt ca.crt  
mkdir /etc/openvpn/clients
mv client1.tar /etc/openvpn/clients/

Für jeden weiteren Client (Benutzer) wiederholen. Die dadurch erzeugte client1.tar Datei dem Benutzer übergeben.

mail -a /etc/openvpn/clients/client1.tar client1@mailadresse.de

Server konfigurieren

vim /etc/openvpn/server.conf

# Which local IP address should OpenVPN listen on? (optional)
;local a.b.c.d
 
# Which TCP/UDP port should OpenVPN listen on?
port 5001
 
# TCP or UDP server?
proto tcp-server
;proto udp
 
# "dev tun" will create a routed IP tunnel,
# "dev tap" will create an ethernet tunnel.
;dev tap
dev tun
tun-mtu 1500
 
# SSL/TLS root certificate (ca), certificate
ca ./easy-rsa2/keys/ca.crt
cert ./easy-rsa2/keys/server.crt
key ./easy-rsa2/keys/server.key
dh ./easy-rsa2/keys/dh2048.pem
 
# Network topology
;topology subnet
 
# Configure server mode and supply a VPN subnet
server 10.10.0.0 255.255.255.0
 
# Maintain a record of client <-> virtual IP address
ifconfig-pool-persist ipp.txt
 
# Configure server mode for ethernet bridging.
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
 
# Push routes to the client to allow it
push "route 192.168.178.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"
 
# allow different clients to be able to "see" each other.
client-to-client
 
# Uncomment this directive if multiple clients
# might connect with the same certificate/key
duplicate-cn
 
# The keepalive directive causes ping-like
# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
# Ping every 10 seconds, assume that remote
# peer is down if no ping received during
# a 120 second time period.
keepalive 10 120
 
 
 
# Select a cryptographic cipher.
cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
 
# Enable compression on the VPN link.
comp-lzo
 
# The maximum number of concurrently connected
max-clients 10
client-config-dir /etc/openvpn/clients
# OpenVPN daemon's privileges
user openvpn
group openvpn
 
# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun
 
# Output a short status file
status /var/log/openvpn-status.log
log-append  /var/log/openvpn.log
mute 10
verb 0

Routing

Routing am Server aktivieren

sysctl -w net/ipv4/ip_forward=1 
vim   /etc/sysctl.conf

  net.ipv4.ip_forward=1
 
Default Route auf dem Default Gateway im Netz hinzu fügen route add -net 10.10.0.0 netmask 255.255.255.0 gw 192.168.178.3

Autostart

update-rc.d openvpn defaults

Client Konfiguration

  • Die gepackte Client-Datei nach /etc/openvpn/ auspacken, in den neuen Ordner springen und die Client-Config Datei anlegen.

cd /etc/openvpn
tar -xvf client1.tar
vim /etc/openvpn/client1/client1.ovpn

Inhalt der Datei client1.ovpn:

client
proto tcp
dev tun
ca ca.crt
cert jd.crt
key jd.key
remote creutz.spdns.de 5001
cipher BF-CBC
verb 2
mute 20
keepalive 10 120
comp-lzo
persist-key
persist-tun
float
resolv-retry infinite
nobind
auth-nocache
link-mtu 1544
mute-replay-warnings
redirect-gateway def1 bypass-dhcp
## Proxy
http-proxy 192.43.65.235 80 stdin basic

Jetzt kann die VPN-Verbindung genutzt werden

cd /etc/openvpn/client1
sudo openvpn client1.ovpn