Eigenbau einer Firewall mit OpenWRT

Autor : Gerd Raudenbusch
Stand : 06.04.2024

Inhalt

Einführung

Mit der wachsenden Nutzung des Internets und der digitalen Medien hat auch die schädliche Online-Werbung zugenommen. Durch die Verwendung von Tracking und Profiling-Technologien und Cookies schalten Werbetreibende personalisierte Werbung. Sie sammeln Informationen über das Online-Verhalten der Nutzer, um ihnen gezielte Anzeigen zu präsentieren. Es gibt auch schädliche Werbung, die darauf abzielt, Nutzer zu betrügen oder zu täuschen. Dies kann beispielsweise gefälschte Werbung für betrügerische Produkte oder Dienstleistungen umfassen. Solche Werbung kann finanzielle Verluste oder Sicherheitsrisiken verursachen.

Durch die Verwendung von OpenWRT mit Adblock können unerwünschte Werbeanzeigen, Pop-ups und Tracking-Skripte blockiert werden, bevor sie auf die Geräte im Haushalt geladen werden. Dies bietet einen effektiven Schutz vor schädlicher Werbung und verbessert das Surferlebnis und die Geschwindigkeit, indem lästige Werbung eliminiert wird.

OpenWRT mit Adblock bietet einen wirksamen Schutz vor den meisten schädlichen Werbeformen.

OpenWRT bietet außerdem eine flexible und anpassbare Firewall-Lösung, die es ermöglicht, den IP-basierten Datenverkehr zu überwachen, zu filtern und zu kontrollieren. Durch die Konfiguration der Firewall-Regeln kann der Zugriff auf bestimmte Ports, Protokolle oder IP-Adressen eingeschränkt oder blockiert werden. Dies ermöglicht es, auch in Härtefällen unerwünschten Datenverkehr zu blockieren und die Sicherheit des gesamten Netzwerks zu verbessern.

OpenWRT auf TP-Link Archer C6

Der TP-Link Archer C6 Router kostet aktuell 40€ und kann per TFTP mit OpenWRT bespielt werden.

OpenWRT auf GL-iNET GL-SF1200

Der 1000MBit-Router GL-SF1200 kostet 28,00€. Er kommt mit einer älteren Version von OpenWRT, die der Hersteller für einen nicht vollständig Linux-kompatiblen Chip portiert hat. Nach seiner regulären Inbetriebnahme kann man die OpenWRT-Weboberfläche LuCi zusätzlich aktivieren und sich außerdem mit dem vergebenen Passwort per SSH einloggen, um sich im Anschluß direkt OpenWRT nach den eigenen Bedürfnissen einzurichten.

OpenWRT auf GL-iNET Shadow GL-AR300M16

Der 100MBit-Reise-Router GL-iNET Shadow (GL-AR300M16) kostet aktuell 24,79 und kommt bereits mit OpenWRT. Nach seiner regulären Inbetriebnahme kann man die OpenWRT-Weboberfläche LuCi zusätzlich aktivieren und sich außerdem mit dem vergebenen Passwort per SSH einloggen, um sich im Anschlußdirekt OpenWRT nach den eigenen Bedürfnissen einzurichten.

OpenWRT auf der Fritz!Box 4040

Die Fritz!Box 4040 kostet aktuell 87,90€

Software für Fritz!Box

Beschreibung Datei
AVM Firmware Recovery Tool für Windows FRITZ.Box_4040-07.57-recover.exe
Original Hersteller-Firmware FRITZ.Box_4040-07.57.image (für Notfälle)
OpenWRT Flash Skript für Python und Windows 10 fritzflash.py
Aktuelles OpenWRT-Image für die Fritz!Box 4040 openwrt-22.03.5-ipq40xx-generic-avm_fritzbox-4040-squashfs-eva.bin

Vorgehen für Fritz!Box

Ich konnte der Installations-Anleitung von OpenWRT erfolgreich folgen :

Anpassung von OpenWRT

Diese Hinweise stammen aus den OpenWRT-Artikeln von Christian Lorenz und Mike Kuketz.

Installation von Adblock zur Kontrolle des DNS-Verkehrs :

opkg install adblock luci-app-adblock tcpdump-mini luci-i18n-adblock-de wget mailsend msmtp

Installation von stubby zur DNS-Verschlüsselung :


# dnsmasq mit DNSSEC installieren
opkg install dnsmasq-full --download-only && opkg remove dnsmasq && opkg install dnsmasq-full --cache . && rm *.ipk

# Stubby installieren
opkg install stubby

# dnsmasq für stubby konfigurieren
uci add_list dhcp.@dnsmasq[-1].server='127.0.0.1#5453'
uci set dhcp.@dnsmasq[-1].noresolv=1
uci commit && reload_config

# WAN-Interface DNS-Adresse auf stubby lenken
uci set network.wan.peerdns='0'
uci set network.wan.dns='127.0.0.1'
uci set network.wan6.peerdns='0'
uci set network.wan6.dns='0::1'
uci commit && reload_config

# DNSSEC in dnsmasq aktivieren
uci set dhcp.@dnsmasq[-1].dnssec=1
uci set dhcp.@dnsmasq[-1].dnsseccheckunsigned=1
uci commit && reload_config

Installation von Traffic-Überwachung

opkg install vnstat luci-app-vnstat luci-i18n-vnstat-de

Installation eines VPN-Clients

Damit laufen alle Geräte am Router über eine VPN-Verbindung.

opkg install openvpn-openssl
luci-app-openvpn

WiFi aktivieren

Wenn der Hausrouter bereits gemesht ist

Die hierzulande verbreitete Fritz!Box von AVM ermöglicht - wie auch andere Hersteller - ein "Meshing" (Vermaschen) von Geräten des gleichen Herstellers. Der Vorteil besteht vor allem darin, die zusätzlichen Geräte, z. B. WLAN-Repeater, zentral über den Hausrouter mit konfigurieren zu können.

Da sich der OpenWRT-Router in dieser Architektur nicht für das gesamte Heimnetz dazwischen schalten läßt, kann man ihn zumindest als globalen DNS-Proxy für das Haus nutzen. Damit kann sie zwar keine IP-Adressen filtern, aber der Adblocker funktioniert weiterhin, da er den gesamten DNS-Verkehr filtert.

Dieses Szenario konfiguriert man folgendermaßen :

  1. DNS-Port auf OpenWRT-Router freigeben

Man verbindet sich mit dem OpenWRT-Router und geht in die Firewall-Einstellungen. Dort öffnet man den Port 53.

  1. Dem OpenWRT-Router eine feste IP-Adresse im Heimnetz zusichern

Um nicht in Konflikt mit dem DHCP-Server der Fritz!Box zu geraten, läßt man der Fritz!Box diese Verantwortung und editiert auf ihr die Netzwerk-Einstellungen der Firewall.

Dazu loggt man sich auf der Fritz!Box ein. Unter Heimnetz ► Netzwerk sucht man zunächst den Geräte-Eintrag für den OpenWRT-Router.

Hier kann man einstellen, daß der OpenWRT-Router immer die gleiche IP-Adresse bekommen soll.

Danach sollte man den OpenWRT-Router neu starten, damit sie diese IP-Adresse bezieht.

  1. Den ausgehenden DNS-Server auf den OpenWRT-Router leiten

Nun kann man die Adresse des DNS-Servers, an den die Fritz!Box als Hausrouter alle ausgehenden DNS-Anfragen schickt, und die normalerweise vom Internet Service Provider automatisch zugewiesen wird, durch die Adresse des eigenen OpenWRT-Routers ersetzen und diesen fortan die DNS-Anfragen des Heimnetzes beantworten, und nun auch filtern lassen.

Dazu stellt man auf der Fritz!Box unter Zugangsart ► DNS-Server genau die IP-Adresse ein, die man zuvor dem OpenWRT-Router als fest zugesichert hat.


Anhang

Software für GL-iNET Shadow

(Auf die verschiedenen Formate von OpenWRT-Firmware muss unbedingt geachtet werden)

Beschreibung Datei
Aktueller Bootloader (u-boot) vom Hersteller zur Neuinstallation über die u-Boot Weboberfläche für u-Boot selbst auf http://192.168.1.1/uboot.html uboot-gl-ar300m-20220216-md5-97ff7bb80cbf129fa21f34ded1559ff8.bin
Aktuelle Hersteller-Firmware zum Upgrade auf dessen eigener, regulärer Webschnittstelle auf http://192.168.8.1 (nicht LuCi) oder über die u-Boot Weboberfläche auf http://192.168.1.1 openwrt-ar300m16-4.3.7-0913-1694589994.bin
Aktuelles Image von OpenWRT für NAND-Speicher zur Neuinstallation eines OpenWRT-Systems über die u-Boot Weboberfläche auf http://192.168.1.1 (zu bevorzugen) openwrt-22.03.5-ath79-nand-glinet_gl-ar300m-nand-squashfs-factory.img
Aktuelles Image von OpenWRT für NAND-Speicher zur Neuinstallation eines OpenWRT-Systems über die u-Boot Weboberfläche auf http://192.168.1.1 openwrt-22.03.5-ath79-nand-glinet_gl-ar300m-nand-initramfs-kernel.bin
Aktuelles Image von OpenWRT für NAND-Speicher zur Aktualisierung eines bereits bestehenden OpenWRT-Systems, entweder über die LuCi-Oberfläche (http://192.168.1.1/cgi-bin/luci/admin/system/flash) oder durch Hochladen über SFTP ins /tmp-Verzeichnis und Installation mit sysupgrade bzw. mtd openwrt-22.03.5-ath79-nand-glinet_gl-ar300m-nand-squashfs-sysupgrade.bin
Aktuelles Image von OpenWRT für NOR-Speicher zur Neuinstallation eines OpenWRT-Systems über die u-Boot Weboberfläche auf http://192.168.1.1 openwrt-22.03.5-ath79-nand-glinet_gl-ar300m-nor-initramfs-kernel.bin
Aktuelles Image von OpenWRT für NOR-Speicher zur Aktualisierung eines bereits bestehenden OpenWRT-Systems, entweder über die LuCi-Oberfläche (http://192.168.1.1/cgi-bin/luci/admin/system/flash) oder durch Hochladen über SFTP ins /tmp-Verzeichnis und Installation mit sysupgrade bzw. mtd openwrt-22.03.5-ath79-nand-glinet_gl-ar300m-nor-squashfs-sysupgrade.bin

Debrick-Prozedur für GLiNET-Geräte

Die Debrick-Prozedur nach Hersteller von GLiNET beschreibt, wie man die Router mit Firmware bespielt, wenn man die Hersteller-eigene Webschnittstelle nicht nutzen möchte oder kann. Damit kann man die auf OpenWRT aufgesetzte Hersteller-Firmware auch komplett durch OpenWRT ersetzen. Normalerweise sieht die Debrick-Webschnittstelle so aus :

Der Hersteller empfiehlt, bei anderem Aussehen den Bootloader zu aktualisieren.

Die OpenWRT-Gemeinde hat in ihrer Installationsanleitung angemerkt, daß dies manchmal nicht funktioniert und entweder mit Firefox auf Linux anstatt Windows zu lösen sei, oder :

»Try older vendor images in NOR format instead of NAND if your image won't be accepted. In order to fix this, you need to flash u-boot which resides on /dev/mtd0. To make writing to mtd possible, one needs to install the proper kernel module and load it:

opkg update
opkg install kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1

Then grab the latest u-boot image from https://github.com/gl-inet/uboot-for-qca95xx/tree/master/bin, upload it using scp to /tmp of the router (or directly wget from the github repo), check the md5sum using md5sum {u-boot filename} and flash it like shown below:

mtd -r write /tmp/uboot-gl-ar300m-20220216-md5-97ff7bb80cbf129fa21f34ded1559ff8.bin /dev/mtd0

After rebooting the new version of u-boot will be in place that now accepts recent images.

One can now use the hardware switch to change between booting NAND (position next to reset button) or NOR (away from reset button) after issuing the command fw_setenv boot_dev on.

I do not recommend doing so as the NAND is larger and faster while the NOR is only 16 MB in size and it can cause problems to have two image on the router. See https://docs.gl-inet.com/en/2/hardware/ar300m/#using-firmware


Zurück zur Hauptseite