OpenWRT - mein Setup

This page is also available in English

Für mein Heimnetzwerk verwende ich einen Router mit OpenWRT. Meine Anforderungen an den Router sind dabei im Wesentlichen die folgenden Aufgaben: 

  • Der Zugriff über Ethernet und WLAN ins Internet
  • Eine Möglichkeit das benötigte Datenvolumen der einzelnen Geräte aktuell und historisch anzuzeigen.
  • Der Zugriff von unterwegs auf mein Heimnetzwerk: VPN

Als Hardware verwende ich einen Linksys WRT3200ACM und als zusätzlichen Access Point einen NETGEAR WAC104 in einer gemeinsamen Mobility-Domain: siehe: HeimNetzwerk einrichten: LAN und WLAN erweitern | verbessern. Wer auf der Suche nach einer geeigneten Hardware ist, könnte hier fündig werden: OpenWRT Hardware Empfehlung - verfügbare Geräte 2022.

Aktuelle OpenWRT-Version: 22.03.0 (gefunden: 04.09.2022)

Softwarepakete

Nachdem bei einem Upgrade die Softwarepakete erneut aktiviert werden müssen, habe ich mir ein paar Zeilen Code zusammengestellt um den Router wieder auf Stand zu bringen:

opkg update && opkg install openvpn-openssl luci-app-openvpn block-mount e2fsprogs kmod-fs-ext4 kmod-usb3 kmod-usb2 kmod-usb-storage bandwidthd-pgsql luci-app-sqm luci-app-advanced-reboot luci-app-attendedsysupgrade
block detect > /etc/config/fstab 
uci set fstab.@mount[0].enabled='1' && uci set fstab.@global[0].check_fs='1' && uci commit 
/sbin/block mount

📢 Hier wird voraussichtlich am 19.10.2022 ein neuer Beitrag verlinkt werden: OpenWrt Upgrade Push-Nachrichten erlauben?

OpenVPN - Setup

OpenVPN kann am schnellsten über folgende Befehle eingerichtet werden:

opkg update
opkg install openvpn-openssl openvpn-easy-rsa
build-ca
build-dh
build-key-server libe
cp /etc/easy-rsa/keys/ca.crt /etc/easy-rsa/keys/libe.* /etc/easy-rsa/keys/dh2048.pem /etc/openvpn
uci set network.vpn0=interface
uci set network.vpn0.ifname=tun0
uci set network.vpn0.proto=none
uci set network.vpn0.auto=1
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
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
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

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

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

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/libe.crt
uci set openvpn.myvpn.key=/etc/openvpn/libe.key
uci set openvpn.myvpn.dh=/etc/openvpn/dh2048.pem
uci commit openvpn

Um Clients den Zugriff mittels VPN zu ermöglichen, können über den Befehl build-key-pkcs12 die notwendigen Files erstellt werden:

Client

Den Befehl build-key-pkcs12 habe ich auf meinem Ubuntu-Rechner ausgeführt und die Keys im Anschluss mittles scp auf den Router kopiert: 

 build-key-pkcs12 myclient
 scp root@192.168.0.2:/etc/easy-rsa/keys/myclient.* /media/temp/vpn
 scp root@192.168.0.2:/etc/easy-rsa/keys/ca.crt /media/temp/vpn

Client-DNS-Einstellungen

Damit der DHCP-Server einen anderen DNS-Server für die Clients verwendet, können alternative DNS-Server in den DHCP-Options mitgegeben werden:

Als Beispiel: Option 6 die Google DNS-Server 8.8.8.8 und 8.8.4.4:

6,8.8.8.8,8.8.4.4

OpenWrt vs. DDWRT

siehe auch: Alternative Router Firmware: OpenWrt und nicht mehr DD-WRT

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!

Aktualisiert: 04.09.2022 von Bernhard


Top-Artikel in diesem Bereich


IP Adressen im Netzwerk finden, auch wenn deren Firewall aktiviert ist
Wer einen schnellen Überblick über alle aktiven Geräte in einem Netzwerk bekommen will, kann dies mit der Netzwerkerkennung, mit Befehlen in der Eingabeaufforderung, in PowerShell oder mit speziellen IP-Scannern. Die zu Beginn dieses Beitrages zusammengestellten PowerShell-Befehle geben einen schnellen Überblick über alle Geräte im lokalen Netzwerk und machen spezielle Programme für das Scannen des Netzwerks eventuell überflüssig. Wer die Befehle gerne in Aktion sehen will, kann dies in meinem Y...

PING mit Port - Windows cmd | PowerShell: Test-Netconnection
Mit dem Tool Ping kann bekanntlich der Zugriff zu einem bestimmten Netzwerkgerät und dessen Antwortzeit getestet werden. Nicht alle Geräte antworten auf einen Ping, möglicherweise aber auf einen bestimmten TCP-Port, vorausgesetzt, es wird darüber ein bestimmter Netzwerkservice zur Verfügung gestellt. Windows PowerShell ermöglicht es, einen bestimmten Port mit Windows Bordmitteln zu testen. Das Tool PSping kann zudem die Antwortzeit auf einen bestimmten Port messen. Wer die Befehle gerne in Aktio...

cmd Befehle für die Netzwerkanalyse
Mit einfachen Befehlen kann ein schneller Überblick über die aktuellen Netzwerkeinstellungen ausgelesen werden, eventuelle Verbindungsfehler gefunden, oder ein Überblick über andere Geräte im Netzwerk verschafft werden. Die hier beschriebenen Befehle sind cmd-Befehle. Die Eingabe erfolgt über die Eingabeaufforderung: cmd, siehe auch das zugehörige YouTube-Video.

Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details