Heimrouter-Kochbuch/ Einsatzbeispiele/ Regulierter Zugang Jugendlicher

Beschreibung Bearbeiten

 
Heimnetzwerk mit separatem Netz für Jugendliche

Als Basis wird hier das Szenarium mit internem Netz und WLAN verwendet, indem folgende Eigenschaften im Netzwerk eingerichtet wurden:

Zusätzlich wird in diesem Szenarium eingerichtet:

  • Neues separiertes Netz mit TP-Kabel und WLAN für die Jugendlichen
  • Zeitbeschränkung des Internetzugangs
  • Separate Volumenbegrenzung für Mobilgeräte und Festgeräte
  • Separate DNS für das Netz der Jugendliche

Mit Zugang zur SSH-Konsole und etwas Programmierkenntnissen wird folgendes eingerichtet:

  • Positivliste von Webseiten, für die keine Zeit- oder Volumenbeschränkung gelten soll

Zweck Bearbeiten

Der Zugang Jugendlicher ins Internet wird im Internet teil kontrovers diskutiert. Diese Diskussion soll hier nicht ausgeführt werden. Generell müssen die Erziehungsberechtigten die Mediennutzung der Jugendliche kontrollieren und begleiten. Mit der Technik lassen sich Grenzen setzen, so dass den Jugendlichen ein freier Raum gewährt werden kann, ohne kontinuierliche Überwachung durch die Erwachsenen.

Daher soll hier beschrieben werden, wie für die Jugendliche ein separates Netz eingerichtet wird. Mit ihren Geräten haben die Jugendliche zunächst freien Zugang zum Internet. Grenzen werden gesetzt, indem eine festgelegte Zeit vorgegeben wird, in der sie das Internet nutzen können. Während die Fritz!Box auch ein Zeitkontingent vorgeben kann, wird dies hier nicht weiterverfolgt, da die Bestimmung der Nutzungszeit vom Router aus schwierig ist. Letztlich kann nur die Zeit bestimmt werden, in der Netzverkehr stattfindet. Wenn ein Programm im Hintergrund (z.B. Desktop-Client eines Instant Messenger) regelmäßig Aktualisierungen durchführt, wird Internetzeit gemessen, auch wenn der Jugendliche in dieser Zeit andere Tätigkeiten ausübt.

Damit die Jugendlichen diese Zeit nicht ausschließlich für Videokonsum nutzen, wird zudem eine Downloadgrenze eingeführt. Ist eine bestimmte Downloadmenge erreicht, wird die Firewall für diesen Rechner geschlossen.

Es wird weiterhin zwischen fest installierten und mobilen Geräten unterschieden. Die Kopfhaltung bei Nutzung von Smartphones führen nicht nur bei Erwachsenen zu Haltungsschäden, wie eine schnelle Recherche im Internet zeigt[1]. Daher ist gerade bei Jugendlichen noch stärker auf ein ergonomisches Arbeiten zu achten. Dies ist bei Rechnern mit separatem Monitor und Tastatur deutlich besser zu gewährleisten als bei mobilen Geräten, auch bei Arbeiten mit Laptops. Hieraus wird das Arbeiten mit Rechnern bevorzugt und Mobilgeräte durch Konfiguration des Routers stärker in der Nutzbarkeit eingeschränkt.

Benötigte Pakete Bearbeiten

Zur Konfiguration der Firewall werden einige Pakete benötigt, die über die Softwareverwaltung (System/Software) nachgeladen werden müssen:

  • iptables-mod-iprange: Für die IPtables-Regeln können mit diesem Paket auch IP-Bereiche, wie 192.168.43.100-150 angegeben werden.
  • iptables-mod-quota2: Es lassen sich (Download-) Volumen definieren, welche für eine IP-Adresse zugelassen wird.

Vorbereitung Bearbeiten

 
Kids network with volume and time restriction.

Das Netzwerk für die Jugendliche wird entsprechend vorbereitet. Die Rechner der Jugendlichen werden in einem eigenen LAN zusammengefasst. Wenn keine Ethernetverkabelung möglich ist, dann sollten die Rechner per PowerLAN angeschlossen werden. Das LAN für die Jugendlichen wird im Router auf die Buchse LAN2 gelegt.

Einrichtung Bearbeiten

Switch konfigurieren Bearbeiten

Analog zu den Anleitungen zur Anbindung von Smart Home Geräten bzw. zur Einrichtung einer DMZ bzw. Exposed Host wird die Switch für das Ethernet konfiguriert.

Es wird ein neuer Eintrag erzeugt mit der VLAN-Nummer 5. In diesem Eintrag ist die CPU als tagged markiert ung LAN2 als untagged. Alle anderen Ports sind als off markiert. Der Port LAN2 darf nur für den Eintrag 5 als untagged markiert sein. In allen anderen Einträgen muss dies als off markiert werden.

Nach Speichern und Aktivieren liegt ein neues Netzwerkinterface eth0.5 zur Verfügung.

Netzwerk anlegen Bearbeiten

Unter Network/Interface wird ein neues Netzwerk Kids als bridged interface angelegt. Für dieses Netzwerk wird der IP-Raum 192.168.47.2/24 vorgesehen, indem dem Router die IP-Adresse 192.168.47.2 mit der Netzmaske 255.255.255.0 festgelegt wird.

Dem Netzwerk Kids wird das Interface eth0.5 zugeordnet.

In der Firewall-Einstellung wird eine neue Firewall-Zone Kids angelegt. Dieses neue Netzwerk wird direkt dieser Firewall-Zone zugeordnet.

Die DHCP-Optionen werden zunächst beibehalten. Existiert bereits ein dedizierter DNS-Server, der für die Jugendliche konfiguriert ist, dann kann der nächste Abschnitt direkt ausgeführt werden.

Die Änderungen werden gespeichert und aktiviert.

DNS-Server verwenden (optional) Bearbeiten

Bei der Einrichtung des Netzwerkes wird unter den erweiterten DHCP-Optionen der DNS-Server konfiguriert, indem im Feld DHCP-Options die Eingabe 6,192.168.44.5 eingetragen wird. Die 6 teilt dem DNS-Server mit, dass dies ein DNS-Server ist, welche den angemeldeten Rechnern übertragen werden soll.

DHCP-Einträge für Festrechner Bearbeiten

Die Arbeit am [[[w:Schreibtisch|Schreibtisch]] als Arbeitsplatz für die Jugendliche ist gegenüber der Nutzung von Mobilgeräten immer vorzuziehen. Die festinstallierten Rechner haben zudem den Vorteil, dass diese über ein festinstalliertes Netz besser zu konfigurieren sind.

Um diesen Rechnern bei den Firewall-Regeln gewisse Privilegien zukommen zu lassen, erhalten diese Rechner feste IP-Adressen. Für das Netzwerk Kids ist in den DHCP-Einstellungen festgelegt, dass unbekannte Geräte eine IP-Adresse aus dem Bereich 192.168.47.100 bis 192.168.47.150 erhalten. Den Arbeitsplatzrechnern werden IP-Adressen außerhalb dieses Bereichs zugewiesen.

Sind die MAC-Adressen der Arbeitsplatzrechner bekannt, kann dies bereits vor Anschluss eingerichtet werden. Ansonsten werden die Rechner eingeschaltet und mit dem Netzwerk verbunden. Diese erhalten zunächst IP-Adressen aus dem Pool, aber dann sind dem Router die MAC-Adressen bekannt.

Unter Network/DHCP and DNS/Static Leases wird für jeden Rechner ein neuer Eintrag angelegt. Es wird die entsprechende MAC-Adresse aus der Liste herausgesucht. Dem Rechner wird ein Name vergeben, wie Kind1 und beispielsweise 192.168.47.51 als IP-Adresse.

Die Änderungen werden gespeichert und aktiviert. Nach dem nächsten Neustart (manchmal reicht auch kurzzeitiges Entfernen des Netzwerkkabels) ist der Rechner mit der fest eingerichteten IP-Adresse verfügbar.

WLAN einrichten Bearbeiten

Das WLAN für die Jugendliche wird analog zum normalen WLAN eingerichtet, wie dies im Basis-Szenarium mit Einrichtung eines WLAN beschrieben wird.

Es wird unter Network/Wireless zu dem jeweiligen Adapter eine neue SSID eingerichtet, die dem Netzwerk Kids zugeordnet wird. Die Sicherheitseinstellungen werden analog zu den übrigen WLAN eingestellt. Als Encryption sollte ein gemischter Modus verwendet werden. Die Jugendliche werden sicherlich Gäste einladen und denen Zugang zum Jugendlichen-Netz gewähren. Ein gemischter Modus erleichtert das Anbinden unbekannter Geräte.

 

Die Geräte der Jugendlichen müssen grundsätzlich als kompromitiert angesehen werden. Trotz Unterweisung ist davon auszugehen, dass Applikationen installiert werden, welche Netzwerkdaten ungefragt auf Internetserver kopieren. Daher muss das Passwort für das WLAN der Jugendliche von allen anderen Passwörtern deutlich verschieden sein.

MAC-Filter werden nicht gesetzt. Die Smartphones der Jugendliche sollten in ihren WLAN-Einstellungen die zufällige Generierung von MAC-Adressen eingeschaltet haben.

In den erweiterten Einstellungen wird noch geprüft, ob die Option Isolate Clients aktiviert ist.

Am Ende werden die Einstellungen gespeichert und aktiviert.

Firewall-Zone konfigurieren Bearbeiten

Die Einrichtung der Firewall-Zone fällt sehr kurz aus. Mit Einrichtung des Netzwerks (siehe oben) wurde bereits die neue Zone Kids angelegt.

Unter Network/Firewall wird die neue Zone Kids editiert. Als Allow forward to destination zones wird zumindest die Internet-Zone wan festgelegt. Sollen die Jugendlichen noch auf ein NAS in einer weiteren Zone zugreifen dürfen, ist diese Zone ebenfalls einzutragen. Um Jugendlichen entfernte Unterstützung (per Remote Desktop) anbieten zu können oder auch Wartungsarbeiten durchzuführen, kann der Zugriff aus dem lan in die Kids-Zone erlaubt werden.

Für die Input, Output und Forward-Tabellen wird als Standard reject ausgewählt. Somit muss jede Internetnutzung durch Firewall-Regeln explizit erlaubt werden.

Weitere Einstellungen müssen in dieser Firewall-Zone nicht vorgenommen werden.

Die Änderungen werden gesichert und aktiviert.

Grenzen setzen mit Traffic Rules Bearbeiten

Prinzipiell ist es möglich, die gewünschten Grenzen mit den Traffic Rules in der Firewall umzusetzen. Dies wird im Folgenden beschrieben. Unter den Traffic Rules wird mit jedem Eintrag genau eine Regel in den Firewall-Tabellen des Routers (IPTables) beschrieben.

Zeitbeschränkungen lassen sich noch gut in Gruppen festlegen und verwalten. Bei einem täglichen Downloadvolumen pro Gerät muss zum Einem pro Gerät eine Regel erstellt werden. Zum Anderen muss der Downloadzähler jede Nacht zurückgesetzt werden. Dies ist mit den Regeln nicht umzusetzen.

Zeitbegrenzung für alle Bearbeiten

Es wird eine neue Regel angelegt. Der neuen Regel kann ein Name gegeben werden, womit es in der Übersicht leichter zu identifizieren ist. Ansonsten können Regeln auch ohne Namen verwendet werden.

Als Protokoll wird zumindest TCP ausgewählt, da mit diesem Protokoll die normalen Webaufrufe laufen. UDP wird bei einzelnen Diensten als Verbindungsprotokoll verwendet, so dass auch UDP ausgewählt werden kann. Die übrigen Protokolle werden nicht verwendet.

Die Regel soll den Verkehr aus dem Kids-Netzwerk in das Internet erlauben, so dass als Source zone die Firewallzone Kids und als Destination zone die Internetzone wan gewählt wird.

Einzig als Action wird accept noch ausgewählt. Bleiben die übrigen Felder leer, trifft die Regel für alle angeschlossenen Rechner im Netz der Jugendlichen zu und diese können alle Rechner im Internet erreichen.

Um die Zeitbegrenzung einzurichten, wird im Reiter Time Restrictions der jeweilige Zeitraum definiert. Unter Week Days werden die Wochentage definiert, an denen diese Regel zutreffen soll. Eine Festlegung einzelner Tage im Monat (Month Days) ist für andere Anwendungen sinnvoll und wird hier leergelassen, so dass die Regel an allen Tagen im Monat zutrifft (wenn nicht durch Auswahl der Wochentage eingeschränkt).

Der Zeitraum, wann Internetzugriff erlaubt werden soll, wird in den Feldern Start Time und Stop Time definiert. Hier wird die Notation hh.mm.ss verwendet, also Stunde, Minute und Sekunde. Soll die Regel von 16Uhr bis 20Uhr gelten, wird 16.00.00 und 20.00.00 eingetragen. Wird sich nicht an diese Konvention gehalten, zeigt ein Hinweis auf die Abweichung.

Wird die Option Time in UTC gewählt, werden die eingetragen Uhrzeiten nicht in der lokalen Zeitzone, sondern in der koordinierten Weltzeit interpretiert.

Mit Save wird die neue Regel gespeichert.

Hiermit lassen sich verschiedene Zeiträume definieren, in denen Jugendliche Zugang zum Internet haben. Unter der Woche lassen sich andere Zeiträume festlegen als am Wochenende.

Separate Zeitbegrenzung für einzelne Rechner Bearbeiten

Die über Ethernet angebundenen Rechner erhalten über DHCP jeweils eigene IP-Adressen. Somit lassen sich für diese eigene Firewall-Regeln definieren. So kann für die Arbeitsplatzrechner die Internetnutzung ausgedehnt werden, so dass die Jugendlichen mit dem Smartphone nur 2h täglichen Internetzugang haben, über den Arbeitsplatzrechner aber 4h. Genauso können für Jugendliche unterschiedlichen Alters separate Zeiten festlegen.

Zusätzlich zu obigen Regeln werden neue Regeln angelegt. Als Source address werden die IP-Adressen der Arbeitsplatzrechner hinterlegt. In einer Regel lassen sich mehrere Adressen hinterlegen.

Für WLAN-Geräte lassen prinzipiell ebenfalls eigene Regeln aufstellen. Dazu müssten allerdings alle Adressen aus dem DHCP-Pool (192.168.47.100-150) eingetragen werden. Oder es muss eine neue Firewallzone KidsWLAN angelegt werden, welche nur für das WLAN-Interface gültig ist. Damit lassen sich dann zeitliche Grenzen einzig für Smartphones im Jugendlichen-WLAN erstellen.

Grenzen setzen mit Custom Rules Bearbeiten

Über eigene Regeln (in den Custom Rules) lassen sich eigene Regeln mit IPTables erstellen. Ein Einführung in die Nutzung ist hier zu finden: Linux-Praxisbuch/_Linux-Firewall_mit_IP-Tables.

In dem Textfeld wird die Datei /etc/firewall.user editiert. Dies ist ein Shellskript mit der Möglichkeit, einfache Programme mit Schleifen, Variablen oder auch Bedingungen. Diese Möglichkeiten werden hier genutzt, um für alle Rechner ein Downloadvolumen zur Verfügung zu stellen.

Basis ist hier das Kommande iptables, mit dem die Regeln eingefügt werden. Dies ist ein sehr mächtiges Werkzeug, dem alle Möglichkeiten der Firewall zur Verfügung stellt.

 

IPTables verändert die Firewall-Tabellen des Routers. Prinzipiell besteht die Gefahr, dass bei fehlerhaften Regeln die Verbindung zum Router unterbrochen wird und nur ein Hard-Reset den Router wieder zugänglich macht. Daher sollte für das Netz der Jugendlichen die Standardeinstellungen aus drop stehen. Somit werden die hier erarbeiteten Regeln Ausnahmen darstellen, welche den Zugang freigeben (Accept). Die Gefahr, mit Accept-Regeln die Verbindung zum Router zu unterbinden ist gering. Im Zweifel sollte eine Anleitung, wie hier Linux-Praxisbuch/_Linux-Firewall_mit_IP-Tables besucht werden.

Die Firewall-Regeln werden in Tabellen verwaltet. OpenWRT erweitert bereits die verfügbaren Listen INPUT, OUTPUT und FORWARD und weitere Tabellen, um die Einstellungen der Firewallzonen umzusetzen. Auch die Traffic Rules werden in die entsprechenden Tabelleneinträge umgesetzt. Für den Internetverkehr ist die Tabelle forwarding_rule zuständig. In dieser Tabelle wird mit der Anweisung -I neue Einträge an den Anfang gesetzt (Insert). Mit der Anweisung -A werden die Einträge unten zugefügt.

Regeln, um Zeitgrenzen zu setzen Bearbeiten

Um ein Paket zeitabhängig zu akzeptieren, wird das time-Modul von IPTables benötigt[2]. Die Zeiten selbst werden mit den Optionen --timestart und --timestop im Format HH:MM (Stunde:Minute) festgelegt. Wochentage und Monatstage werden mit --weekdays und --monthdays festgelegt.

iptables -A forwarding_rule -o eth0.2 -i br-Kids -m time --timestart 16:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu -j ACCEPT

iptables -A forwarding_rule -o eth0.2 -i br-Kids -m time --timestart 14:00 --timestop 21:00 --weekdays Fri -j ACCEPT

iptables -A forwarding_rule -o eth0.2 -i br-Kids -m time --timestart 10:00 --timestop 21:00 --weekdays Sat -j ACCEPT

iptables -A forwarding_rule -o eth0.2 -i br-Kids -m time --timestart 10:00 --timestop 20:00 --weekdays Sun -j ACCEPT

Alle Regeln werden in der forwarding_rule eingefügt. Die Regeln treffen nur auf Pakete zu, welche den Router auf das Interface eth0.2 (Internet) verlassen und vom Interface br-Kids (bridged interface kids) kommen. Mit -m time wird das Modul time geladen. Die restlichen Regeln geben den Internetzugang zu folgenden Zeiten fest:

  1. Montag - Donnerstag von 16:00-20:00
  2. Freitag von 14:00-21:00
  3. Samstag von 10:00-21:00
  4. Sonntag von 10:00-20:00

Das time-Modul hat noch die Option --datestart und --datestop. Hiermit lassen sich Zusatzregeln einfügen, welche z.B. nur in den Ferien gültig sind. Diese müssen vor den obigen Regeln eingefügt werden, damit diese zutreffen.

Regeln, um Downloadvolumen zu setzen Bearbeiten

Zum Setzen von Downloadvolumina wird das Modul quota2 verwendet. Für OpenWRT wird das Modul quota2 genannt, ist aber analog zu verwenden zu dem quota-Paket[3].

In einer Regel wird ein Volumen definiert. Solange dieses Volumen noch nicht erreicht ist, trifft diese Regel zu. Ist das Volumen erreicht, trifft die Regel nicht mehr zu und die weiteren Einträge werden geprüft. Das Volumen wird in Bytes angegeben. Abkürzungen für Megabyte oder Gigabyte sind nicht verfügbar.

Um für jeden Jugendlichen eine eigenes Downloadvolumen zu ermöglichen, muss für jede IP-Adresse eine eigene Regel angelegt werden. Beispielhaft wird für alle Mobilgeräte (zu erkennen an der dynamischen IP-Adresse aus dem Bereich 192.168.47.100-150) pro IP-Adresse ein Downloadvolumen von 500MB eingerichtet:

for i in $(seq 100 150); do

 iptables -I forwarding_rule -i eth0.2 -d 192.168.47.$i -m quota2 --quota 500000000 -j ACCEPT

done

In der Schleife werden die Zahlen 100 bis 150 durchlaufen und für jede Zahl eine Regel eingefügt.

Ist das Volumen erst verbraucht, muss der Zähler wieder zurückgestellt werden.

Firewallregeln zurücksetzen Bearbeiten

Speziell die Regeln für das Downloadvolumen erneuern sich nicht automatisch. Sobald das Volumen aufgebraucht ist, trifft die Regel nicht mehr zu. Der Zähler muss zurückgesetzt werden.

Dies geschieht über einen Cronjob, mit dem regelmäßige Aufgaben geplant und ausgeführt werden. Die Cronjobs sind unter System/Scheduled Tasks sichtbar. Hier ist wieder ein Textfeld zu sehen, mit dem die entsprechende Text-Datei modifiziert werden kann.

Um die Zähler zurückzusetzen, gibt es zwei Möglichkeiten:

  1. Wenn die firewall.user Datei Anfangs die Tabellen löscht (-F forwarding_rule) und anschließend neu setzt, wird dieses Shell-Skript ausgeführt.
  2. Mit dem Kommando iptables -Z werden alle Zähler zurückgesetzt.

Beide Methoden haben ihre Vor- und Nachteile. Das Löschen und Neubefüllen der Tabellen ist aufwendiger, beschränkt sich aber nur auf diese Tabellen. Die zweite Methode, mit dem Zurücksetzen aller Zähler kann Nebeneffekte haben, da Zähler außerhalb dieser Tabellen auch zurückgesetzt werden.

Erweiterungen Bearbeiten

DNS-Filter Bearbeiten

Haben Jugendliche freien Zugang zum Internet, ist eine Filterung der Internetseiten sinnvoll. Für OpenWRT selbst gibt es Zusatzpakete, um Werbeseiten zu blockieren. Damit lassen sich auch Positiv- und Negativlisten erstellen. Werbeseiten sind nur lästig; dagegen sollte Jugendliche der Zugang zu Pornographie und Gewaltdarstellung reguliert werden. Hierzu werden von unterschiedlichen Seiten umfangreiche Ausschlusslisten von Webseiten, welche in diese Kategorien fallen.

Es haben sich verschiedene Projekte herauskristallisiert, welche für den Heimgebrauch solche Listen nutzen können, um DNS-Anfragen anhand solcher Listen zu filtern. Weit verbreitet ist Pi-Hole, welches auf einem separatem Rechner in der DMZ platziert wird. Die Einrichtung erfolgt analog zur Erweiterung um DNS für einzelne Subnetze.

Der DNS-Server mit der IP-Adresse 192.168.40.5 wird in der DHCP-Konfiguration eingetragen. Hierzu wird unter Network/Interface das Jugendlichen-Netz Kids editiert. Als DHCP-Options des DHCP-Servers wird der Text 6,192.168.40.5 eingetragen.

Nach Speichern und Aktivieren wird die Namensauflösung für die Jugendliche vom separatem DNS-Server vorgenommen, in welchem die Ausschlusslisten teils automatisiert verwaltet werden.

Webseiten von Zeit-/Volumengrenzen ausnehmen Bearbeiten

Ist das Downloadvolumen aufgebraucht, ist der Zugriff auf alle Dienste im Internet unterbrochen, auch auf Wikipedia oder die Lernplattformen der Schulen. Auch außerhalb der Zugangszeiten ist dieser Zugriff unterbunden.

Das allgemeine Problem bei der Namensauflösung liegt darin, dass verschiedene Dienste unter mehreren IP-Adressen erreichbar sind.

Der DNS-Server könnte so konfiguriert werden, dass einem Dienst statisch eine definierte IP-Adresse zugeordnet wird. Diese IP-Adresse kann in der Firewall dauerhaft freigegeben werden. Dies unterläuft allerdings dem Versuch der Betreiber, die Last auf verschiedene Server zu verteilen. Die Entwicklung geht auch vermehrt zu Cloud-basierten Lösungen, wo sich dann auch die IP-Adressen ändern können.

Um eine flexible Lösung zu erarbeiten, wird eine Positivliste kontinuierlich gepflegt. Dies setzt mittlere Programmierkenntnisse voraus.

Wird ein separater DNS-Server in der DMZ verwendet, muss dieser zunächst so eingerichtet werden, dass dieser den OpenWRT-Router als ausschließlichen DNS-Server verwendet. Damit lassen sich die Anfragen auf dem OpenWRT-Router analysieren.

Unter System/Software wird zunächst das Programm TcpDump installiert. Es wird eine SSH-Konsole auf dem Router geöffnet und mit vi tcpdump2log.sh im root-Verzeichnis eine neue Datei angelegt. In dieser Datei werden folgende Zeile eingefügt:

#!/bin/sh echo "" > /var/log/dns.log tcpdump -Q out --immediate-mode upd src port 53 and dst 192.168.40.5 > /var/log/dns.log

Diese Datei wird mit chmod +x tcpdump2log.sh als ausführbar markiert.

Der DNS-Server in der DMZ fragt den DNS-Dienst auf dem Router nach den Adressen. Dieser lauscht auf Port 53 mit Protokoll UDP. Jedes Datenpaket, das vom Router von Port 53 kommt und an die IP-Adresse des DNS-Servers gerichtet ist, beinhaltet eine Namensauflösung. Alle Pakete werden in einer Log-Datei /var/log/dns.log gesichert.

Für dieses Skript wird ein Init.d-Dienst eingerichtet. Hierzu wird eine Datei /etc/init.d/dns2log mit folgendem Inhalt angelegt:

#!/bin/sh /etc/rc.common START=99 USE_PROCD=1 STOP=01 start_service() { procd_open_instance "dns2log" procd_set_param command "/root/tcpdump2log.sh" procd_set_param stdout 1 procd_set_param stderr 1 procd_close_instance }

Dies ist ein Systemskript, welches später in der Web-Oberfläche unter System/Startup verwaltet werden können. Als Systemdienst eingerichtet erfolgt die Verwaltung durch OpenWRT und wird bei Neustart direkt wieder gestartet.

Damit die Log-Datei nicht zu groß wird, wird regelmäßig per Cron-Job dieser Dienst neu gestartet. Die Zeile echo "" > /var/log/dns.log sorgt dafür, dass eine leere Log-Datei erzeugt wird bzw. der alte Inhalt gelöscht wird.

Die Auswertung erfolgt mit folgendem Skript /root/dns2iptables.sh:

#!/bin/sh source /etc/dns2iptables.conf tail -f /var/log/dns.log|while read line; do if [ $(echo ${line}|grep CNAME|wc -l) -eq 1 ]; then inwhitelist="f" for wle in ${whitelist}; do if [ $(echo ${line}|grep -e ${wle}|wc -l) -eq 1 ]; then inwhitelist="t" fi done if [ ${inwhitelist} = "t" ]; then for ipa in $(echo ${line}|sed -e 's/CNAME/#/g'|cut -d# -f2|sed -e 's/,\ A/\nA/g'|grep ^A\ |cut -d\ -f2); do if [ $(iptables -n -L forwarding_in_accept|grep -e ${ipa}|wc -l) -eq 0 ]; then echo ${ipa} iptables -I forwarding_in_accept -s ${ipa} -j ACCEPT iptables -I forwarding_out_accept -d ${ipa} -j ACCEPT fi done for ipa in $(echo ${line}|sed -e 's/CNAME/#/g'|cut -d# -f2|sed -e 's/,\ A/\nA/g'|grep ^AAAA\ |cut -d\ -f2); do if [ $(ip6tables -n -L forwarding_in_accept|grep -e ${ipa}|wc -l) -eq 0 ]; then ip6tables -I forwarding_in_accept -s ${ipa} -j ACCEPT ip6tables -I forwarding_out_accept -d ${ipa} -j ACCEPT fi done fi fi done Dieses Skript macht Folgendes:

  1. Lädt die Datei /etc/dns2iptables.conf, in der eine Variable whitelist definiert ist, in der alle Ausnahmen festgelegt werden.
  2. Jede neue Zeile in der Log-Datei wird auf den Stichwort CNAME geprüft, was eine Zeile definiert, in der für einen Namen eine oder mehrere IP-Adressen geliefert werden.
  3. In einer Schleife wird geprüft, ob ein Eintrag der whitelist in dieser Zeile enthalten ist. Wenn ja, wird die Variable inwhitelist auf t gesetzt.
  4. Aus der Zeile werden alle IPv4-Adressen extrahiert.
  5. Jede IP-Adresse wird geprüft, ob diese schon in der Ausnahmeliste enthalten ist.
  6. Wenn die IP-Adresse nicht in der Firewall enthalten ist, werden neue Einträge für die In- und Out-Liste eingefügt.
  7. Diese Prüfung wird für IPv6-Adressen wiederholt.

Auf für dieses Skript wird ein Init.d-Eintrag unter /etc/init.d/dns2iptables erzeugt:

#!/bin/sh /etc/rc.common START=99 USE_PROCD=1 STOP=01 start_service() { procd_open_instance "dns2iptables" procd_set_param command "/root/dns2iptables.sh" procd_set_param stdout 1 procd_set_param stderr 1 procd_close_instance }

Zeitschaltung für Wlan Bearbeiten

Wurde für die Jugendlichen ein eigenes WLAN-Netzwerk eingerichtet, sieht OpenWRT aktuell keine Möglichkeit vor, dieses einzelne Netzwerk zeitlich gesteuert ein- bzw. auszuschalten. In den Hacks zu diesem Wikibook ist eine Beschreibung vorhanden, wie auf der Konsolen-Ebene dennoch einzelne SSID geschaltet werden können: Heimrouter-Kochbuch/ Hacks

Mit dem dort vorgestellten Skript kann über die Aufgabenplanung (scheduled task) das Netzwerk der Jugendliche zu bestimmten Zeitpunkte geschaltet werden.

Referenzen Bearbeiten

 
A subnet for Kids with ethernet and wifi is established, with IP addresses from same IP subnet.
  1. https://www.sueddeutsche.de/gesundheit/haltungsschaeden-durch-technik-aerzte-warnen-vor-dem-smartphone-nacken-1.2231463
  2. https://ipset.netfilter.org/iptables-extensions.man.html#lbCH
  3. https://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-3.html#ss3.13