Openvpn server an Deutsche Glasfaser IPv6 only Router und feste-ip.net

OpenVPN auf BananaPi M2 Zero W mit Raspbian

Deutsche Glasfaser Genexis Router in Verbindung mit feste-ip.net zur Umsetzung ipv4 nach ipv6

Ich versuche hier meine Installation basierend auf den nachfolgenden Quellen zusammenzufassen.

Quellen: https://wiki.ubuntuusers.de/OpenVPN/ und https://blog.sengotta.net/openvpn-server-am-unitymedia-ds-lite-anschluss-betreiben/

Nachfolgend sind persönliche Angaben in < und > gesetzt. IP Addressen sind in der Form durch x ersetzt.

Feste-ip.net Universal Portmapper einrichten

Über https://test-ipv6.com/ die öffentliche IP6 Adresse des Servers (VPN Gateway) ermitteln.

Feste-IP.net Portmapper

Bei feste-ip.net habe ich eine Port Weiterleitung auf die öffentliche IPv6 Addresse des BananaPi (dem OpenVPN Server) und den Port 443 unter “Universelle Portmapper” angelegt.

Ich habe hier den Port 443 gewählt da dieser auch in vielen Fremdnetzen (zb Mobilfunk Netze) funktioniert. Der Standard VPN Port 1194 ist möglicherweise in dem einen oder anderen Netz gesperrt.

Ich habe einen Alias gewählt den ich mir leichter merken kann als den DNS-Namen. Ausserdem laufen auf demselben BananaPi M2 Zero W noch drei weitere Dienste. Diese sind über den gleichen Alias unter drei anderen Ports erreichbar.

In der Client.conf muss später der Alias Name und der gemapte Port angegeben werden, da die Verbindung nicht über IPv6 und Port 443 hergestellt wird. Siehe client.con Zeile:

remote <aliasname>.feste-ip.net <auf 443 umgeleiterter port>

Openvpn Server einrichten

Vorbereitungen

Erst mal auf dem Server (BananPi) ein Update der Pakete durchführen:

sudo apt-get update
sudo apt-get upgrade

Dann openvpn und easy-rsa installieren

sudo apt-get install openvpn easy-rsa 

Auf dem Server (BananaPi) eine CA, Server Key und Signing Request mit Hilfe von easy-rsa generieren. Nachher benötigt man für jeden Client die Dateien

ca.crt
<client>.key
<client>.crt
client.conf (oft als client.ovpn verwendet)
ta.key

In das Verzeichnis /etc/openvpn/easy-rsa2 wechseln

cd /etc/openvpn/easy-rsa2 

Die Vorgabe Datei vars als Super User mit einem Editor editieren

export EASY_RSA="`pwd`"
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
export KEY_DIR="$EASY_RSA/keys"
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"
export KEY_SIZE=2048
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_COUNTRY="DE"
export KEY_PROVINCE="NRW"
export KEY_CITY="Juechen"
export KEY_ORG="Internet Ltd."
export KEY_EMAIL="<email@name.de>"  #hier eine email Adresse eintragen
export KEY_OU="<ou text>"           #zB vpn.meinserver.de
export KEY_NAME="EasyRSA"           # beiliebiger Text
export KEY_CN=

Zur Sicherheit, falls kein Verzeichnis easy-RSA2/keys existiert:

sudo mkdir keys

Die Beispiel openssl-x.x.x.conf im /etc/openvpn Verzeichnis als openssl.conf kopieren:

sudo cp openssl-x.x.x.conf openssl.conf

CA und keys erstellen

Die vars Datei in die Umgebungsvariablen einfügen:

source ./vars

Nun geht es los, das Master Zertifikat (ca.crt und ca.key) erstellen:

sudo -E clean-all
sudo -E build-ca

Es wird eine ca.key und ca.crt Datei erstellt. Nun das Server Zertifikat erstellen (dabei wird es von der erstellten CA, der ‘Authorisierungs Behörde’) signiert:

sudo -E ./build-key-server server

Als Common Name den Namen des Servers so eingeben, wie er später zur Verbindung benutzt wird! Also zB <meine-öffentliche-adressse>.feste-ip-net. Hier geht es um die öffentliche IPv4 Addresse nicht die IPv6 Addresse des Servers. Es wird eine server.csr (key signing request), server.key und server.crt erstellt.

Kein Challenge Passwort angeben! Die Authentifizierung soll nur über den Client Key erfolgen.

Für jeden Nutzer nun einen Client Key erstellen lassen:

sudo -E ./build-key <client>

Falls der Client Key nur in Verbindung mit einem Paaswort verwendet werden soll, stattdessen folgendes eingeben:

sudo -E ./build-key-pass <client>

Als Common Name bei den Client Keys den Benutzernamen angeben. Es wird eine .key und eine .crt erstellt.

Nun den Diffie Hellmann Key erzeugen:

sudo -E ./build-dh 

Dieser Vorgang dauert sehr lange. Auf dem BananaPi ca. 1-2 Stunden! Es wird eine Datei dh2048.pem erstellt.

Anschließend liegen alle benötigten Dateien im Verzeichnis /etc/openvpn/easy-rsa2/keys/

Für den CA Server (hier ebenfalls auf dem gleichen BananaPi):

ca.key
ca.crt

Für den OpenVPN Server:

ca.crt
server.crt
server.key
ta.key
dh2048.pem

Für einen Client:

ca.crt
<client>.crt
<client>.key
ta.key

Die Dateien mit der Endung .key sind die geheimen Schlüssel. Die .crt-Dateien sind die nicht geheimen Zertifikate.

Openvpn Client und Server Dateien

Die Key und Schlüssel Dateien für einen Client packen:

zip <client>.zip <client>.key <client>.crt ca.crt

Nun die /etc/openvpn/server.conf anpassen:

ca ./easy-rsa2/keys/ca.crt
cert ./easy-rsa2/keys/server.crt
key ./easy-rsa2/keys/server.key
dh ./easy-rsa2/keys/dh2048.pem

Zur Erhöhung der Sicherheit noch folgende Zeilen anpassen:

# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup

In der server.conf auch das Protocol ändern, der Genexis Router ist nur über IPv6 erreichbar:

proto tcp6-server

Den öffentlichen Port anpassen:

port 443

Zusätzliche Sicherheit:

cipher AES-256-CBC
auth SHA512
remote-cert-tls client

in die server.conf eintragen.

Weitere Sicherheit:

sudo openvpn --genkey --secret /etc/openvpn/easy-rsa2/keys/ta.key

und den ta.key in die server.conf eintragen:

tls-auth ./easy-rsa2/keys/ta.key 0

Spezielles Routing

Damit man über die VPN Verbindung auf die Rechner im Netz des Openvpn Servers und auf das Internet zugreifen kann, muss das Routing angepasst werden.

Auf dem Genexis Router kann man keine statischen Routen anlegen und würde über die VPN Verbindung nicht auf das Internet zugreifen können. Deshalb gibt man folgende Befehle auf dem BananaPi VPN Server ein:

sudo iptables -A FORWARD -o eth0 -i tun0 -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT #bei gewünschtem Internet-Zugriff über andere Schnittstelle "-o eth0" entfernen!
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Damit dies automatisch bei jedem Start des Servers ausgeführt wird, auf dem OpenVPN server in der /etc/rc.local folgendes eintragen:

iptables -A FORWARD -o eth0 -i tun0 -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT #bei gewünschtem Internet-Zugriff über andere Schnittstelle "-o eth0" entfernen!
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Openvpn Server starten

Den Openvpn Server startet man mit:

sudo service openvpn restart

Zum Testen sollte man den Server von der Kommandozeile und nicht als Daemon starten:

sudo service openvpn stop
cd /etc/openvpn
sudo openvpn server.conf

Ausgabe bei einer Verbindung (wenn über Kommandozeile gestartet):

Mon Aug 20 20:02:13 2018 OpenVPN 2.3.4 arm-unknown-linux-gnueabihf [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Jun 26 2017
Mon Aug 20 20:02:13 2018 library versions: OpenSSL 1.0.1t  3 May 2016, LZO 2.08
Mon Aug 20 20:02:13 2018 NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x.  Be aware that this might create routing conflicts if you connect to the VPN server from public locations such as internet cafes that use the same subnet.
Mon Aug 20 20:02:13 2018 Diffie-Hellman initialized with 2048 bit key
Mon Aug 20 20:02:13 2018 Control Channel Authentication: using './easy-rsa2/keys/ta.key' as a OpenVPN static key file
Mon Aug 20 20:02:13 2018 Outgoing Control Channel Authentication: Using 512 bit message hash 'SHA512' for HMAC authentication
Mon Aug 20 20:02:13 2018 Incoming Control Channel Authentication: Using 512 bit message hash 'SHA512' for HMAC authentication
Mon Aug 20 20:02:13 2018 Socket Buffers: R=[87380->131072] S=[16384->131072]
Mon Aug 20 20:02:13 2018 ROUTE_GATEWAY 192.168.0.250/255.255.255.0 IFACE=wlan0 HWADDR=aa:bb:cc:dd:ee:ff
Mon Aug 20 20:02:13 2018 TUN/TAP device tun0 opened
Mon Aug 20 20:02:13 2018 TUN/TAP TX queue length set to 100
Mon Aug 20 20:02:13 2018 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Mon Aug 20 20:02:13 2018 /sbin/ip link set dev tun0 up mtu 1500
Mon Aug 20 20:02:13 2018 /sbin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2
Mon Aug 20 20:02:13 2018 /sbin/ip route add 10.8.0.0/24 via 10.8.0.2
Mon Aug 20 20:02:13 2018 GID set to nogroup
Mon Aug 20 20:02:13 2018 UID set to nobody
Mon Aug 20 20:02:13 2018 Listening for incoming TCP connection on [undef]
Mon Aug 20 20:02:13 2018 TCPv6_SERVER link local (bound): [undef]
Mon Aug 20 20:02:13 2018 TCPv6_SERVER link remote: [undef]
Mon Aug 20 20:02:13 2018 MULTI: multi_init called, r=256 v=256
Mon Aug 20 20:02:13 2018 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Mon Aug 20 20:02:13 2018 ifconfig_pool_read(), in='<name>,10.8.0.4', TODO: IPv6
Mon Aug 20 20:02:13 2018 succeeded -> ifconfig_pool_set()
Mon Aug 20 20:02:13 2018 IFCONFIG POOL LIST
Mon Aug 20 20:02:13 2018 <name>,10.8.0.4
Mon Aug 20 20:02:13 2018 MULTI: TCP INIT maxclients=1024 maxevents=1028
Mon Aug 20 20:02:13 2018 Initialization Sequence Completed
Mon Aug 20 20:02:23 2018 TCP connection established with [AF_INET6]xxxx:xxx:x:xx:x::xxx:35824
Mon Aug 20 20:02:24 2018 xxxx:xxx:x:xx:x::xxx TLS: Initial packet from [AF_INET6]xxxx:xxx:x:xx:x::xxx:35824, sid=8659a885 6c57ff23
Mon Aug 20 20:02:26 2018 xxxx:xxx:x:xx:x::xxx VERIFY OK: depth=1, C=DE, ST=NRW, L=Juechen, O=Internet Ltd., OU=vpn.<name>.de, CN=Internet Ltd. CA, name=EasyRSA, emailAddress=info@<name>.de
Mon Aug 20 20:02:26 2018 xxxx:xxx:x:xx:x::xxx VERIFY OK: depth=0, C=DE, ST=NRW, L=Juechen, O=Internet Ltd., OU=vpn.<name>.de, CN=<name>, name=EasyRSA, emailAddress=info@<name>.de
Mon Aug 20 20:02:26 2018 xxxx:xxx:x:xx:x::xxx Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Mon Aug 20 20:02:26 2018 xxxx:xxx:x:xx:x::xxx Data Channel Encrypt: Using 512 bit message hash 'SHA512' for HMAC authentication
Mon Aug 20 20:02:26 2018 xxxx:xxx:x:xx:x::xxx Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Mon Aug 20 20:02:26 2018 xxxx:xxx:x:xx:x::xxx Data Channel Decrypt: Using 512 bit message hash 'SHA512' for HMAC authentication
Mon Aug 20 20:02:27 2018 xxxx:xxx:x:xx:x::xxx Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Mon Aug 20 20:02:27 2018 xxxx:xxx:x:xx:x::xxx [<name>] Peer Connection Initiated with [AF_INET6]xxxx:xxx:x:xx:x::xxx:35824
Mon Aug 20 20:02:27 2018 <name>/xxxx:xxx:x:xx:x::xxx MULTI_sva: pool returned IPv4=10.8.0.6, IPv6=(Not enabled)
Mon Aug 20 20:02:27 2018 <name>/xxxx:xxx:x:xx:x::xxx MULTI: Learn: 10.8.0.6 -> <name>/xxxx:xxx:x:xx:x::xxx
Mon Aug 20 20:02:27 2018 <name>/xxxx:xxx:x:xx:x::xxx MULTI: primary virtual IP for <name>/xxxx:xxx:x:xx:x::xxx: 10.8.0.6
Mon Aug 20 20:02:29 2018 <name>/xxxx:xxx:x:xx:x::xxx PUSH: Received control message: 'PUSH_REQUEST'
Mon Aug 20 20:02:29 2018 <name>/xxxx:xxx:x:xx:x::xxx send_push_reply(): safe_cap=940
Mon Aug 20 20:02:29 2018 <name>/xxxx:xxx:x:xx:x::xxx SENT CONTROL [<name>]: 'PUSH_REPLY,route 192.168.0.0 255.255.255.0,redirect-gateway def1 bypass-dhcp,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5' (status=1)
Mon Aug 20 20:02:40 2018 TCP connection established with [AF_INET6]xxxx:xxx:x:xx:x::xxx:35236
Mon Aug 20 20:02:40 2018 xxxx:xxx:x:xx:x::xxx TLS: Initial packet from [AF_INET6]xxxx:xxx:x:xx:x::xxx:35236, sid=c0629b8f 7ff58159
Mon Aug 20 20:02:40 2018 xxxx:xxx:x:xx:x::xxx TLS Error: cannot locate HMAC in incoming packet from [AF_INET6]xxxx:xxx:x:xx:x::xxx:35236
Mon Aug 20 20:02:40 2018 xxxx:xxx:x:xx:x::xxx Fatal TLS error (check_tls_errors_co), restarting
Mon Aug 20 20:02:40 2018 xxxx:xxx:x:xx:x::xxx SIGUSR1[soft,tls-error] received, client-instance restarting
Mon Aug 20 20:02:42 2018 TCP connection established with [AF_INET6]xxxx:xxx:x:xx:x::xxx:36004
Mon Aug 20 20:02:43 2018 xxxx:xxx:x:xx:x::xxx TLS: Initial packet from [AF_INET6]xxxx:xxx:x:xx:x::xxx:36004, sid=02dfe658 dca23d61
Mon Aug 20 20:02:43 2018 xxxx:xxx:x:xx:x::xxx TLS Error: cannot locate HMAC in incoming packet from [AF_INET6]xxxx:xxx:x:xx:x::xxx:36004
Mon Aug 20 20:02:43 2018 xxxx:xxx:x:xx:x::xxx Fatal TLS error (check_tls_errors_co), restarting
Mon Aug 20 20:02:43 2018 xxxx:xxx:x:xx:x::xxx SIGUSR1[soft,tls-error] received, client-instance restarting
Mon Aug 20 20:02:48 2018 TCP connection established with [AF_INET6]xxxx:xxx:x:xx:x::xxx:36078
Mon Aug 20 20:02:49 2018 xxxx:xxx:x:xx:x::xxx TLS: Initial packet from [AF_INET6]xxxx:xxx:x:xx:x::xxx:36078, sid=824f6cec 0908872e
Mon Aug 20 20:02:49 2018 xxxx:xxx:x:xx:x::xxx TLS Error: cannot locate HMAC in incoming packet from [AF_INET6]xxxx:xxx:x:xx:x::xxx:36078
Mon Aug 20 20:02:49 2018 xxxx:xxx:x:xx:x::xxx Fatal TLS error (check_tls_errors_co), restarting
Mon Aug 20 20:02:49 2018 xxxx:xxx:x:xx:x::xxx SIGUSR1[soft,tls-error] received, client-instance restarting

Die Meldung “TLS Error: cannot locate HMAC in incoming packet from [AF_INET6]” entsteht wohl dadurch, dass wir uns über eine IPv4 Adresse verbinden. Ist nicht weiter tragisch, die IPv4 Verbindung funktioniert ohne Probleme. Anschliessend kann der Openvpn Server ‘normal’ gestartet werden:

sudo service openvpn start 

Linux Client aufsetzen

Openvpn installieren

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openvpn

Für den Client benötigt man eine .conf, wird oft auch als .ovpn verwendet:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/ 

In der client.conf die Remote Addresse anpassen und die öffentliche IP (IPv4) oder den Namen eintragen (siehe oben bei Common Name für den Server Key):

remote <aliasname>.feste-ip-net

Zusätzliche Sicherheit bieten die Zeilen (Achtung: auf dem Server müssen die entsprechenden Gegenstücke vorhanden sein):

remote-cert-tls server
cipher AES-256-CBC
auth SHA512
remote-cert-tls server
tls-auth ta.key 1

in der client.conf.

Die client.conf, ca.crt, .key und .crt zum Beispiel unterhalb des Home Verzeichnisses im Verzeichnis .openvpn speichern. Dann den OpenVP client starten:

cd ~/.openvpn
sudo openvpn client.conf

Ausgabe

Tue Aug 21 08:26:16 2018 OpenVPN 2.3.4 i586-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Jun 26 2017
Tue Aug 21 08:26:16 2018 library versions: OpenSSL 1.0.1t  3 May 2016, LZO 2.08
Tue Aug 21 08:26:16 2018 Control Channel Authentication: using '/home/<name>/.openvpn/ta.key' as a OpenVPN static key file
Tue Aug 21 08:26:16 2018 Outgoing Control Channel Authentication: Using 512 bit message hash 'SHA512' for HMAC authentication
Tue Aug 21 08:26:16 2018 Incoming Control Channel Authentication: Using 512 bit message hash 'SHA512' for HMAC authentication
Tue Aug 21 08:26:16 2018 Socket Buffers: R=[87380->131072] S=[16384->131072]
Tue Aug 21 08:26:16 2018 Attempting to establish TCP connection with [AF_INET]x.x.x.x:44583 [nonblock]
Tue Aug 21 08:26:17 2018 TCP connection established with [AF_INET]x.x.x.x:44583
Tue Aug 21 08:26:17 2018 TCPv4_CLIENT link local: [undef]
Tue Aug 21 08:26:17 2018 TCPv4_CLIENT link remote: [AF_INET]x.x.x.x:44583
Tue Aug 21 08:26:17 2018 TLS: Initial packet from [AF_INET]x.x.x.x:44583, sid=5f99b0f2 162dcb60
Tue Aug 21 08:26:23 2018 VERIFY OK: depth=1, C=DE, ST=NRW, L=Juechen, O=Internet Ltd., OU=vpn.<name>.de, CN=Internet Ltd. CA, name=EasyRSA, emailAddress=info@<name>.de
Tue Aug 21 08:26:23 2018 VERIFY OK: nsCertType=SERVER
Tue Aug 21 08:26:23 2018 Validating certificate key usage
Tue Aug 21 08:26:23 2018 ++ Certificate has key usage  00a0, expects 00a0
Tue Aug 21 08:26:23 2018 VERIFY KU OK
Tue Aug 21 08:26:23 2018 Validating certificate extended key usage
Tue Aug 21 08:26:23 2018 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Tue Aug 21 08:26:23 2018 VERIFY EKU OK
Tue Aug 21 08:26:23 2018 VERIFY OK: depth=0, C=DE, ST=NRW, L=Juechen, O=Internet Ltd., OU=vpn.<name>.de, CN=<aliasname>.feste-ip.net, name=EasyRSA, emailAddress=info@<name>.de
Tue Aug 21 08:26:32 2018 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Tue Aug 21 08:26:32 2018 Data Channel Encrypt: Using 512 bit message hash 'SHA512' for HMAC authentication
Tue Aug 21 08:26:32 2018 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Tue Aug 21 08:26:32 2018 Data Channel Decrypt: Using 512 bit message hash 'SHA512' for HMAC authentication
Tue Aug 21 08:26:32 2018 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Tue Aug 21 08:26:32 2018 [<aliasname>.feste-ip.net] Peer Connection Initiated with [AF_INET]x.x.x.x:44583
Tue Aug 21 08:26:34 2018 SENT CONTROL [<aliasname>.feste-ip.net]: 'PUSH_REQUEST' (status=1)
Tue Aug 21 08:26:35 2018 PUSH: Received control message: 'PUSH_REPLY,route 192.168.0.0 255.255.255.0,redirect-gateway def1 bypass-dhcp,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5'
Tue Aug 21 08:26:35 2018 OPTIONS IMPORT: timers and/or timeouts modified
Tue Aug 21 08:26:35 2018 OPTIONS IMPORT: --ifconfig/up options modified
Tue Aug 21 08:26:35 2018 OPTIONS IMPORT: route options modified
Tue Aug 21 08:26:35 2018 ROUTE_GATEWAY 192.168.137.1/255.255.255.0 IFACE=wlan2 HWADDR=00:1b:77:b3:fc:21
Tue Aug 21 08:26:35 2018 TUN/TAP device tun0 opened
Tue Aug 21 08:26:35 2018 TUN/TAP TX queue length set to 100
Tue Aug 21 08:26:35 2018 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Tue Aug 21 08:26:35 2018 /sbin/ip link set dev tun0 up mtu 1500
Tue Aug 21 08:26:35 2018 /sbin/ip addr add dev tun0 local 10.8.0.6 peer 10.8.0.5
Tue Aug 21 08:26:35 2018 /sbin/ip route add x.x.x.x/32 via 192.168.137.1
Tue Aug 21 08:26:35 2018 /sbin/ip route add 0.0.0.0/1 via 10.8.0.5
Tue Aug 21 08:26:35 2018 /sbin/ip route add 128.0.0.0/1 via 10.8.0.5
Tue Aug 21 08:26:35 2018 /sbin/ip route add 192.168.0.0/24 via 10.8.0.5
Tue Aug 21 08:26:35 2018 /sbin/ip route add 10.8.0.1/32 via 10.8.0.5
Tue Aug 21 08:26:35 2018 Initialization Sequence Completed

Man kann die Client Verbindung zB über die Verbindung zur Internetfreigabe eines Mobiletelefons testen. Zur Kontrolle kann man auf dem Linux Client in einer anderen Console mit sudo ifconfig das tun0 interface prüfen.

...
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:125 errors:0 dropped:0 overruns:0 frame:0
          TX packets:128 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:9500 (9.2 KiB)  TX bytes:9728 (9.5 KiB)
...

Zusammenfassung

Vollständige /etc/openvpn/server.conf:

port 443
proto tcp6-server 
dev tun
ca ./easy-rsa2/keys/ca.crt
cert ./easy-rsa2/keys/server.crt
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.0.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
keepalive 10 120
tls-auth ./easy-rsa2/keys/ta.key 0
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

Vollständige ~/.openvpn/client.conf

client
dev tun
proto tcp
remote <aliasame>.feste-ip.net <auf 443 umgeleiterter port>
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert <client>.crt
key <client>.key
ns-cert-type server
tls-auth ta.key 1
cipher AES-256-CBC
auth SHA512
remote-cert-tls server
comp-lzo
verb 3

Dateien für den OpenVPN Server:

ca.crt
server.crt
server.key
ta.key
dh2048.pem

Dateien für einen Client:

ca.crt
<client>.crt
<client>.key
ta.key

Android Openvpn Connect

Für Android können benötigen wir folgende Dateien in einem Verzeichnis, zB openvpn:

<client>.ovpn
ca.crt
<client>.crt
<client>.key
ta.key

Im Start Bildschirm von Openvpn Connect die Option “OVPN profile” auswählen und dann die Datei .ovpn importieren.

 

Leave a Reply