Trennung/Aufteilung von TCP/IP Netzen zur Erhöhung der Sicherheit

Aus FHEMWiki


Clock - Under Construction.svg An dieser Seite wird momentan noch gearbeitet.


In diesem Wiki-Artikel geht es um die Aufteilung/Einrichtung eines (W)LAN-Netztes mit 2 getrennten Adressbereichen sowie die Einrichtung von Subnetzen. Das hat grundsätzlich nichts mit FHEM direkt zu tun, trägt aber zur Netzwekssicherheit bei. Die Zielgruppe für diesen Artikel sind fortgeschrittene Anwender, da umfangreiche Änderungen am Netzaufbau durchgeführt werden. Ebenso ist ein sicherer Umgang mit der CLI erforderlich. Dies Beispiel bezieht sich auf eine konkrete Ausgangslage mit einem Netzwerk, das durch eine Fritzbox verwaltet wird. Sinngemäß sollte es sich aber auf andere Router (Speedport funktioniert nicht, da dort keine weitere Route für das lokale Netz eingetragen werden kann) übertragen lassen. FHEM läuft auf einen Raspberry Pi 3+ (zudem wird dieser auch als Pi-Hole verwendet).
Ein ganz besonderer Dank geht an Wuppi68, der mir geduldig geholfen hat mein Netzwerk umzugestalten.

Info blue.png
Dies ist keine Schritt-für-Schritt Anleitung. Der Artikel dient lediglich als Leitfaden. Die entsprechenden Einstellungen und Befehle sind auf die vorhandene Software anzupassen.


Ausgangslage

Das vorhandene Netzwerk besteht aus einer Fritzbox 7490 an der ein Klasse-C-Netz mit dem Adressbereich 192.168.178.0/24 angebunden ist. Die Geräte sind mittel WLAN und LAN angeschlossen.

Ziel

Wie bereits eingangs erwähnt, wird es am Ende zwei Netzwerke geben. Ein Gästenetzwerk mit dem Adressbereich 192.168.178.0/24 sowie ein internes Netzwerk mit mehreren Subnetzen im Adressbereich 172.16.0.0/24. Für das interne Routing wird zusätzliche Hardware benötigt. Ein Raspbarry Pi 3+ als Router kann allerdings aufgrund seiner limitierten Hardware schnell an seine Performance-Grenzen kommen. Es wird empfohlen, eine Sicherung der Einstellungen des Routers und des Raspberry Pi durchzuführen, um jederzeit zur Ausgangslage zurückkehren zu können!

Motivation

In der heutigen Zeit kommunizieren eine Vielzahl von Geräten mittels (W)LAN. Wo anfangs nur ein Handy und ein Laptop waren, sind heutzutage noch Sprachassistenten, Fernseher und besonders Geräte des IoTs dazugekommen. Gerade in Hinblick auf die Sicherheit sind dies Geräte besonders zu betrachten. Häufig werden diese Geräte mit fest eingestellten Nutzernamen/Passwörter ausgeliefert oder erkannte Sicherheitslücken werden nicht geschlossen. Dazu kommt noch eine Cloud-Verbindung zu externen Servern, bei der auch nicht überprüft werden kann, welche Daten übertragen werden. Durch die Trennung der verschiedenen (Sub-)Netze kann verhindert werden, dass u. a. vertrauliche Daten ausgeleitet werden können oder aber die ausgehende wie eingehende Verbindung mit Systemen im Internet komplett unterbunden werden.

DHCP anpassen

Bisher erfolgte die IP-Vergabe durch die Fritzbox. Zukünftig erfolgt die IP-Vergabe durch den Raspberry Pi (hier durch die Pi-Hole Software).

IP-Bereich

Im ersten Schritt wird der DHCP-Server so angepasst, dass zukünftig Adressen aus dem IP-Bereich 172.16.0.0/16 vergeben werden. In diesem Fall aus dem Bereich 172.16.1.100 – 172.16.1.200. Später erfolgt die weitere Unterteilung der 16er Netze in 24er Netze.

Aufteilung in Subnetze

Über den DHCP-Server werden für bekannte Geräte statische Adressen vergeben. Dabei erfolgt eine weitere Aufteilung in Subnetze. Später können diese 24er Netze durch Firewallregeln und VLAN-Tags entsprechende Zugriffsrechte bekommen und voneinander abgegrenzt werden. Als Beispiel für die Aufteilung

  • 172.16.1.0 --> Default
  • 172.16.2.0 --> Heimautomation
  • 172.16.3.0 --> Media
  • 172.16.4.0 --> Zocken
  • ...
  • 172.16.255.0 --> das letzte

Da als Subnetmaske die 255.255.0.0 (entspricht /16) gewählt wurde, können sich die Geräte auch weiterhin noch untereinander erreichen. Die Fritzbox (der Router) bekommt die Adresse 172.16.1.1 mit der Netzmaske 255.255.0.0 Nach dieser Umstellung sollten alle Geräte wie gewohnt erreichbar sein.

FHEM-Anpassen

Nach der IP-Umstellung ist es unumgänglich, in FHEM alle Devices und Bedingungen anzupassen, die auf alte IPs verweisen.

Beobachten

Sind alle Adressen umgestellt und FHEM entsprechend angepasst, sollte das Netzwerk jetzt ein wenig beobachtet werden. Läuft alles? Sind alle Geräte erreichbar? Gibt es ungewöhnliches Verhalten?

Zwischenstand

Wenn nach der Umstellung alles ohne Probleme läuft, hat das Netzt folgenden Zustand: Router (FritzBox) 172.16.1.1 Raspberry Pi (Pi-Hole, DNS) 172.16.1.2 Subnetze 172.16.1.0/16 – 172.16.255.0/16 Wenn alles läuft, kann mit dem nächsten Schritt fortgefahren werden. Ansonsten sind die Fehler zu korrigieren. An dieser Stelle empfiehlt es sich, ein Backup der Einstellungen der Fritzbox und des Raspberry Pi durchzuführen.

Gastnetz abtrennen

Im nächsten Schritt werde das interne Netz (172.16.0.0/16) und das Gästenetz (192.168.178.0/24) getrennt. Ebenso bekommt der Raspberry Pi die Funktion, zwischen den beiden Netzen zu routen. Sollzustand: Fritzbox: 192.168.178.1 PiHole ETH0 172.16.1.1 und ETH0:0 192.168.178.2

Zusätzliche IP für Raspberry Pi

Da der Raspberry Pi das Routing zwischen dem internen- und dem Gästenetzt übernehmen soll, muss der Netzwerkkarte eine weitere IP zugewiesen werden (192.168.178.2)

DHCP anpassen

Der DHCP-Server des Pis soll zukünftig nur noch IPs aus dem Bereich 192.168.178.100 – 192.168.178.200 vergeben. Bekannte Geräte werden manuell in eines der internen Netze verschoben.

Routing aktivieren

Damit der Raspberry Pi später auch Routing durchführen kann, muss diese Funktion intern aktiviert werden. Bei Raspian als eingesetztes Betriebssystem wird dies z.B. in /etc/sysctl.conf durch

net.ipv4.ip_forward = 1 

konfiguriert.

Fritzbox und Raspberry Pi anpassen

Bei den folgenden Schritten ist die Reihenfolge wichtig. Ggf. bietet es sich an, an den Raspberry Pi Tastatur/Monitor anzuschließen. Alternativ kann die SD-Karte des Raspberry Pi auch am PC gemountet werden, um Änderungen an den Konfigurationsdateien vorzunehmen.

Routing an der Fritzbox

Auf der Fritzbox wird eine Route zum Raspberry Pi eingerichtet. 172.16.0.0/16 auf das Ziel 192.168.178.2 Damit wird das interne Netz an den Raspberry Pi weitergeroutet.

IP-Adresse Fritzbox anpassen

Die IP der Fritzbox wird auf 192.168.178.1 gesetzt. Nach dem Speichern ist die Fritzbox nicht mehr erreichbar, da noch keine Route aus dem 172.16.0.0/16 Netz zur Fritzbox besteht.

IP-Adresse des Raspberry Pi anpassen

Im letzten Schritt wird die IP-Adresse der Netzwerkarte des Raspberry Pi angepasst. Dazu erhält diese zwei IP-Adressen:

ETH0: 172.16.1.1
ETH0:0 192.168.178.2

Zusätzlich wird das Gateway für ETH0 auf die Adresse 192.168.178.1 gesetzt. Nach einem anschließenden Reboot sollte das Netz wieder funktionieren. Bei Problemen kann ggf. das Backup zurückgespielt werden.

Netze per IP-Tables trennen

Wenn der Reboot erfolgreich war und das Netz erreichbar ist, sollte jetzt folgender Zustand vorliegen: Die Fritzbox arbeitet auf der IP 192.168.178.1 und routet alles aus dem Netzbereich 172.16.0.0/24 an den Raspberry Pi. Der Raspberry Pi hat die Adressen 172.16.1.1 und 192.168.178.2 und routet aus dem Netzbereich 172.16.0.0/24 zum Pi. Weitere Routingaufgaben sollten dem Raspberry Pi nicht zugewiesen werden, da dieser sonst schnell an seine Leistungsgrenze kommt. Alle unbekannten Geräte bekommen eine IP aus dem 192.168.178.0/24 Netz und müssen manuell in ein 172.16.0.0-Netz verschoben werden.

Trennen der Netze mit einer Firewall

Um einen Zugriff des Gastnetzes auf das interne Netz zu verbieten, sind entsprechende Firewalleinträge zu erstellen.

Zusammenfassung

An dieser Stelle ist durch die Aufteilung in ein internes Netz und ein Gästenetz ein erster Schritt zur Absicherung erfolgt. Der Sicherheitsgewinn erfolgt aber erst, wenn diese beiden Netze per Firewall auch voneinander getrennt sind. Unbekannte Geräte werden mit einer IP aus dem Gästenetz versorgt und erst nach einer manuellen Zuordnung ins interne Netz verschoben.