mit openWRT lässt sich auch hervorragend ein OpenVPN Server einrichten. Der Vorteil gegenüber der Fritzbox VPN einrichtung ist die deutlich einfachere Handhabung für die client Verbindung.
Anleitungen wie man OpenVPN auf einem openWRT System einrichtet gibt es zuhauf zu finden im Internet. Dennoch haben einige Anleitungen nicht ganz 1:1 bei meinen Einrichtungs-versuchen funktioniert und so dokumentiere ich zumindest mal meinen Aufbau.
Als OpenVPN Instanz ist eine Fritzbox 7530 direkt mit einer festen IP im Heimnetz verbunden. Mein Heimnetz ist 192.168.1.0/24. Mein Internet Router, eine FB 7560, hat die 192.168.1.1. OpenWRT hat die 192.168.1.254 und macht DNS (adblock) und OpenVPN auf UDP4 port 1194. Dieser Port muss an der 7560 als Weiterleitung aus dem Internet an die 192.168.1.254 festgelegt werden. IPv6 habe ich deaktiviert.
Firewall Regeln müssen in meinem Fall keine angelegt werden, da OpenWRT nicht als Router arbeitet. Die Box läuft im Client mode.
Das meiste der Einrichtung erfolgt via SSH auf CLI Ebene. Das ist einfacher und i.d.R. auch so im Internet dokumentiert.
Nun aber mal los:
- mit SSH zur Box verbinden (user: root)
- Pakete installieren – >
opkg update
opkg install openvpn-openssl openvpn-easy-rsa
- Schlüssel & Zertifikate für OpenVPN ->
mkdir /etc/openvpn/easy-rsacd /etc/openvpn/easy-rsa
easyrsa init-pki
easyrsa build-ca nopass
easyrsa gen-dh
- Schlüssel für die OpenVPN-Server ->
easyrsa build-server-full server nopass
- Schlüssel für die OpenVPN-Clients ->
easyrsa build-client-full client-1 nopass
- Schlüssel und Zertifikate übertragen ->
cd /etc/openvpn
mkdir certs
ln -s /etc/openvpn/easy-rsa/pki/ca.crt certs/ca.crt
ln -s /etc/openvpn/easy-rsa/pki/private/server.key certs/server.key
ln -s /etc/openvpn/easy-rsa/pki/issued/server.crt certs/server.crt
ln -s /etc/openvpn/easy-rsa/pki/dh.pem certs/dh.pem
- OpenVPN sichtbar in GUI machen ->
opkg update
opkg install luci-app-openvpn
- Konfigurationsdatei am Server anlegen ->
vi /etc/config/openvpn
>>>>>>>>>>>>>>>>>>>>>>>>>>
config openvpn 'client_to_server'
option enabled '1'
option dev 'tun'
option proto 'udp4'
option log '/tmp/openvpn.log'
option verb '3'
option ca '/etc/openvpn/certs/ca.crt'
option cert '/etc/openvpn/certs/server.crt'
option key '/etc/openvpn/certs/server.key'
option dh '/etc/openvpn/certs/dh.pem'
option server '10.20.30.0 255.255.255.0'
option cipher 'AES-256-CBC'
option auth 'SHA512'
option tls_cipher 'TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WIT
option port '1194'
option keepalive '10 120'
option tls_server '1'
option tls_version_min '1.2'
list push 'route 192.168.1.0 255.255.255.0'
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Datei abspeichern mit „ZZ“.
- Neu anglegte OpenVPN Konfiguration übernehmen ->
/etc/init.d/openvpn reload
Die Konfiguration für den Server is nun abgeschlossen und sollte in der OpenWRT GUI unter VPN -> OpenVPN sichtbar und auch gestartet sein.
Als nächstes wird noch die Konfiguration für den Client benötigt.
die sieht bei mir wie folgt aus:
>>>>>>>>>>>>>>>>>>>>>>>>>>>
client
fast-io
dev tun
auth-nocache
remote xxxxxxxxxxxxxxx.myfritz.net 1194 udp4
proto udp4
resolv-retry infinite
verb 3
ca ca.crt
cert client-1.crt
key client-1.key
data-ciphers-fallback AES-256-CBC
remote-cert-tls server
nobind
persist-key
persist-tun
comp-lzo no
<<<<<<<<<<<<<<<<<<<<<<<<<<<<
die 3 dort genannten Dateien (ca.crt; client-1.crt; client-1.key) sind natürlich vorher vom Server zu kopieren und im OpenVPN client Konfigurations-ordner mit abzulegen.
Idealerweise sollte am Ende der Client verbinden können und das Ganze in etwa so aussehen.