Ursprünglich hatte eine Firewall bzw. ein Paketfilter eine simple Aufgabe:
Die Schaffung eines kontrollierten Übergangs zwischen zwei oder mehreren Netzen, mit dem Ziel, den Datenverkehr zu überwachen und anhand von festgelegten Regeln zu entscheiden, ob bestimmte Netzwerkpakete durchgelassen werden oder nicht. Doch vielen Herstellern war das nicht genug. Sie gingen dazu über unterschiedliche Sicherheitsaufgaben auf einer Plattform zu vereinen. Eine Firewall war nicht mehr bloss ein einfacher Paketfilter, sondern gleichzeitig ein Gateway, Proxy (Contentfilter), Intrusion-Detection-System, Virenscanner oder VPN-Gateway.
Für diese Lösungen kann man, wenn man will, viele tausend Euro ausgeben. Im privaten Umfeld bzw. bei kleinen Firmen ist das keine Option.
Oder aber man benutzt ein Universaltalent wie den Raspberry Pi, der im Privatbereich die Sache genauso gut erledigt.
IPFIRE ist eine Open Source Firewall mit langer Tradition die über eine große Community verfügt.
Im Wiki von IPFIRE ist die Konfiguration von ARM Boards gut beschrieben. Unter anderem auch welche Boards wie gut unterstützt werden.
Ein Image für den Raspberry steht dort zum Download bereit.
Die Konfiguration ist sehr intuitiv und für den Grundbetrieb in 30 Minuten erledigt
Wer will, dem stehen alle Grenzen offen, um eigenen Hirnschmalz in Firewallregeln zu investieren.
Bei mir waren es Z.B. Überwachungskameras die über spezielle Ports angesprochen werden.
Grundsätzlich trennt eine Firewall die vorhandenen Netze
Das Netzwerk mit IPFire separieren
IPFire unterscheidet bis zu vier unterschiedliche Netzwerkarten: Grün, Blau, Orange und Rot. Grün ist dabei das interne Netzwerk, also das lokale Netz mit dem höchsten Vertrauensniveau und dem höchsten Schutzbedarf. Blau ist das (bei Bedarf) separate Netzwerk für das WLAN.
Die Demilitarisierte Zone (DMZ), also lokal verbundene Server die sowohl aus dem internen als auch dem Intranet erreichbar sein sollen, wird mit der Farbe Orange dargestellt. Zugriffe aus der DMZ heraus in das interne Netz sollten nicht möglich sein. Der rote Bereich ist das externe Netzwerk, also das Internet. Wenn Sie im Hause nicht selbst ein autonomes System betreiben, sollte im roten Bereich ausschließlich das Modem beziehungsweise der Router Ihres Internetanbieters sein. Ein Zugriff aus dem Internet sollte ausschließlich in der orangen DMZ möglich sein, bestenfalls beschränkt auf die notwendigen Ports der dort angebotenen Dienste.
Je nachdem, wie viele Netzwerkkarten Sie Ihrem System spendieren können und welche Zonen Sie benötigen, wählen Sie als „Typ der Netzwerkkonfiguration“ also die entsprechende Kombination. Für unseren Artikel wählen wir Grün, Rot und Orange. WLAN-Geräte werden aus Sicherheitsgründen nicht zugelassen
Im nächsten Schritt weist man nun jedem logischen Netzbereich die entsprechende Netzwerkkarte zu.
Das Setup ist logisch durchdacht und geht schnell vonstatten.
Quelle: reachcoding.eu
Ich empfehle einen Blick in das Wiki von IPFire zu werfen.
Dort ist alles sehr anschaulich dargestellt und erklärt.
Nach der Grundkonfiguration kann man Monitor und Tastatur vom Raspberry abbauen. Der Rest erfolgt über die sehr komfortable Weboberfläche
- System – Basiseinstellungen des Systems
- Status – Zeigt Graphen und reports über den Zustand des Systems
- Network – Netzwerkeinstellungen und Dienste
- Services – Dienste die von der Firewall bereitgestellt werden wie z.B. Quality of Service
- Firewall Dokumentation – Firewall Regeln, Gruppen oder Intrusion Prevention System (IPS)
- IPFire – Pakete und Add-ons die auf dem System installiert sind
- Logs – Anzeigen und konfigurieren von System - Logs
Für die Intrusion detection lassen sich verschiedene Regelsätze wie Snort und Talos aktivieren.
Ebenso lassen sich verschiedene Addons über den integrierten Paketmanager nachinstallieren. Für VPN-Clients (Roadwarrior genannt) lassen sich einfach Zertifikate und fertige Konfigurationsdateien generieren. Alle Funktionen aufzuzählen würde den Umfang dieses Artikels sprengen.
Da der Raspberry Pi nur über einen LAN Anschluss verfügt, ist es nötig den zweiten über einen USB – Lan Adapter bereitzustellen. Meine Tests haben ergeben, dass ein Raspberry 1 damit überfordert ist.
Ein Raspberry Pi 2 kommt mit 2 Netzen (Internet und LAN) gut zu Recht, aber mit einer zusätzlichen Netzwerkschnittstelle nicht mehr. Der Raspberry Pi 3 kommt ebenfalls mit 3 Netzen nicht klar, hat aber für 2 Netze ein paar Leistungsreserven mehr als der Raspberry Pi 2. Ich persönlich habe einen Raspberry Pi 3+ mit 2 Schnittstellen (Internet und LAN) seit 5 Jahren 24/7 in Betrieb und bin sehr zufrieden. Eine DMZ und WLAN mit einem vom eigentlichen Router getrennten WLAN-Accesspoint liesse sich auch noch realisieren, aber das scheitert beim Raspberry wie gesagt an den fehlenden Schnittstellen.
Die gute Nachricht ist, dass seit Version 2.27 Core 159 auch endlich der Raspberry Pi 4 unterstützt wird. Aufgrund seiner schnelleren 1 GBit Schnittstelle ist er weitaus besser für den Job geeignet als die früheren Modelle deren Netzwerkschnittstelle an einem USB Flaschenhals hing. Aber ich muss sagen das man auch mit einem Raspberry Pi 3 an einer durchschnittlichen deutschen High Speed ( hust ) Leitung keine Beeinträchtigung bemerkt.
Ich bin beruflich sehr viel unterwegs und nutze sehr oft den VPN Zugang zu meinem Heimnetz. Bei mir ist OpenVPN im Einsatz aber IPSec ist mit IPFIRE auch möglich
Was kannst du denn für minimale Hardware, mit mindestens drei Nic's bei gigabit Glasfaser für 5 VLAN Netze, VPN Wireguard mindestens 10 Filterregeln Netfilter und QoS empfehlen? Ohne große einbußen der Bandbreite.
Ich kann nicht sagen ob so eine Konstellation auf dem Raspi 4 performant läuft. Kannst es gerne ausprobieren und mir berichten. Ansonsten würde ich ein APU Board dafür nehmen
Wieso nicht einfach Trunk und virtual bridges verwenden statt USB nic?