OpenVPN über Terminal (OpenWRT)

Aus Tutorials
Zur Navigation springen Zur Suche springen

Installation

opkg update
opkg install openvpn-openssl openvpn-easy-rsa iputils-traceroute6 luci-app-openvpn

Dann den Router neustarten, damit der Service-Tab in Luci sichtbar wird.

Zertifikate

Anlegen

build-ca
build-dh
build-key-server --server <my-server>
build-key-pkcs12 <my-client>

Übertragen

Server

cp /etc/easy-rsa/keys/ca.crt /etc/easy-rsa/keys/my-server.* /etc/easy-rsa/keys/dh2048.pem /etc/openvpn

Client

scp /etc/easy-rsa/keys/ca.crt /etc/easy-rsa/keys/my-client.* root@CLIENT_IP_ADDRESS:/etc/openvpn

bzw.

scp root@ROUTER_IP_ADDRESS:/etc/easy-rsa/keys/ca.crt .
scp root@ROUTER_IP_ADDRESS:/etc/easy-rsa/keys/my-client.* .

Konfiguration

Netzwerk

1. VPN Schnittstelle mit dem Namen vpn0 anlegen

uci set network.vpn0=interface
uci set network.vpn0.ifname=tun0
uci set network.vpn0.proto=none
uci set network.vpn0.auto=1

2. In der Firewall den Port 1194 für eingehende Client-Verbindungen öffnen

uci set firewall.Allow_OpenVPN_Inbound=rule
uci set firewall.Allow_OpenVPN_Inbound.target=ACCEPT
uci set firewall.Allow_OpenVPN_Inbound.src=*
uci set firewall.Allow_OpenVPN_Inbound.proto=udp
uci set firewall.Allow_OpenVPN_Inbound.dest_port=1194

3. Anlegen einer Firewall-Zone mit dem Namen vpn0 für das neue vpn0-Netzwork. Sie erlaubt eingehende und ausgehende Verbindungen innerhalb des VPN-Tunnes:

uci set firewall.vpn=zone
uci set firewall.vpn.name=vpn
uci set firewall.vpn.network=vpn0
uci set firewall.vpn.input=ACCEPT
uci set firewall.vpn.forward=REJECT
uci set firewall.vpn.output=ACCEPT
uci set firewall.vpn.masq=1

4. (Optional) Damit Clients Rechner im LAN erreichen können, ist es notwendig Verkehr zwischen VPN-Firewall-Zone und LAN-Firewall-Zone weiter zu leiten

uci set firewall.vpn_forwarding_lan_in=forwarding
uci set firewall.vpn_forwarding_lan_in.src=vpn
uci set firewall.vpn_forwarding_lan_in.dest=lan

Und Rechner im LAN erlauben Verbindungen zu den Clients aufzunehmen

uci set firewall.vpn_forwarding_lan_out=forwarding
uci set firewall.vpn_forwarding_lan_out.src=lan
uci set firewall.vpn_forwarding_lan_out.dest=vpn

5. (Optional) Damit Clients Verbindungen ins Internet durch den Tunnenl aufbauen können, muss der Verkehr zwischen VPN-Firewall-Zone und WAN-Firewall-Zone weitergeleitet werden

uci set firewall.vpn_forwarding_wan=forwarding
uci set firewall.vpn_forwarding_wan.src=vpn
uci set firewall.vpn_forwarding_wan.dest=wan

6. Änderungen gültig machen:

uci commit network
/etc/init.d/network reload
uci commit firewall
/etc/init.d/firewall reload

7. Statische Route hinzufügen => testen, ob notwendig

OpenVPN

Konifuration als TUN-Server (Client verbindet sich zum Netzwerk hinter dem VPN-Server):

Router

echo > /etc/config/openvpn # clear the openvpn uci config
uci set openvpn.myvpn=openvpn
uci set openvpn.myvpn.enabled=1
uci set openvpn.myvpn.verb=3
uci set openvpn.myvpn.port=1194
uci set openvpn.myvpn.proto=udp
uci set openvpn.myvpn.dev=tun
uci set openvpn.myvpn.server='10.8.0.0 255.255.255.0'
uci set openvpn.myvpn.keepalive='10 120'
uci set openvpn.myvpn.ca=/etc/openvpn/ca.crt
uci set openvpn.myvpn.cert=/etc/openvpn/my-server.crt
uci set openvpn.myvpn.key=/etc/openvpn/my-server.key
uci set openvpn.myvpn.dh=/etc/openvpn/dh2048.pem
uci add_list openvpn.myvpn.push='route 10.0.0.0 255.255.255.0'
uci add_list openvpn.myvpn.push='dhcp-option DNS 8.8.4.4'
uci add_list openvpn.myvpn.push='dhcp-option DNS 8.8.8.8'
uci commit openvpn

Server aktivieren und starten:

/etc/init.d/openvpn enable
/etc/init.d/openvpn start

Die Datei kann auch unter /etc/config/openvpn direkt bearbeitet werden:

config openvpn 'myvpn'
	option enabled '1'
	option verb '3'
	option port '1194'
	option proto 'udp'
	option dev 'tun'
	option server '10.8.0.0 255.255.255.0'
	option keepalive '10 120'
	option ca '/etc/openvpn/ca.crt'
	option cert '/etc/openvpn/sonnberg_router.crt'
	option key '/etc/openvpn/sonnberg_router.key'
	option dh '/etc/openvpn/dh2048.pem'
	list push 'route 10.0.0.0 255.255.255.0'
	list push 'dhcp-option DNS 8.8.4.4'
	list push 'dhcp-option DNS 8.8.8.8'

Client

Client Konfiguration unter der Endung *.ovpn speichern:

dev tun
proto udp

log openvpn.log
verb 3

ca /etc/openvpn/ca.crt
cert /etc/openvpn/<my-client>.crt
key /etc/openvpn/<my-client>.key

client
pull
remote-cert-tls server
remote SERVER_IP_ADDRESS 1194

Links

https://openwrt.org/docs/guide-user/services/vpn/openvpn/server

https://www.portunity.de/access/wiki/Einrichtung_des_OpenVPN-Tunnels_unter_OpenWRT_Chaos_Calmer_15.05,_IPv4_und_IPv6

https://blog.doenselmann.com/openvpn-server-auf-openwrt-router-betreiben/


Zurück zu OpenVPN