Openwrt – Installation OpenVPN
Diese Anleitung ist Teil des Projekts OpenWRT als eierlegende Wollmilchsau.
Ob die Pakete über das Webinterface oder die Konsole installiert werden ist egal, folgende sollten im ersten Schritt mit allen abhängigkeiten installiert werden:
- openvpn
- openvpn-easy-rsa
- luci-theme-bootstrap (optional)
- luci-i18n-german (optional)
Als nächstes generieren wir uns Zertifikate analog des Openwrt VPN Howto
cd /etc/easy-rsa vi vars
*OPTIONAL* (Wenn man möchte, dass die zertifikate nie auslaufen folgende Zeilen auskommentieren)
export CA_EXPIRE=3650 export KEY_EXPIRE=3650
(folgende Zeilen an die eigenen Bedürfnisse anpassen)
export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="me@myhost.mydomain
OPTIONAL: wir sorgen für einen unbeschwerten Start uns setzen /etc/easy-rsa/keys
zurück
clean-all
-
Erstellen der Zertifikate
build-ca build-dh
-
Erstellen des Serverkey
build-key-server server
-
Erstellen der Clientkeys
build-key client
PKCS12 Format (kombiniert key und ca Zertifikate in einer Datei)
build-key-pkcs12 client
-
anschliessend kopieren wir die benötigten Dateien nach
/etc/openvpn
cd /etc/easy-rsa/keys cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn/
Backup der Dateien nicht vergessen! und weiter zur OpenVPN – Konfiguration.
vi /etc/config/openvpn config 'openvpn' 'lan' option 'enable' '1' option 'port' '1194' option 'proto' 'udp' option 'dev' 'tun' option 'ca' '/etc/easy-rsa/keys/ca.crt' option 'cert' '/etc/easy-rsa/keys/server.crt' option 'key' '/etc/easy-rsa/keys/server.key' option 'dh' '/etc/easy-rsa/keys/dh1024.pem' option 'crl_verify' '/etc/easy-rsa/keys/crl.pem' option 'ifconfig_pool_persist' '/tmp/ipp.txt' option 'keepalive' '10 120' option 'comp_lzo' 'no' option 'persist_key' '1' option 'persist_tun' '1' option 'status' '/var/log/openvpn-status.log' option 'verb' '3' option 'server' '10.0.0.0 255.255.255.0' option 'client_to_client' '1' list 'push' 'redirect-gateway def1' list 'push' 'dhcp-option DNS 192.168.1.1' list 'push' 'route 192.168.1.0 255.255.255.0'
An der Stelle auch wieder beachten, wer andere Netze nutzt oder nutzen möchte anpassen! Als nächstes passen wir die Firewall an, damit wir uns verbinden können:
vi /etc/config/firewall config 'include' option 'path' '/etc/firewall.user' config 'rule' option 'target' 'ACCEPT' option 'name' 'VPN' option 'src' 'wan' option 'proto' 'udp' option 'dest_port' '1194'
vi /etc/firewall.user iptables -t nat -A prerouting_wan -p udp --dport 1194 -j ACCEPT iptables -A input_wan -p udp --dport 1194 -j ACCEPT iptables -I INPUT -i tun+ -j ACCEPT iptables -I FORWARD -i tun+ -j ACCEPT iptables -I OUTPUT -o tun+ -j ACCEPT iptables -I FORWARD -o tun+ -j ACCEPT
/etc/init.d/openvpn start /etc/init.d/openvpn enable
Als letztes bleibt die Konfiguration des Client OpenVPN. Ein beispiel für eine Konfigurationsdatei zum einbinden könnte wie folgt aussehen.
client tls-client dev tun proto udp remote infinite nobind ca ca.crt cert client.crt key client.key dh dh1024.pem #comp-lzo persist-tun persist-key verb 3
Abschliessend kopieren wir noch folgende Dateien ca.crt
, client.crt
, client.key und
dh1024.pem
welche sich unter /etc/easy-rsa/keys/
auf dem Router befinden. Notfalls Pfade zu den Dateien auf dem Client anpassen!