Schon seit geraumer Zeit betreibe ich in meinem Heimnetz eine OPNsense Firewall. In diesem Beitrag (Teil 1) soll es darum gehen, was eine solche Lösung im Heimnetz nützt, welche Nachteile man evtl. in Kauf nehmen muss und welche Hardware sich zur Umsetzung eignet.
Dies ist als mehrteilige Serie gedacht. In Teil 2 (coming soon™) soll es um meine konkrete Umsetzung gehen und bei Interesse und Zeit könnten auch noch weitere Beiträge folgen. Alle weiteren Beiträge werde ich auch hier verlinken.
Die Vorgeschichte (wie ich auf die Idee kam)
Meine Wohnung besitzt einen mit meinem Vermieter geteilten Kabelanschluss (Vodafone Kabel, ehemals Kabel Deutschland), was in der Theorie schön hohe Internet-Geschwindigkeiten von 500Mbit/s Down und 50Mbit/s Up ermöglicht, weshalb ich von diesem Angebot gerne Gebrauch gemacht habe. Leider hat so ein Kabelanschluss aber auch Nachteile – Kabel ist grundsätzlich ein „Shared Medium“, man teilt sich die Bandbreite also mit den Nachbarn, weshalb die tatsächliche Geschwindigkeit besonders in den Stoßzeiten durchaus auch mal deutlich niedriger liegen kann. Das eigentliche Problem begann aber, als während Corona, als ich den ganzen Tag im Homeoffice bzw. Online-Studium saß, der Kabelanschluss mehrere Wochen am Stück ausfiel. Das war verständlicherweise eher schlecht, weil ich natürlich auf einen funktionierenden Internetanschluss angewiesen war. Als das Ganze sich dann ein halbes Jahr später ein weiteres mal wiederholt hat, ist mir der Geduldsfaden gerissen, und ich habe einen DSL-Anschluss bei der Telekom gebucht.
Der DSL-Anschluss funktionierte zwar viel zuverlässiger als der Kabelanschluss (wobei man fairerweise erwähnen muss, dass ich wahrscheinlich einfach nur Pech hatte: seit dem zweiten längeren Ausfall vor einigen Jahren läuft auch der Kabelanschluss stabil), war aber natürlich deutlich langsamer: nur 200 Mbit/s im Download, nur der Upload war immerhin gleich (50Mbit/s). Also kam ich auf die Idee: „Was, wenn ich die Geschwindigkeit beider Internetleitungen kombinieren kann?“ Man gönnt sich ja auch sonst nichts.
Im Folgenden werde ich nun etwas ausführlicher auf die für mich entscheidenden Vorteile eingehen und anschließend ein kurzes (Zwischen-)Fazit ziehen.
Vorteil: Load Balancing mehrerer Internetleitungen
Ein normaler Heimrouter für Endanwender wie z.B. eine FritzBox unterstützt selbstverständlich keinen Multi-WAN Betrieb (Hybridrouter mit LTE jetzt mal explizit ausgenommen), deshalb war klar, dafür müsste andere Hardware her. Grundsätzlich gibt es verschiedene praktikable und bezahlbare Lösungen, die einen solchen Multi-WAN Betrieb ermöglichen:
- Prosumer- oder Business-Router (z.B. TP-Link Omada, MikroTik)
- Consumer-Router mit OpenWRT-Firmware
- Open Source Firewalls auf x86-Hardware (OPNsense, PFsense)
Dazu muss ich sagen, dass ich mich an dieser Stelle gleich für die Lösung mit OPNsense entschieden habe, ich habe also weder OpenWRT-, noch günstige Business-Router in meinem Setup getestet – aber ich denke, dass für meine Anforderungen OPNsense tatsächlich am besten geeignet sein dürfte. Das soll jetzt aber nicht als Angriff auf OpenWRT verstanden werden, im Gegenteil – wer bereits einen OpenWRT-fähigen Router besitzt, dem sei geraten, es zunächst damit zu versuchen. Im übrigen verwende ich OpenWRT ebenfalls auf meinen Access Points – das wäre aber ein Thema für einen anderen Beitrag.
Neben Load Balancing unterstützt das Setup natürlich auch das automatische Failover zwischen den Internetleitungen. Das heißt, falls einmal eine ausfällt, springt automatisch die andere ein. Bei Load Balancing ist dies immer Bestandteil des Setups, man kann aber auch eine Verbindung ausschließlich als Failover konfigurieren, zum Beispiel falls nur im Notfall 4G/5G genutzt werden soll.
Vorteil: Sichereres Selfhosting mit Reverse Proxy
Grundsätzlich bietet praktisch jeder Router die Möglichkeit, via Port-Forwarding bestimmte Ports an einzelnen Geräten im LAN für das Internet zu öffnen, aber mit OPNsense kann man auch hier mehr machen – es bietet nämlich die Möglichkeit, einen so genannten Reverse Proxy einzusetzen. Ein Reverse Proxy befindet sich zwischen dem Dienst, den ihr öffentlich verfügbar machen wollt, und dem Internet. Clients aus dem Internet verbinden sich dadurch nicht mehr direkt mit dem Host eures Diensts, sondern mit dem Reverse Proxy, welcher sich auch um die Verwaltung eurer SSL-Zertifikate kümmert. Das stellt letztlich einerseits einen Komfortgewinn für euch als Administrator dar, da ihr an einem zentralen Ort alle Freigaben und Zertifikate einrichten könnt, es bietet aber auch einen Sicherheitsvorteil, solange man davon ausgeht, dass euer Reverse Proxy stets auf dem neuesten Stand ist.
Vorteil: Schluss mit Tracking und Werbung
Wahrscheinlich werdet ihr schonmal über das Konzept eines DNS-basierten Werbe- und Trackingblockers gestolpert sein. Hierfür gibt es zwei populäre Softwarelösungen: PiHole und AdGuard Home. Auch diese Funktionalität lässt sich auf OPNsense umsetzen, dank des großartigen Community-Repos von mimugmail, welches es erlaubt, AdGuard Home nachzuinstallieren. Dadurch spart man sich ein extra Gerät im Netzwerk, und zumindest nach meiner Erfahrung führt dieses Setup auch zu den wenigsten unerwarteten Hürden, da die meisten Geräte im Heimnetz standardmäßig davon ausgehen, dass der Router auch den lokalen DNS-Resolver bereitstellt – was hier dann ja auch der Fall ist.
Vorteil: Lerneffekt, beinahe unbegrenzte Möglichkeiten
Neben den gerade genannten Vorteilen, die für mich ausschlaggebend waren, kann eine OPNsense Firewall natürlich noch viel mehr. Grundsätzlich kann es auch einfach eine interessante und potenziell Nützliche Lernerfahrung sein, ein solches Setup aufzubauen – die Software ist komplett Open Source und lässt daher einen tiefen Blick in die darunterliegenden Vorgänge zu. Wer Ambitionen hat, mehrere Gerätegruppen logisch voneinander zu trennen (z.B. Smart-Home und Rest), der kommt hier voll auf seine Kosten, inklusive der Möglichkeit sehr komplexe Firewall-Regeln zu erstellen – wahrscheinlich sind hierfür dann aber Managed-Switches mit Unterstützung für VLANs sinnvoll. Auch die VPN-Funktionen von OPNsense sind umfangreich. Und wer mag, kann sogar ein IDS/IPS einrichten, auch wenn das an einem Heimanschluss nur begrenzt nützlich sein dürfte und die Hardwareanforderungen stark in die Höhe treibt.
Aber: alles wird etwas komplexer, und ihr benötigt (wahrscheinlich) mehr Hardware
Das klingt alles wirklich toll? Ist es auch. Dennoch gibt es bestimmte Limitierungen, die ihr beachten solltet, bevor ihr euch auf dieses Projekt stürzt. Zunächst werdet ihr die Lernkurve recht steil finden, plant also auf jeden Fall genug Zeit ein und stellt sicher, dass ihr entweder ein Backup habt (z.B. den alten Router) oder dass niemand sauer wird, wenn das Internet mal für einige Stunden nicht geht. Aber Apropos Router: Falls ihr euch für OPNsense als Router entscheidet, so wird OPNsense wirklich nur der Router sein. Das gemeine Verständnis für den Begriff „Router“ meint ein Gerät, welches Modem, Router, Switch und WLAN Access Point ineinander vereint – technisch gesehen ist das aber streng genommen nicht korrekt, ein Router ist lediglich für das Routing der Pakete zwischen Netzwerk und Internet zuständig.
Das bedeutet, falls ihr diesen Weg gehen wollt, benötigt ihr noch ein oder mehrere Geräte, welche diese Funktionen erfüllen. Unter Umständen ist das ganz einfach: Ihr besitzt vermutlich bereits einen WLAN-Router, welcher sich auch als reiner Access Point betreiben lässt und dabei auch als Switch fungiert. Allerdings benötigt ihr dann für DSL- oder Kabelanschlüsse immer noch ein Modem – was gar nicht unbedingt günstig zu finden ist. Alternativ (und das dürfte in der Regel die bessere Option sein) könnt ihr euren existierenden Router mit integrierten Modem nur als Modem verwenden – sofern dieser das unterstützt. Tipp: Die Speedport-Router der Telekom für DSL können das, und die sind gebraucht in der Regel günstig zu bekommen. Die in Deutschland ebenfalls populären FritzBox Router unterstützen den reinen Modem-Betrieb jedoch nicht (mehr) – ihr könnt, falls ihr eine FritzBox habt, diese aber trotzdem nutzen, indem ihr eure Firewall als „Exposed Host“ eintragt. Damit habt ihr zwar immer noch ein Doppel-NAT, aber ich hatte in mittlerweile 3 Jahren nie ernste Probleme damit. Eine ähnliche Einstellung gibt es auch in Routern anderer Hersteller unter diversen Namen. Fein raus seid ihr, wenn ihr schon einen Glasfaseranschluss habt: hier heißt das „Modem“ ONT, und entweder habt ihr ohnehin schon eins oder ihr könnt es günstig erwerben.
Je nachdem, wie ihr euer Setup aufbauen wollt, benötigt ihr also noch einen oder mehrere WLAN Access-Points und Switches. Diese sind aber zum Glück einfach und günstig zu bekommen, da sie in diesem Szenario ja nichts außergewöhnliches leisten müssen. Zum Schluss muss ich der Vollständigkeit halber noch die Festnetztelefonie erwähnen: Sowohl Speedport als auch FritzBox besitzen als Router die Fähigkeit, als Basis für Festnetztelefone zu fungieren (sei es kabellos via DECT oder kabelgebunden). Ersetzt man also diese Geräte oder betreibt sie ausschließlich als Modem, verliert man diese Fähigkeit und benötigt eine andere Basis für VOIP-Telefonie, sofern man denn überhaupt noch seinen Festnetzanschluss nutzen möchte. Nutzt man eine FritzBox mit der Firewall als Exposed Host, fällt diese Limitierung natürlich weg, da die FritzBox weiter ganz normal als Telefonanlage fungieren kann.
TL;DR
Hier nochmal die wichtigsten Vor- und Nachteile zusammengefasst als Liste:
Vorteile
- Möglichkeit zu Load Balancing und Failover
- Integration von Reverse Proxy für Self-Hosting
- Integration von DNS-Blocking für Werbung und Tracker
- Umfangreiche VPN-Funktionen
- Granulare Firewall-Regeln
- Unterstützung von VLANs, QoS, Traffic Shaping,…
- Großartige Lernerfahrung
- Transparenz & Open Source
Nachteile
- Komplexe Einrichtung (steile Lernkurve)
- Wahrscheinlich zusätzliche Hardware notwendig
- Höherer Administrationsaufwand
- Kein Support vom Hersteller oder ISP
- Höherer Stromverbrauch (abhängig von gewählter Hardware)
Welche Geräte eignen sich als Firewall?
Prinzipiell lässt sich jeder x86-PC mit genügend LAN-Schnittstellen nutzen, in meinem Fall also mindestens 3. Natürlich möchte man aber in der Regel ein möglichst sparsames, kompaktes und geräuscharmes System. Leider scheiden viele Mini-PCs von der Stange aus, da diese in der Regel höchstens 2 LAN-Ports bieten. Auf einschlägigen Marktplätzen wie AliExpress findet man unter dem Suchbegriff „Router PC“ aber eine Vielzahl an Angeboten an Mini-PCs mit 4-8 LAN-Ports, oft auch mit 2,5 Gigabit Schnittstelle – diese sind in der Regel passiv gekühlt und setzen auf energieeffiziente CPUs, wodurch sie sich sehr gut für diesen Einsatzzweck eignen. Der Kostenpunkt liegt in der Regel ja nach Anzahl und Geschwindigkeit der Schnittstellen irgendwo zwischen 100€ und 300€. Manch einem ist jedoch nicht zwangsläufig wohl dabei, „noname“-Hardware aus China für so eine wichtige Aufgabe zu verwenden, oder die aufgerufenen Preise sind noch zu hoch. Persönlich habe ich diese „Router-PCs“ nie getestet, aber einige Berichte von Treiber-Problemen und vor allem zu hohen Stromverbrauch gelesen, da die Energiesparmodi der CPUs nicht immer korrekt implementiert wurden.
Als Alternative bieten sich grundsätzlich gebrauchte Mini-PCs oder Thin Clients aus dem Enterprise-Umfeld an. Zu beachten ist, dass die LAN-Ports dabei in der Regel nachgerüstet werden müssen – glücklicherweise gibt es eine Handvoll solcher Geräte, bei denen dies über eine interne PCIe-Schnittstelle möglich ist. Beispiele hierfür sind:
- Fujitsu Futro S920 Thin Client (AMD GX 415GA)
- Fujitsu Futro S940 Thin Client (Intel Pentium J5005)
- Fujitsu Futro S9011 Thin Client (AMD Ryzen Embedded R1606G)
- HP T720 Thin Client (AMD Ryzen Embedded V1756B)
- Lenovo ThinkCentre M720q (Diverse Intel-CPUs der 7. – 8. Generation)
- Lenovo ThinkCentre M920q (Diverse Intel-CPUs der 8. – 9. Generation)
- Lenovo ThinkCentre M90Q (Diverse Intel-CPUs der 10. – 11. Generation)
Die Fujitsu ThinClients zeichnen sich durch komplett passive und damit geräuschlose Kühlung und einen insgesamt geringeren Stromverbrauch aus, wobei die ThinkCentre PCs und der HP ThinClient deutlich mehr Leistung bieten, aber eben auch einen aktiven Lüfter besitzen. Achtung: Für die Rechner von Lenovo und Fujitsu wird ein passender PCIe-Riser (welcher im Falle der Lenovos proprietär ist) und für die Lenovo-PCs auch eine passende Slotblende für die PCIe-Netzwerkkarte benötigt – auch diese findet man entweder auf eBay oder AliExpress.
Die Leistungsfähigkeit der genannten Optionen unterscheidet sich dabei deutlich, ebenso jedoch auch ihr Preis. Bevor ihr euch für eine Variante entscheidet, empfehle ich also in jedem Fall eine schnelle Suche auf eBay (oder anderen einschlägigen Marktplätzen). Zur Einordnung der Leistungsfähigkeit habe ich die PassMark-Einträge verlinkt, bei den Lenovos, wo es nicht nur eine CPU gibt, nur beispielhaft (ich habe versucht, die sinnvollste bzw. günstigeste Konfiguration zum aktuellen Zeitpunkt auf eBay zu wählen).
To be continued…
In Teil 2 (coming soon™) werde ich von meiner Umsetzung berichten und vor allem auf die von mir gewählte Hardware eingehen. Soviel sei vorweggenommen: Mittlerweile habe ich Erfahrungen mit zwei Hardwareplattformen, weil meine Anforderungen der ersten langsam aber sicher entwachsen sind, wodurch ich beide Plattformen miteinander vergleichen kann.