Trennung/Aufteilung von TCP/IP Netzen zur Erhöhung der Sicherheit
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 Anwedner, 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, welches 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.
Ausgangslage
Das vorhandene Netzwerk besteht aus einer Fritzbox 7490 an der ein Klasse-C 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 der Adresse 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+ kann hardwarebeding schnell an die Grenzen kommen sollte dieser als Router eingesetzt werden. Es wird empfohlen eine Sicherung Einstellungen des Routers und des Pis durchzuführen um jederzeit zur Ausgangslage zurück zu kehren!
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 dazu gekommen. Gerade in Hinblick auf Sicherheit sind dies Geräte besonders zu betrachten. Entweder werden diese Geräte mit fest eingestellten Nutzernamen/Passwörter ausgeliefert oder erkannte Sicherheitslücken werden nicht geschlossen. Dazu kommt noch eine Cloud-Verbindung bei der auch nicht überprüft werden kann, welche Daten übertragen werden. Durch die Trennung der verschiedenen (Sub)Netze kann verhindert werden das u.a vertrauliche Daten ausgeleitet werden können oder aber der Zugriff auf das Internet komplett unterbunden wird
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 Zugrissrechte 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
Dadurch das als Subnetmaske die 255.255.0.0 (entspricht /16) gewählt wurde, sind die Geräte auch weiterhin noch untereinander erreichbar. 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 empfiehlt es sich in FHEM alles Devices und Bedingungen anzupassen, welche 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 Schrift fortgefahren werden. Ansonsten ggf. noch Fehler korrigieren. An dieser Stelle empfiehlt es sich ein Backup der Fritzbox und des Pis durchzuführen.
Gastnetzt abtrennen
Im nächsten Schritt erfolgt die Trennung zwischen dem internen Netz (172.16.0.0/16) und dem Gästenetz (192.168.178.0/24). Ebenso bekommt der Pi eine Routingfunktion zwischen den beiden Netzen. 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 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 eine der internen Netze verschoben
Routing aktivieren
Damit der Raspberry Pi später auch Routing durchführen kann, muss dieses aktiviert werden. Bei ein Raspian Betriebssystem wird dies z.B. in /etc/sysctl.conf mittels net.ipv4.ip_forward = 1 aktiviert.
Fritzbox und Pi anpassen
Im folgenden Schritt ist die Reihenfolge wichtig. Ggf. bietet es sich an, an den Pi Tastatur/Monitor anzuschließen. Alternativ kann die SD-Karte des Pis auch am PC gemountet werden, um Äderungen an den Konfigdateien anzupassen.
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 Netzt an den 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 Pis anpassen
Im letzten Schritt wird die IP-Adresse der Netzwerkarte des Pis angepasst. Dazu erhält diese zwei IP-Adressen: ETH0: 172.16.1.1 ETH0:0 192.168.178.2 Zusätzlich wird der Gateway für ETH0 auf die 192.168.178.1 gesetzt. Nach einem anschließenden Reboot sollte das Netzt wieder wie gewohnt funktionieren. Beim Problemen kann ggf. das Backup zurück gespielt 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, was 172.16.0.0/24 ist an den Pi. Der Pi hat die Adressen 172.16.1.1 und 192.168.178.2 und routet aus dem 172.16.0.0/24 zum Pi. Weitere Routingaufgaben sollten dem 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 mittels 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 Netzt per Firewall auch voneinander getrennt sind. Unbekannte Geräte werden mit einer IP aus dem Gästenetz versorg und erst nach einer manuellen Zuordnung ins interne Netz verschoben.