Multifunktionsgerät
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Ein Router ist ein Verbindungsrechner, der Daten zwischen Netzwerken vermittelt.
In einem Hardware-Router sind die benötigten Hardware-Komponenten, wie das DSL-Modem, diverse Schnittstellen, ein Netzwerk-Switch und über Software realisierte Funktionen wie ein DHCP-Server (engl.: Dynamic Host Configuration Protocol), NAT (engl.: Network Address Translation), ein DNS-Cache (engl.: Domain Name System), eine Firewall und ggf. weitere Funktionen wie z.B. Datei-Server oder Telefonanlage in einem einzigen Gerät vereint.
Unter Ubuntu lassen sich die Software-Funktionen ebenfalls realisieren. Dieser Artikel bildet die Grundlage für weitere Artikel zu dem Thema hier im UU-Wiki, welche konkret auf die Konfiguration der Zusatzfunktionen eingehen:
Die Einrichtung der Grundfunktion eines Routers auf einem Ubuntu-Rechner wird im Artikel Router/Routing-Funktion behandelt.
DHCP-Server¶
Nach der Grundfunktion eines Routers ist die wichtigste Zusatzfunktion eines Router-Multifunktionsgerätes der DHCP-Server, mit dessen Hilfe die angeschlossenen Rechner/Geräte automatisch eine funktionierende Netzwerkeinstellung für das Protokoll IPv4 erhalten.
Dazu muss der DHCP-Server jedem bei ihm anfragenden Teilnehmer diese Informationen übermitteln:
eine für den Teilnehmer individuelle IPv4-Adresse
die IP-Adresse einer Gegenstelle, über welche der Teilnehmer andere Rechner erreichen kann
Zur Verbesserung des Komforts werden regelmäßig noch diese Informationen zusätzlich übermittelt:
Größe des lokalen Netzwerks in Form einer Netzmaske: Damit kann der Rechner mit anderen Teilnehmern im lokalen Netzwerk direkt ohne Vermittlung durch den Router kommunizieren.
Leitwege zu anderen Netzen: In der Regel wird mindestens eine default-Route mitgeteilt.
Einen oder mehrere DNS-Namensserver: Damit kann der Rechner symbolische Namen wie ubuntuusers.de verwenden, welche ein DNS-Namensserver in numerische IP-Adressen übersetzt.
Möglich sind noch viele weitere Optionen wie beispielsweise Rechnername, Zeitserver, Dateiserver.
Der Artikel Router/DHCP-Server beschreibt die Konfiguration eines solchen DHCP-Servers.
Bei IPv6 ist die Verwendung eines DHCP-Servers für die Adresszuweisung an einzelne Rechner unüblich, da jeder Rechner aus vom Router angekündigten Netzwerk-Präfix und Routen per SLAAC seine IPv6-Adresse selbst festlegen kann. Zur Ankündigung der Informationen im Netzwerk kann man das Programm radvd verwenden oder auch systemd-networkd oder NetworkManager. Eine Möglichkeit per DHCPv6 ganze Netzwerke zuzuweisen beschreibt der Artikel Präfix-Delegation.
NAT¶
Oft besitzt man selber keine im Internet verwendbaren IPv4-Adressen. Der eigene Router bekommt vom ISP lediglich eine einzige IPv4-Adreese verliehen und auch diese meist nur für maximal 24 Stunden. Mit dieser einen öffentlichen IPv4-Adresse kann man zwar alles im Internet erreichen, aber dafür nur ein einziges Gerät gleichzeitig benutzen. Der DHCP-Server kann dann nur private IPv4-Adressen an die Teilnehmer im lokalen Netzwerk ausgeben und der Router muss für den Übergang ins Internet die privaten Adressen in seine einzige eigene öffentliche IPv4-Adresse übersetzen, damit zeitgleich mehrere Geräte Gegenstellen im Internet erreichen können. Diese Technik heißt NAT, hat viele technische Nachteile (siehe dazu die unten verknüpften Verweise), ist aber leider beim Protokoll IPv4 unbedingt erforderlich.
Einer der Nachteile von NAT (LAN → Internet) ist die fehlende Erreichbarkeit eines Servers im lokalen Netzwerk (d.h. aus Sicht des Internets „hinter einem NAT“) aus dem Internet. Wer diese Funktionalität benötigt, muss wegen des ersten NATs noch ein weiteres NAT in der Gegenrichtung (LAN ← Internet) schalten, dieses wird auch als Portfreigabe oder Portweiterleitung bezeichnet.
Der Artikel Router/NAT enthält technische Hinweise zur Konfiguration beider NAT-Arten.
DNS-Cache¶
Eine weitere optionale, aber für ein Router-Multifunktionsgerät sinnvolle Funktion ist ein DNS-Server (engl.: Domain Name System), welcher die im Internet gebräuchlichen DNS-Namen wie beispielsweise Wiki.UbuntuUsers.de übersetzt in die technischen IP-Adressen, im Beispiel 213.95.41.4
.
Ein eigener DNS-Server erfüllt im lokalen Netzwerk zwei Aufgaben:
Für die eigenen Rechner im lokalen Netzwerk können symbolische Namen definiert werden, über die die Teilnehmer dann erreichbar sind. Dies erspart den Benutzern den Gebrauch von IP-Adressen. Man benötigt dazu eine eigene Domain, welche man bei einem Registrar (z.B. nic.at 🇦🇹, DENIC 🇩🇪, SWITCH 🇨🇭) registrieren, aus den allgemein freigegebenen Namen auswählen (s. RFC 6761, 2606) oder sich einfach aneignen kann. Für die letzte, nicht empfohlene Variante sind gebräuchlich Namen mit diesen Endungen: .corp, .home, .internal, .intranet, .lan, .private, fritz.box, .local (auch für Multicast-DNS wie Avahi).
Der DNS-Server leitet Anfragen für ihm nicht selbst bekannte Namen weiter an andere DNS-Server (Forwarder) im Internet und speichert deren Antworten in seinem Cache. Spätere Anfragen der gemerkten Namen können dann schneller bedient werden.
Wenn ein solcher DNS-Server auf dem Router-Multifunktionsgerät arbeitet, dann gibt man auf jedem Rechner im eigenen Netzwerk immer nur die IP-Adresse des eigenen Routers als DNS-Server an. Zu diesem Zweck veröffentlicht in der Regel der Router per DHCP sich selbst als DNS-Server.
Wenn man ein VPN benutzt, kann im Interesse der Vertraulichkeit dagegen eine Deaktivierung des DNS-Servers auf dem Router wichtig sein; und ebenso wichtig ist es dann auf den Clients auch die DNS-Abfragen durch den Tunnel zu schicken. Wenn man dies nicht macht, kann ein Abhörer den DNS-Verkehr im Klartext mitlesen und daraus auf die besuchten Stellen im Internet Rückschließen.
Zur Konfiguration eines DNS-Servers lese man den Artikel Router/DNS-Server.
Firewall¶
Eine Firewall (dt. Brandmauer, aber die deutsche Bezeichnung ist in diesem Kontext nicht gebräuchlich) soll zwei Bereiche voneinander trennen, so dass in einem Bereich vorhandene gefährliche Zustande nicht in den anderen gelangen können. Im Kontext eines Routers auf der Grenze zwischen dem Internet und dem privatem Bereich (sog. Border-Router) sind dies genau die zu trennenden Bereiche.
Ein Firewall auf der Grenze soll also sowohl uns vor aus dem Internet empfangenen unsinnigen (aber dennoch als Waffe zu gebrauchenden!) IP-Paketen schützen, als auch das Internet vor solchen von unserem Router irrtümlich ausgesendeten IP-Paketen bewahren. Das ist eine andere Aufgabenstellung als die im Artikel Personal Firewalls beschriebene und erfordert daher auch eine andere Lösung.
Konzeption und Betrieb eines Firewall bedarf grundsätzlich immer einer vorherigen individuellen Bedarfsanalyse. Die hier folgenden technischen Hinweise können eine individuelle Betrachtung und Konfiguration nicht ersetzen, sondern sollen nur zur Veranschaulichung anhand eines Beispiels dienen, und auch dieses speziell nur für Paketfilter als Firewall.
Es gibt einige allgemeine Kriterien, welche IP-Pakete von einem Border-Router verworfen werden sollten bzw können:
Aus Internet eingehenden Verkehr filtern¶
Fachsprachlich wird hierfür das englische Wort "ingress" verwendet.
IP-Pakete nach den folgenden Kriterien 1-6 taugen nur zu Angriffen gegen uns oder wenn unser Router darauf mit Fehlermeldungen antwortet gegen andere Stellen im Internet. Sie werden daher am besten so früh wie möglich, jedenfalls vor dem Routing weggeworfen. Kriterium 7 ist ein verschärfter Ersatz für ein "Reverse Path Filter" nach RFC 3704. Außerdem sind noch die Pakete gemäß 8 - 10 verdächtig und sollten unterdrückt werden, sofern man sie nicht verwendet.
Verwendung unserer eigenen externen IP-Adresse(n) durch Außenstehende und
unserer eigenen internen IP-Adressen als Absender-Adressen sind unzulässig.
Verwendung von "Martian"- und Multicast-IP-Adressen als Absender-Adressen sind generell im Internet unzulässig und
"Martian"-IP-Adressen sind ebenso als Empfänger-Adressen unzulässig.
Multicast-IP-Adressen als Empfänger-Adressen sind unsinnig, wenn unser Gerät kein Multicast-Router ist.
IP-Pakete der Art "directed broadcast" sind im Internet unsinnig.
IP-Pakete an unsere eigene externe IP-Adresse(n) dürfen nur von authentifizierten Absendern stammen. Authentifizierte Absender sind solche,
von denen eine Antwort erwartet wird, weil wir sie vorher angesprochen haben, sowie
optional die als statische Einträge auf unserer weißen Liste stehen, sowie
optional die sich vorher angemeldet haben und daher als temporäre Einträge auf unserer weißen Liste stehen.
IP-Pakete mit der Option "source routing" können zur Ausspähung des Netzwerkes hinter dem Router missbraucht werden und werden deshalb gerne gesperrt.
SNMP (161/UDP und 162/UDP) darf nur von authentifizierten Absendern stammen. SNMP steht englisch für "Security in Not My Problem/Priority" (früher: "Simple Network Management Protocol") und meint „Sicherheit ist nicht meine Aufgabe“ bzw. „Einfaches Protokoll zur Netzwerkgeräte-Verwaltung“. Seine provisorische Einführung im Jahre 1990 verhindert bis heute ein sicheres Protokoll für diese Aufgaben. SNMP kann zur Ausspähung des Netzwerkes hinter dem Router missbraucht werden und natürlich auch zur Konfiguration des Routers. Wer es nicht selbst benutzt, sollte diese Ports hart sperren um zu verhindern, dass solche IP-Pakete aus dem Internet an nachgeschaltete Hardware mit ggf. eingebauter SNMP-Funktionalität gelangen.
ICMP-Pakete können zur Ausspähung des Netzwerkes hinter dem Router missbraucht werden und werden deshalb gerne gesperrt. Man sollte das nicht generell machen, sondern höchstens für bestimmte Arten von ICMP. Manche ICMP-Nachrichten sind unbedingt erforderlich für eine störungsfreie Kommunikation per IP.
Martian¶
"Martian"-IP-Adressen sind solche IP-Adressen, welche im Internet genau so fremdartig wirken wie Mars-Menschen auf der Erde. Dazu gehören die bekannten privaten IP-Bereiche und einige weitere für spezielle Zwecke reservierte IP-Adressen. RFC 6890 listet diese auf. Wer keinen Multicast-Router betreibt, darf dieser Liste noch die Multicast-IP-Adressen hinzufügen:
Martians bei IPv4:
0/32 10/8 127/8 169.254/16 172.16/12 192.168/16 192/24 192.0.2/24 198.51.100/8 203.0.113/24 224/4
240/4
Martians bei IPv6:
::/3 2001::/23 2001::/32 2001:2::/48 2001:10::/28 2001:db8::/32 2002::/16 4000::/2 8000::/1
Die Liste für IPv6 berücksichtigt RFC 6890 und dass bisher nur IPv6-Adressen aus dem Bereich 2000::/3
für den Gebrauch im Internet vergeben wurden (Stand 2021). Es gibt lediglich den einen Sonderfall 64:ff9b::/96
für IPv4/IPv6-Übersetzer, die nur dann besonders zu berücksichtigen sind, wenn man auch solche Funktionen verwendet.
Ins Internet abgehenden Verkehr filtern¶
Fachsprachlich wird hierfür das englische Wort "egress" verwendet.
Hierfür relevant sind Regeln 2 - 6 in voraus stehender Liste. Diese sind sinnvoll als Vorsichtsmaßnahme gegen mögliche eigene Fehlkonfiguration. Die Aussendung von IP-Paketen mit im Internet unzulässigen Adressen kann zu Sanktionen durch den eigenen Internet-Provider führen, weshalb manche die egress-Filterung als noch wichtiger als die ingress-Filterung ansehen.
Im Artikel Router/Paketfilter findet man Hinweise zur technischen Realisierung und auch ein Beispielskript.
Weitere Funktionen¶
WLAN-Zugangspunkt siehe WLAN Router
Einwahlserver für VPN
Telefonanlage
Bandbreiten-Management Skripte/Traffic-Shaping
Links¶
DHCP 🇩🇪 – Dynamic Host Configuration Protocol
SLAAC 🇩🇪 – Stateless Address Autoconfiguration (IPv6)
NAT 🇩🇪 – Netzwerkadressübersetzung
NAT - Network Address Translation 🇩🇪 – Artikel bei Elektronik-Kompendium zur Funktionsweise und den Problemen dieser Technik
DNS 🇩🇪 – Domain Name System
RFC 2606 🇬🇧 – Allgemein verfügbare Domainnamen enden auf: .test, .example, .invalid, .localhost
RFC 6761 🇬🇧 – Aktualisierung von RFC 2606, s. Anhang G für im privaten Bereich oft verwendete Domänen
Firewall 🇩🇪
RFC 6890 🇬🇧 – IP-Adressen für spezielle Zwecke
RFC 3704 🇬🇧 – Ingress Filtering for Multihomed Networks (Ein Reverse Path Filter ist eine Anwendung der Strategie Reverse Path Forwarding für Multicast-Router mit anderer Zielsetzung bei Unicast-Router.)
SNMP 🇩🇪 – Security is Not My Problem/Priority
ICMP 🇩🇪 – Internet Control Message Protocol