| FOTO | AUTO | EDV | AUDIO |

Open VPN

Server und Client installieren

yum install openvpn

hierfür ist die Quelle rpmforge nötig.

Konfiguration Server

Die Konfiguration des Servers kann bequem in Webmin durchgeführt werden. Dazu benötigen wir von www.webmin.com das openvpn Modul openvpn-2.5.wbm.gz, welches wir in Webmin installieren.

Neue CA (Zertifizierungsstelle) generieren

Es wird eine neue Root-CA generiert:

openssl dhparam -out /etc/openvpn/keys/meteosat-vpn/dh2048.pem 2048
 
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
..........................................................................................+........
..................................+.................................................................
..++*++*
 
openssl dhparam -out /etc/openvpn/keys/meteosat-vpn/dh2048.pem 2048 OK
/usr/bin/openssl req -batch -days 3650 -nodes -new -x509 -keyout "ca.key" -out "ca.crt" -config /etc/openvpn/openvpn-ssl.cnf
 
Generating a 2048 bit RSA private key
.................................................+++
.............................................................................+++
writing new private key to 'ca.key'
-----
 
/usr/bin/openssl req -batch -days 3650 -nodes -new -x509 -keyout "ca.key" -out "ca.crt" -config /etc/openvpn/openvpn-ssl.cnf OK
/usr/bin/openssl ca -gencrl -keyfile "ca.key" -cert "ca.crt" -out "crl.pem" -config /etc/openvpn/openvpn-ssl.cnf
 
Using configuration from /etc/openvpn/openvpn-ssl.cnf
 
/usr/bin/openssl ca -gencrl -keyfile "ca.key" -cert "ca.crt" -out "crl.pem" -config /etc/openvpn/openvpn-ssl.cnf OK

Neue Schlüssel generieren

Auf das blaue „Keys“ klicken

einen Server-Key

openssl req -days 3650 -batch -new -keyout /etc/openvpn/keys/meteosat-vpn/meteosat_server.key -out /etc/openvpn/keys/meteosat-vpn/meteosat_server.csr -nodes -extensions server -config /etc/openvpn/openvpn-ssl.cnf
 
Generating a 2048 bit RSA private key
..+++
...................................................................................................
................+++
writing new private key to '/etc/openvpn/keys/meteosat-vpn/meteosat_server.key'
-----
 
openssl req -days 3650 -batch -new -keyout /etc/openvpn/keys/meteosat-vpn/meteosat_server.key -out /etc/openvpn/keys/meteosat-vpn/meteosat_server.csr -nodes -extensions server -config /etc/openvpn/openvpn-ssl.cnf OK
openssl ca -days 3650 -batch -out /etc/openvpn/keys/meteosat-vpn/meteosat_server.crt -in /etc/openvpn/keys/meteosat-vpn/meteosat_server.csr -extensions server -config /etc/openvpn/openvpn-ssl.cnf
 
Using configuration from /etc/openvpn/openvpn-ssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'DE'
stateOrProvinceName   :PRINTABLE:'Bayern'
localityName          :PRINTABLE:'Muenchen'
organizationName      :PRINTABLE:'Meteosat'
organizationalUnitName:PRINTABLE:'Office'
commonName            :T61STRING:'meteosat_server'
emailAddress          :IA5STRING:'vpnadmin@meteosat.de'
Certificate is to be certified until Feb  4 09:16:55 2023 GMT (3650 days)
 
Write out database with 1 new entries
Data Base Updated
 
openssl ca -days 3650 -batch -out /etc/openvpn/keys/meteosat-vpn/meteosat_server.crt -in /etc/openvpn/keys/meteosat-vpn/meteosat_server.csr -extensions server -config /etc/openvpn/openvpn-ssl.cnf OK
openssl pkcs12 -export -passout pass:"******" -inkey meteosat_server.key -in meteosat_server.crt -certfile ca.crt -out meteosat_server.p12
 
openssl pkcs12 -export -passout pass:"******" -inkey meteosat_server.key -in meteosat_server.crt -certfile ca.crt -out meteosat_server.p12 OK 

für jeden VPN Client einen eigenen Key erstellen

openssl req -days 3650 -batch -new -keyout /etc/openvpn/keys/meteosat-vpn/peter.key -out /etc/openvpn/keys/meteosat-vpn/peter.csr -passout pass:"******" -config /etc/openvpn/openvpn-ssl.cnf
 
Generating a 2048 bit RSA private key
.............................................+++
....+++
writing new private key to '/etc/openvpn/keys/meteosat-vpn/peter.key'
-----
 
openssl req -days 3650 -batch -new -keyout /etc/openvpn/keys/meteosat-vpn/peter.key -out /etc/openvpn/keys/meteosat-vpn/peter.csr -passout pass:"******" -config /etc/openvpn/openvpn-ssl.cnf OK
openssl ca -days 3650 -batch -out /etc/openvpn/keys/meteosat-vpn/peter.crt -in /etc/openvpn/keys/meteosat-vpn/peter.csr -config /etc/openvpn/openvpn-ssl.cnf
 
Using configuration from /etc/openvpn/openvpn-ssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'DE'
stateOrProvinceName   :PRINTABLE:'Bayern'
localityName          :PRINTABLE:'Muenchen'
organizationName      :PRINTABLE:'Meteosat'
organizationalUnitName:PRINTABLE:'Office'
commonName            :PRINTABLE:'peter'
emailAddress          :IA5STRING:'vpnadmin@meteosat.de'
Certificate is to be certified until Feb  4 09:19:43 2023 GMT (3650 days)
 
Write out database with 1 new entries
Data Base Updated
 
openssl ca -days 3650 -batch -out /etc/openvpn/keys/meteosat-vpn/peter.crt -in /etc/openvpn/keys/meteosat-vpn/peter.csr -config /etc/openvpn/openvpn-ssl.cnf OK
openssl pkcs12 -export -passout pass:"******" -inkey peter.key -passin pass:"******" -in peter.crt -certfile ca.crt -out peter.p12
 
openssl pkcs12 -export -passout pass:"******" -inkey peter.key -passin pass:"******" -in peter.crt -certfile ca.crt -out peter.p12 OK 

Einen neuen VPN Server erstellen

In die Mitte auf „VPN-List“ klicken

Hier den richtigen CA Server auswählen und auf „New VPN-Server“ klicken

Einstellungen

Setting Wert Kommentar
Name Meteosat-VPN Selbst wählen
Port 1194 Dies wird der VPN Port über den alle VPN-Clients miteinander kommunizieren
Protocol TCP-Server UDP ermöglicht eine schnellere Verbindung, TCP ist wichtig für die Verwendung hinter Proxys
Device TUN TUN lässt sich einfacher routen
Local host name or IP address ALL Die Serverconfig benötigt keinen Servernamen
Net IP assigns 10.0.0.0 Netz-IP des VPN Netzwerk
Netmask 255.255.255.0 Bestimmt die Netzwerkklasse (Subnet)

Alle weiteren Einstellungen müssen nicht verändert werden. Nach dem Speichern der Daten können die Einstellungen des VPN-Server über das rote „changeme“ links oben geändert werden (außer Name und Port). Besser ist es die Einstellungen an der Konfigurationsdatei selbst vorzunehmen:

vim /etc/openvpn/Meteosat-VPN.conf 

port 1194                                                 # VPN Port
proto udp                                                 # Übertragungsart innerhalb des VPN
dev tun0                                                  # Art des virtuellen VPN-Devices
ca keys/meteosat-vpn/ca.crt                               # Pfad zum CA Zertifikat
cert keys/meteosat-vpn/meteosat_server.crt                # Pfad zum CA-Schlüssel
key keys/meteosat-vpn/meteosat_server.key                 # Pfad zum Serverschlüssel
dh keys/meteosat-vpn/dh2048.pem                           # Pfad zum Diffie-Hellman-Schlüssel
server 10.0.0.0 255.255.255.0                             # VPN Netzwerkeinstellungen
crl-verify keys/meteosat-vpn/crl.pem                      # Pfad zum X.509 Zertifikat
cipher DES-CFB                                            # Verschlüsselungsart
user nobody                                               # Benutzerberetigung des Dienst openvpn
group AundB                                               # Gruppenberechtigung des Dienst openvpn
status servers/Meteosat-VPN/logs/openvpn-status.log       # Pfad zur Statusdatei
log-append servers/Meteosat-VPN/logs/openvpn.log          # Pfad zum Fehlerlog
verb 2                                                    # Gesprächigkeit der Logdateien
mute 20
max-clients 100                                           # Maximal erlaubte VPN Clients
keepalive 10 120
client-config-dir /etc/openvpn/servers/Meteosat-VPN/ccd   # Pfad zu den Clientdateien
comp-lzo                                                  # Art der Komprimierung
persist-key
persist-tun
ccd-exclusive

VPN Server starten

Es gibt zwar ein Startscript:

/etc/init.d/openvpn start

doch ist es aktuell nicht brauchbar. Der Dienst kann aber auch als root so gestartet werden:

cd /etc/openvpn
openvpn Meteosat-VPN.conf      # Servername jeweils anpassen

mit der Tastenkombination [Strg] [c] wird der Dienst beendet.

Ein Startscript selbst erstellen

vim /root/startvpn.sh

und mit diesem Inhalt füllen:

#! /bin/bash
VPNSERVER=`ls /etc/openvpn |grep .conf |cut -d . -f 1`
cd /etc/openvpn
openvpn $VPNSERVER.conf &
echo Der Openvpnserver $VPNSERVER hat die PID:
pgrep  openvpn
echo Ab hier beginnt das Log von $VPNSERVER
tail -f /etc/openvpn/servers/$VPNSERVER/logs/openvpn.log
 
#Ende

Ausführbar machen

chmod +x /root/startvpn.sh

und so verwenden

sh /root/startvpn.sh

mit der Tastenkombination [Strg] [c] wird der Dienst beendet.

Routen in weitere Netze

Damit man auch ins Internet gelangen kann, muss man der Server-Firewall (in diesem Fall iptables) noch eine Regel mit geben und das IP-Forwarding aktivieren. Damit folgende Änderungen auch nach dem Reboot bestehen, sollte man sie am besten in die /etc/rc.local eintragen.

iptables -t nat -F POSTROUTING
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE
Nun sollte man problemlos ins Internet gelangen können

Konfiguration Client


Über das blaue „Client List“, und dann „New VPN Client“ einen neuen Client anlegen. Es können nur Clients angelegt werden, für die es einen gültigen Schlüssel gibt.

Name Wert Kommentar
Name peter Der Name ist durch den Clientschlüssel vorgegeben
remote (Remote IP) 192.168.4.94 VPN im LAN: Lokale Adesse des VPN Servres
VPN im Internet: die dynDNS Adresse angeben

Alle weiteren Einstellungen können wieder bleiben.

Dann die Informationen verbreiten. Damit kann man ein komprimiertes Datenpaket speichern, welches an den Benutzer gemailt werden kann. Dieser kann es in seinem Client laut Anleitung verwenden.

Ein openvpn Client erstellen

  • yum install openvpn
  • Vom VPN Admin die Client Zipdatei username.zip anfordern
  • diese nach /etc/openvpn/ entpacken
  • als root starten mit /etc/openvpn/username.conf

Der Client verbindet sich mit dem VPN-Server, erhällt eine virtuelle Netzwerkkarte mit einer IP-Adresse aus den VPN-Netzwerk. Alle IP-Pakete werden ab jetzt nur noch innerhalb des VPN Netzwerkes verschlüsselt versendet.

Fehlerbehebung

Eine Fehlerbeschreibung des instalierten VPN Servers kann unter /etc/openvpn/servers/Meteosat-VPN/logs/openvpn.log für den VPN Server „Meteosat-VPN“ betrachtet werden.

the current --script-security setting may allow this configuration to call user-defined scripts
Wed Feb  6 14:13:54 2013 WARNING: file 'keys/changeme/gerri.key' is group or others accessible
Wed Feb  6 14:13:54 2013 TLS-Auth MTU parms [ L:1539 D:138 EF:38 EB:0 ET:0 EL:0 ]
Wed Feb  6 14:13:54 2013 TCP/UDP: Socket bind failed on local address [undef]:500: Permission denied
Ports unter 1000 düefen nur vom System und root verwendet werden. Der in der Conf-Datei angegebene User darf offensichtlich diesen Port nicht belegen.

Open VPN-Client

Für Linux ist kein besonderer Open-VPN-Client nötig das Paket Openvpn ist sowohl Server als aich Clinet.

Windows

Den Windows OpenVPN Client unter http://openvpn.se/download.html laden und installieren. Jetzt das Client Datenpaket nach …Programme\openvpn\config\ auspacken und den Client starten.
Eine ausführliche Anleitung gibt es hier: https://community.openvpn.net/openvpn/wiki/OpenVPN-GUI

Android
iPhone

Dies ist das HowTo des Openvpn-Client für iPhones:

MAC OSx

Für dem MAC heisst der Openvpn-Client Tunnelblick

Weitere Infos