Heimrouter-Kochbuch/ Einsatzbeispiele/ Basis Internet

Dieses Einsatzbeispiel ist geprüft für folgende OpenWRT-Versionen:

  • 19.07
  • 21.02-rc2

Beschreibung Bearbeiten

 
Interne Adapter eines OpenWRT Routers

Verschiedene Einstellungen sind bei allen Konfigurationen ähnlich und werden vorgenommen bevor das eigentliche Szenarium umgesetzt wird. Diese Einstellungen beziehen sich zunächst nur auf den Router und dessen Betriebssystem.

Es wird zunächst davon ausgegangen, dass zu Beginn keine Internetverbindung existiert.

Bei einem frisch installierten OpenWRT-System sind bereits zwei Netzwerkschnittstellen vordefiniert, die im Folgenden genutzt werden (siehe nebenstehende Skizze):

  • wan (und wan6): Diese Schnittstelle ist für die Verbindung zum Internet vorgesehen und verwendet die mit Internet beschriftete Buchse am Router.
  • lan: Diese Schnittstelle ist für das interne Netzwerk vorgesehen und verwendet die mit Lan versehenen Ports am Router.

Ein WLAN ist zunächst nicht konfiguriert. Die verfügbaren Schnittstellen sind mit radio0, radio1 etc. bezeichnet. Verwendet der Router nur ein WLAN-Band (z.B. bei 2,4GHz), dann ist nur eine Schnittstelle vorhanden. Bei Multiband-Router existiert pro Band eine eigene Schnittstelle.

Einrichten Bearbeiten

Vorbereiten Bearbeiten

Bevor der Router mit dem Internet verbunden wird, werden verschiedene allgemeine Einstellungen vorgenommen. Der Router muss hierzu noch nicht mit dem Internet verbunden sein.

System/System Bearbeiten

Unter den Allgemeinen Einstellungen (General Settings) wird der Hostname den eigenen Wünschen gemäß eingetragen. Unter diesem Namen ist der Router später im Netzwerk erreichbar.

Die Uhrzeit kann hier mit dem Browser synchronisiert werden. Unter dem Reiter Time Synchronization wird direkt der automatische Abgleich mit Zeitservern konfiguriert, so dass eine Synchronisation mit dem Browser nicht notwendig ist.

Es sind bereits einige Zeitserver eingetragen, die vom NTP-Pool-Projekt für OpenWRT zur Verfügung gestellt werden. Es sind 4 Zeitserver der Domain openwrt.pool.ntp.org eingetragen[1]. Für die Zeitsynchronisierung sollten Zeitserver verwendet werden, welche geographische bzw. netztopologisch in der Nähe sind. Daher können direkt Zeitserver aus Deutschland verwendet werden, die auf der Seite des NTP-Pools bezeichnet werden: https://www.ntppool.org/zone/de

Die Einträge für die Zeitserver werden geändert, so dass die deutsche NTP-Pool-Domäne verwendet wird: X.de.pool.ntp.org, wobei X eine Ziffer von 0 bis 3 ist.

Zusätzlich sollte ein Zeitserver des eigenen Internet-Provider verwendet werden, da dessen Zeitserver netztopologisch nah am eigenen Zugang liegen dürften. Eine (alte) List ist hier zu finden: https://www.zeitserver.de/deutschland/zeitserver-der-deutschen-provider/

In einer Internet-Recherche sind weitere öffentliche NTP-Server zu finden, welche von öffentlichen oder privaten Institutionen zur Verfügung gestellt werden. Hier ist es teilweise erwünscht, die Nutzung zumindest per E-Mail anzufragen.

Die Zeitzone wird eingerichtet. In Deutschland ist dies Europe/Berlin.

Unter dem Reiter Logging sind zunächst keine weiteren Einstellungen vorzunehmen. Auch die Log-Level sind mit Debug im Rahmen der Einstellungen zunächst in Ordnung. Somit werden Fehler ausführlicher in den Log-Nachrichten beschrieben.

Unter dem Reiter Language and Style wird die Systemsprache und das Aussehen eingestellt. Bei Beginn ist nur Englisch vollständig vorhanden. Auch wenn unter Software weitere Sprachpakete installiert werden können, kann die Übersetzung für einzelne Pakete fehlen. Ebenso können unter Software weitere Design-Pakete ausgewählt werden, welche die Darstellung der Web-Seite modifizieren.

System/Administration Bearbeiten

Unter der Administration wird der Zugang zum Router verwaltet.

Der Reiter Router Password wird verwendet, um das Root-Passwort zu ändern. Dieses Passwort wird für den Zugang über die Weboberfläche als auch für den Nutzer root über einen SSH-Zugang verwendet. Für die Einrichtung wird ein vereinfachtes Passwort verwendet. Später wird ein komplexeres Passwort eingerichtet.

 

Der Zugriff auf die Web-Oberfläche erfolgt zunächst unverschlüsselt. Dies muss bei der Wahl des Passwortes berücksichtigt werden. Später wird TLS installiert; ab diesem Zeitpunkt ist das Passwort vor Belauschen sicherer.

Unter dem Reiter SSH Access wird der SSH-Zugang auf den Router verwaltet. Der Nutzer muss zunächst überlegen, ob ein Zugang über SSH überhaupt gewünscht wird. Soll die Verwaltung ausschließlich über die Web-Oberfläche stattfinden, kann der SSH-Zugang zunächst deaktiviert werden (Aktion delete im rechten Bereich). Der SSH-Zugang kann später bei Bedarf wieder eingerichtet werden.

Ist ein SSH-Zugang gewünscht, können mehrere Instanzen angelegt und verwaltet werden. Von Beginn an ist eine Instanz verfügbar, welche einen SSH-Zugang auf Port 22 über das interne Netzwerk lan ermöglicht. Diese Einstellung kann zunächst direkt übernommen werden. Der Port muss nicht geändert werden, da vom internen Netzwerk zunächst keine Gefahr ausgeht, welche den SSH-Zugang ernsthaft gefährden kann.

Existieren bereits SSH-Schlüssel, welche für die Authentifizierung verwendet werden können, muss die Password authentication nicht ausgewählt werden, statt dessen wird der öffentliche Schlüssel im Reiter SSH-Keys hinterlegt.

Dem Nutzer root sollte der Zugang ermöglicht werden, schließlich wird die Weboberfläche mit dem gleichen Passwort gesichert.

Bei einem SSH-Zugang von innen auf den Router ist ein Gateway zunächst nicht notwendig und kann deaktiviert bleiben.

System/Backup Bearbeiten

Nach der ersten Einrichtung kann die aktuelle Konfiguration als Backup gesichert werden.

Internetzugang Bearbeiten

Nach den Vorbereitungen wird der Internetzugang eingerichtet. Der Router wird hierzu gemäß Anleitung vom Internet-Provider angeschlossen. Die Zugangsdaten werden benötigt.

Network/Interfaces Bearbeiten

Unter Interfaces sind bei Beginn nur wan/wan6 in rot und lan in grün aufgelistet[2]. Die Interfaces wan/wan6 stellen den Internetzugang dar. Bevor die Internetverbindung etabliert wird, kann das interne Netzwerk eingerichtet werden. Für alle Interfaces stehen unter Edit die gleichen Optionen zur Verfügung und es gibt keinen Unterschied zwischen dem Internetzugang und dem internen Netzwerk. Die Unterschiede werden dann in der Konfiguration erstellt.

lan Bearbeiten

Spätestens an dieser Stelle muss eine Idee für die Strukturierung des internen Netzwerks vorliegen. Obwohl viele Parameter später verändert werden können, sind manche Änderungen aufwendiger. Für das interne Netzwerk wird als Standard-Einstellung ein privates Netzwerk mit dem IP-Raum 192.168.0.X definiert. Soll später dieses Netzwerk geändert werden, können bisher angemeldete Geräte in einer Übergangszeit nicht erreichbar sein.

Da der IP-Raum 192.168.0.X sehr oft verwendet wird, empfiehlt es sich, das interne Netzwerk auf einen anderen Bereich zu legen. Für die private Nutzung sind verschiedene IP-Räume vorgesehen. Bekannt sind die 192.168.-Netzwerke. Für die private Nutzung lassen sich IP-Räume von 192.168.0.X bis 192.168.255.X verwenden. Alternativ kann auch ein privates Netzwerk von 172.16.X.Y bis 172.32.X.Y oder 10.X.Y.Z verwendet.

Der IP-Raum für das interne Netzwerk wird über die IP-Adresse des Routers und der Netzmaske definiert. Das Interface ist bereits als static address eingestellt, wodurch die IP-Adresse manuell eingestellt werden kann. Dies erfolgt in den Feldern drunter. Für dieses Szenarium wird der Router auf die IP-Adresse 192.168.42.2 verwendet. Als Netzmaske wird das voreingestellte 255.255.255.0 übernommen. Dies kennzeichnet, dass die ersten drei Stellen zum Netzwerk gehören. IP-Adressen ausserhalb dieses Netzwerks werden über das Gateway weitergeleitet.

Wird das Feld für das Gateway leer gelassen, wird dieses später automatisch vom Router gesetzt.

Das Feld für ein DNS-Server wird leer gelassen. Damit werden DNS-Anfragen aus dem Netzwerk zunächst vom Router beantwortet. Der eigene DNS-Dienst ist bereits konfiguriert und wird DNS-Anfragen beantworten.

Unter dem Reiter Physical Settings wird kontrolliert, ob das Interface lan ein bridged interface ist. Dann können später weitere physikalische Netze, wie ein WLAN-Netz, hinzugefügt werden. Wenn mehrere physikalische Netzwerke vorhanden sind, können diese unter Schnittstellen zugefügt werden.

Im Reiter DHCP Server wird der dnsmasq-Dienst konfiguriert. Dieser Dienst weist Geräten, die sich im Netzwerk anmelden, eine IP-Adresse zu, unter der dieses Gerät erreichbar ist. In den Feldern Start und Limit werden die Grenzen des Adressraum festgelegt, aus dem der dnsmasq-Dienst IP-Adressen vergeben darf. Werden die Werte 100 und 150 eingetragen, darf der dnsmasq-Dienst IP-Adressen von 192.168.42.100 bis 192.168.42.150 für neue Geräte verwenden. Dieser Bereich muss in der weiteren Konfiguration beachtet werden. Einzelnen Geräten, wie ein Netzwerkdrucker, können feste IP-Adressen vergeben werden; diese dürfen dann nicht aus diesem Bereich kommen, da es sonst zu Kollisionen kommen kann.

Weitere Einstellungen müssen zunächst an dieser Stelle nicht vorgenommen werden.

Die Änderungen werden übernommen. Dies muss noch einmal separat übernommen werden. An dieser Stelle wird es passieren, dass die Verbindung zunächst abbricht, da im Browser die neue IP-Adresse eingegeben werden muss (in diesem Beispiel 192.168.42.2).

wan Bearbeiten

Das wan-Interface wird mit dem Internet verbunden[3]. Die Konfiguration ist identisch zur Konfiguration des lan-Interface (siehe oben). Folgende Optionen sind möglich:

Integriertes DSL-Modem
Ist ein DSL-Modem eingebaut, wird als Protokoll PPPOE ausgewählt.
Externes DSL-Modem
Wird ein externes DSL-Modem verwendet, wird das Protokoll PPP ausgewählt.
DSL-Router vom Provider oder LTE-Router
Bei einem separatem Router wird in der Regel ebenfalls ein DHCP-Server eingesetzt, so dass hier das Protokoll DHCP eingetragen wird.

Bei all diesen Konfigurationen erhält der Router wesentliche Verwaltungsdaten von der Gegenstelle, mit denen die eigenen Dienste konfiguriert werden. Unter anderem die zu verwendeten DNS-Server.

Wurde das Protokoll geändert, muss zunächst über die Aktion Switch Protocoll dieses bestätigt werden. Erst dann erscheinen Eingabefelder, um die Zugangsdaten vom Internet-Provider einzutragen. Weitere Einstellungen sind zunächst nicht vorzunehmen.

Die weiteren Reiter werden kurz kontrolliert, ob hier noch Einstellungen vorzunehmen sind. Für die erste Inbetriebnahme sind hier keine weiteren Einstellungen vorzunehmen.

Wurde diese Einstellungen gespeichert, ist oben rechts hellblau hinterlegt, dass nicht-aktivierte Änderungen vorliegen. Ein Klick auf diesen Hinweis öffnet ein Fenster mit den Änderungen. Diese Änderungen können somit noch kontrolliert werden und im Zweifel mit der roten Aktion Reset zurückgenommen werden. Mit der blauen Aktion Save & Apply werden die Änderungen gespeichert und sofort angewendet.

In der Übersicht wird für das Interface wan jetzt angezeigt, ob eine Verbindung besteht. Wird die Verbindung mit dem Provider ausgehandelt, kann es ein paar Sekunden dauern, bis die Verbindung aufgebaut wird. Der Verbindungsaufbau wird im Log gesichert. Im Fehlerfall kann im System-Log (Status/System Log) der Fehlertext ermittelt werden.

Testen der Verbindung Bearbeiten

Ist die Internetverbindung über das Interface wan eingerichtet und anscheinlich funktionsfähig, lässt sich ein erster Test mit den Netzwerktools vornehmen, die unter Network/Diagnostic zu finden sind.

Dort werden die drei Werkzeuge Ping, traceroute und nslookup bereitgestellt, welche über ein Formularfeld die Seite openwrt.org testen.

Ein Ping prüft, ob eine Verbindung mit diesem Server funktioniert. Hierzu muss zunächst die Namensauflösung funktionieren. Die Ausgabe des Kommandozeilenprogramms wird nach Beenden der Prüfung angezeigt. War die Namensauflösung erfolgreich, wird die IP-Adresse angezeigt, die dem Namen zugeordnet wurde, anschließend die Zeit für die Antwort des Pings.

Mit Traceroute wird versucht, alle Zwischenpunkte vom Router zum Ziel zu erfassen.

Die Namensauflösung wird mit Nslookup geprüft. Als Antwort wird der DNS-Server mitgeteilt, welcher die Antwort lieferte als auch die IP-Adressen unter der dieser Dienst erreichbar ist. Bei verschiedenen Seiten, wie Google kann jede Anfrage eine andere IP-Adresse zurückliefern, um die Last auf die Server zu verteilen.

Zusätzlich kann über andere Werkzeuge die Internetverbindung getestet werden, ganz einfach, indem ein weiterer Tab im Webbrowser geöffnet wird und eine Internetseite der eigenen Wahl besucht wird (z.B. www.wikipedia.org)

Absichern des Administrationszugangs [4] Bearbeiten

System/Software / TLS einrichten Bearbeiten

Ab Version 21.02 ist TLS bereits vorinstalliert.

Bei älteren Installationen wird TLS wie folgt nachinstalliert:

Die verfügbaren Softwarepakete sind unter System/Software einzusehen. Mit der Aktion Update lists ist zunächst die aktuelle Liste von OpenWRT herunterzuladen. Anschließend erscheint unten die vollständige Liste aller Softwarepakete.

Im Textfeld Filter wird der Suchtext ssl (oder auch tls) eingetragen und mit der Enter-Taste bestätigt. Es werden nur noch die Programme mit diesem Suchtext angezeigt. In dieser Liste ist das Paket luci-ssl enthalten. Mit der Aktion Installl erscheint eine Abfrage, in der notwendige Pakete aufgelistet sind. Fehlen noch einzelne Programme, werde diese mitinstalliert.

Unter dem Reiter Updates werden die Pakete gelistet, für welche ein Update vorhanden ist. Zunächst muss jedes Paket einzeln installiert werden. Eine Möglichkeit, dies in einem Arbeitsgang zu erledigen ist im letzten Kapitel Hacks beschrieben.

System/Startup / TLS aktivieren Bearbeiten

Unter System/Startup sind alle von initscripts verwalteten Dienste aufgelistet. Die Verwaltung beschränkt sich darauf, den Start der Dienste zu beeinflussen. Die Konfiguration erfolgt an anderen Stellen.

Mit der Aktion Enabled wird der Status verändert. Aktivierte (Enabled) Dienste werden beim Start des Routers automatisch gestartet. Mit den weiteren Aktionen Start, 'Restart, Stop können diese Dienste entsprechend beeinflusst. werden.

Nach Installation des Paketes luci-ssl ist ein Neustart des Dienstes uhttpd mit der Aktion Restart notwendig. Dieser Dienst ist der Webserver auf dem Router.

Der anschließende Verbindungsversuch auch die Seite https://{Router-IP} führt zunächst auf eine Warnseite. Das installierte TLS-Paket verwendet selbstsignierte Zertifikate, welche im Internet mit Vorsicht zu geniessen sind. Im heimischen Bereich akzeptieren wir dieses selbstsignierte Zertifikat.

System/Administration / Passwort ändern Bearbeiten

Nach der Umstellung auf TLS, ist die Übertragung der Zugangskennung gesichert. Ab jetzt kann ein sicheres Passwort verwendet werden, das der Admin sich gut merken kann.

System/Backup Bearbeiten

Ist die Internetverbindung erfolgreich und die Basiskonfiguration erfolgt, wird die Konfiguration über System/Backup gesichert. Mit der ZIP-Datei kann im Fehlerfall die aktuelle Konfiguration wieder eingespielt werden.

Wartung Bearbeiten

Regelmäßig müssen die Pakete auf dem Router aktualisiert werden. Sind die Intervalle kurz genug, ist der Aufwand überschaubar.

Ist der SSH-Zugang eingerichtet, kann die Aktualisierung auch mit dem Hack im letzten Kapitel angestossen werden. Es wird zunächst die Liste der aktualisierbaren Pakete geholt. In einer Schleife wird jedes Paket in dieser Liste aktualisiert.

In größeren Zeitintervallen wird von OpenWRT ein neues Image freigegeben. Ist das neue Image auch für den eigenen Router freigegeben, kann dieses neue Image unter System/Backup Flash Firmware mit der Aktion Flash image hochgeladen werden. Es erfolgt die Abfrage, ob die aktuelle Einstellung beibehalten werden soll oder eine rohe Fassung eingespielt werden soll. Im letzteren Fall muss die komplette Konfiguration wiederholt werden.

 

Die Konfiguration wird in der Regel bei einem Upgrade übernommen. Aber andere Erweiterungen oder Änderungen können bei einer neuen Firmware verloren gehen. Diese sind dann über ein Backup wieder einzuspielen.

Härtung Bearbeiten

OpenWRT ist bereits vom Start an relativ sicher eingestellt[5]. Aus dem Internet (Interface wan) werden Anfragen von der Firewall verworfen. Nur wenige Anfragen werden akzeptiert, unter anderem Ping-Anfragen. Diese Ausnahmen werden unter Network/Firewall/Traffic Rules definiert. Werden die Regeln ausgeschaltet, dann werden auch Pings aus dem Internet nicht mehr beantwortet. Das Deaktivieren dieser Regeln erhöhen die Sicherheit nur marginal.

Oben wurde die Umstellung der Weboberfläche zur Nutzung von SSL beschrieben. Da zur Konfiguration von OpenWRT nur ein Konto mit vollen Administrationsrechten vorgesehen ist, ist der Zugang zu diesem Konto abzusichern. Für den Root-Zugang über SSH wird das gleiche Passwort verwendet wie für den Konfigurationszugang über die Weboberfläche. Dies setzt den Möglichkeiten, unbefugten Zugriff noch weiter zu reduzieren, gewisse Grenzen.

Sicherheitsgefahren können bei der Einstellung nur noch aus dem internen Netzwerk kommen. Entweder durch einen boshaften Gast, welcher bewusst den Router kapern möchte oder durch Schadsoftware auf dem eigenen Rechner. Ein Zugang per Passwort kann mit Public-Key-Authentifizierung abgeschaltet werden. Dies reduziert die Gefahr von Brute-Force-Angriffen allerdings nur auf den SSH-Zugang. Da die Weboberfläche nur mit einem Passwort abzusichern ist, besteht hier immer noch die Möglichkeit von Brute-Force-Angriffen.

Ein paar Möglichkeiten verbleiben, um auch aus dem internen Netzwerk Zugriffsversuche auf die Administration des Routers zu reduzieren:

Wahl des Passwortes Bearbeiten

Es versteht sich von selbst, für den Zugang ein sicheres Passwort zu wählen. Dieses Passwort sollte aus einem ausreichend großen Pool kommen. Werden nur Kleinbuchstaben verwendet (25 Zeichen), dann gibt es bei einer Länge von 8 Buchstaben in Summe 152Milliarden Kombinationen. Werden zusätzlich Großbuchstaben verwendet, erhöht sich die Basis auf 50 verfügbare Zeichen und bei 8 Zeichen um den Faktor 256 auf ca. 4Billionen Kombinationen. Mit Ziffern und Sonderzeichen erhöht sich dieser Raum zusätzlich. Werden neben allen Groß- und Kleinbuchstaben auch die Ziffern und weitere Sonderzeichen verwendet, erhöht sich die Basis auf ca. 80 verfügbare Zeichen. Mit 8 Zeichen werden ca. 2E15 Kombinationen erreicht. Mit nur den Kleinbuchstaben benötigt man für die gleiche Anzahl an Kombinationen mindestens 11 Zeichen.

Durch Wahl der verfügbaren Zeichen und Länge des Passwortes wird der Raum der verfügbaren Passwörter deutlich erhöht. Zudem sollte natürlich das Passwort keinem anderen Passwort ähneln, dass verwendet wird.

Einschränken des Zugangs Bearbeiten

Der Zugang zur SSH-Instanz lässt sich über System/System/SSH Access regulieren, so dass nur aus dem eigenen, internem Netzwerk der Zugriff erfolgen darf. Der Zugriff aus dem Gastnetz wird dann nicht gestattet. Zusätzlich kann für den Zugang auf Public-Key-Authentifizierung umgestellt werden. Bei Nutzung des SSH-Zugangs wird das Passwort nicht mehr benötigt.

Um für die Web-Oberfläche einen vergleichbaren Schutz zu ermöglichen, wird für jedes interne Netzwerk eine neue Regel über Network/Firewall/Traffic Rules eingefügt. Der Zugriff aus diesem Netz auf den den Router this device mit dem Port 443 wird abgelehnt (reject oder drop).

Abschließende Bemerkung Bearbeiten

Zu diesem Zeitpunkt ist der Router soweit eingerichtet, dass Geräte, welche mit einem internen Port verbunden sind und DHCP nutzen, sofort Zugang zum Internet haben.

Die Administrationsoberfläche ist mit TLS soweit abgesichert, dass die Übertragung des Passwortes verschlüsselt erfolgt.

Weitere Einstellungen können gemäß der eigenen Wünsche erfolgen. In den weiteren Einsatzszenarien werden verschiedne Möglichkeiten dargestellt.

Referenzen Bearbeiten

  1. https://openwrt.org/docs/guide-user/advanced/ntp_configuration
  2. https://openwrt.org/docs/guide-user/base-system/clarifying_interface_usage
  3. https://openwrt.org/docs/guide-user/network/openwrt_as_routerdevice
  4. https://openwrt.org/docs/guide-user/security/openwrt_security#i_am_expert_show_me_some_extra_hardening
  5. https://openwrt.org/docs/guide-user/security/openwrt_security#i_am_expert_show_me_some_extra_hardening