Die Sicherheit unseres digitalen Lebens beginnt im eigenen Heimnetzwerk. Während die meisten Haushalte auf die Standard-Firewall ihres Internetrouters vertrauen, wissen versierte Anwender, dass dies oft nur ein grundlegender Schutz ist. Eine selbstgebaute Firewall auf einem Mini-PC, idealerweise mit einem robusten Betriebssystem wie Ubuntu Server, bietet ein Maß an Kontrolle, Flexibilität und Sicherheit, das kommerzielle Lösungen oft nicht erreichen. Dieser Artikel führt Sie detailliert durch den Prozess, eine solche Eigenbau-Firewall zu realisieren und Ihr Heimnetzwerk auf ein neues Sicherheitsniveau zu heben.
### Einleitung: Warum eine eigene Firewall die ultimative Wahl ist
Stellen Sie sich Ihr Heimnetzwerk als Ihr Haus vor. Ihr Internetrouter ist der Haupteingang. Die integrierte Firewall ist wie eine Tür, die zwar schließt, aber vielleicht nicht die sicherste Verriegelung hat und oft mit einem Standard-Schlüssel geöffnet werden kann, der potenziell vielen bekannt ist. Eine selbstgebaute Firewall ist hingegen wie eine individuell angefertigte Sicherheitstür mit einem hochmodernen Schließsystem, Videoüberwachung und einem Portier, der genau entscheidet, wer wann und wohin im Haus darf.
Die Gründe für eine Firewall im Eigenbau sind vielfältig:
* Volle Kontrolle: Sie bestimmen jede einzelne Regel, jeden Port und jede Verbindung. Keine versteckten Backdoors, keine ungewollten Zugriffe.
* Transparenz: Sie wissen genau, was mit Ihrem Datenverkehr geschieht.
* Anpassbarkeit: Ob VPN-Server, DNS-Filter (wie Pi-hole), Intrusion Detection System (IDS) oder komplexe Netzwerksegmentierung – alles ist möglich und kann genau auf Ihre Bedürfnisse zugeschnitten werden.
* Langlebigkeit und Aktualität: Während Router-Firmware oft nur wenige Jahre Updates erhält, können Sie Ihr Ubuntu-System über viele Jahre hinweg aktuell und sicher halten.
* Kosteneffizienz: Mit einem preiswerten Mini-PC und kostenloser Open-Source-Software sparen Sie langfristig oft Geld gegenüber spezialisierter Hardware.
Dieses Projekt richtet sich an technisch interessierte Nutzer, die bereit sind, sich mit Linux-Grundlagen und Netzwerktheorie auseinanderzusetzen. Die Belohnung ist ein unvergleichlich sicheres und leistungsfähiges Netzwerk.
### Der Mini-PC als Herzstück: Hardware-Auswahl für Ihre Firewall
Die Wahl des richtigen Mini-PCs ist entscheidend für die Leistungsfähigkeit und Zuverlässigkeit Ihrer Firewall. Hier gibt es verschiedene Optionen, jede mit ihren eigenen Vor- und Nachteilen.
#### Der Raspberry Pi: Ideal für den Einstieg, aber mit Einschränkungen
Der Raspberry Pi ist oft der erste Gedanke beim Stichwort Mini-PC. Er ist klein, energieeffizient und kostengünstig. Für eine einfache Firewall, die primär als Paketfilter fungiert, kann ein Raspberry Pi 4 oder neuer ausreichen.
* **Vorteile:** Geringer Stromverbrauch, kompakt, preiswert, große Community.
* **Nachteile:** Der größte Engpass ist die Netzwerkanbindung. Der Raspberry Pi 4 verfügt zwar über Gigabit-Ethernet, aber intern hängt dieser Port (und oft auch zusätzliche USB-Ethernet-Adapter) an einem einzigen USB 3.0-Bus. Bei hohem Durchsatz zwischen WAN und LAN kann dies zu einem Flaschenhals werden. Für anspruchsvollere Aufgaben wie VPN-Server mit hohen Geschwindigkeiten, IDS/IPS oder mehrere segmentierte Netzwerke ist der Pi oft unterdimensioniert. Für WAN und LAN benötigen Sie *mindestens zwei* Netzwerkschnittstellen. Eine zusätzliche USB-Ethernet-Karte ist hierfür obligatorisch. Achten Sie auf hochwertige USB-3.0-Gigabit-Adapter, um Performance-Einbußen zu minimieren.
#### Leistungsstärkere Alternativen: Mehr Power für komplexere Anforderungen
Für anspruchsvollere Szenarien, höhere Durchsatzraten oder die Integration vieler Zusatzfunktionen empfehlen sich Mini-PCs, die von Haus aus mit mehreren dedizierten Netzwerkschnittstellen ausgestattet sind:
* **Intel NUC oder ähnliche x86-Mini-PCs:** Diese bieten deutlich mehr Rechenleistung und oft die Möglichkeit, zusätzliche PCIe-Netzwerkkarten zu installieren oder Modelle mit zwei oder mehr integrierten Gigabit-Ethernet-Ports zu wählen.
* **Spezialisierte Firewall-Appliances (z.B. Protectli, PC Engines APU2):** Diese kleinen x86-Systeme sind explizit für Firewall-Aufgaben konzipiert. Sie kommen standardmäßig mit zwei bis vier Gigabit-Ethernet-Ports, sind lüfterlos, robust und energieeffizient. Sie sind teurer als ein Raspberry Pi, aber oft die beste Wahl für eine dedizierte und leistungsstarke Firewall.
#### Wichtige Hardware-Kriterien im Überblick:
* **Prozessor (CPU):** Für reines Paketfiltern reicht ein Dual-Core-Prozessor aus. Wenn Sie jedoch VPN, IDS/IPS oder andere rechenintensive Dienste nutzen möchten, ist ein Quad-Core oder ein schnellerer Prozessor von Vorteil. Achten Sie auf AES-NI-Unterstützung für bessere VPN-Performance.
* **Arbeitsspeicher (RAM):** 2 GB RAM sind das absolute Minimum für Ubuntu Server und eine Basis-Firewall. Für erweiterte Dienste wie IDS, DNS-Caching oder viele VPN-Verbindungen sollten Sie 4 GB oder mehr einplanen.
* **Speicher:** Eine schnelle SD-Karte ist für den Raspberry Pi ausreichend, aber eine SSD (über USB oder M.2 bei x86-Systemen) bietet deutlich bessere Performance und höhere Langlebigkeit, was für ein System, das 24/7 läuft, entscheidend ist.
* **Netzwerkschnittstellen:** **Zwei dedizierte Gigabit-Ethernet-Ports sind absolut obligatorisch.** Einer für das WAN (Internet), einer für das LAN (Ihr Heimnetzwerk). Wenn Sie Gäste-WLANs, IoT-Netze oder eine DMZ segmentieren möchten, benötigen Sie entsprechend mehr Ports oder nutzen VLANs (sofern Ihre Netzwerk-Hardware dies unterstützt).
### Ubuntu Server als sichere Basis
Für unsere Firewall setzen wir auf Ubuntu Server. Es bietet eine hervorragende Mischung aus Stabilität, aktueller Software, einer riesigen Community und hervorragender Dokumentation.
#### Installation und grundlegende Härtung
1. **Image herunterladen:** Laden Sie das aktuelle Ubuntu Server-Image für Ihren Mini-PC (ARM für Raspberry Pi, x86 für andere) von der offiziellen Ubuntu-Website herunter.
2. **Auf Speicher schreiben:** Verwenden Sie Tools wie Balena Etcher, um das Image auf Ihre SD-Karte oder SSD zu schreiben.
3. **Headless-Installation:** Ubuntu Server ist für den Betrieb ohne grafische Oberfläche konzipiert. Die Installation erfolgt typischerweise über eine Konsole (angeschlossen per HDMI/Tastatur) oder noch einfacher: via SSH. Bei neueren Ubuntu-Images kann man SSH direkt beim Brennen der SD-Karte aktivieren.
4. **Erster Start und Updates:** Nach dem ersten Booten loggen Sie sich ein (Standardbenutzer `ubuntu`, Passwort `ubuntu` oder Ihr gewähltes bei der Installation) und führen sofort ein Update durch:
„`bash
sudo apt update
sudo apt upgrade -y
„`
5. **SSH-Sicherheit:**
* Ändern Sie das Standardpasswort.
* Deaktivieren Sie den direkten Root-Login.
* Erwägen Sie die Authentifizierung mittels SSH-Schlüsseln anstelle von Passwörtern.
* Ändern Sie den Standard-SSH-Port von 22 auf einen ungenutzten hohen Port (>1024), um automatisierte Angriffe zu reduzieren. Bearbeiten Sie dazu `sudo nano /etc/ssh/sshd_config` und ändern Sie die Zeile `Port 22` entsprechend.
### Die Firewall-Logik verstehen: Netfilter, iptables und nftables
Das Herzstück der Linux-Firewall ist das Netfilter-Framework im Kernel. Es ermöglicht das Filtern, Modifizieren und Weiterleiten von Netzwerkpaketen. Die Benutzer-Frontends dafür sind traditionell iptables und der modernere Nachfolger nftables.
* **iptables:** Seit langem der Standard unter Linux. Es organisiert Regeln in Tabellen (z.B. `filter`, `nat`, `mangle`) und Ketten (z.B. `INPUT`, `FORWARD`, `OUTPUT`, `PREROUTING`, `POSTROUTING`). Die Syntax kann komplex sein, da jede Regel explizit die Tabelle und Kette angeben muss.
* **nftables:** Der moderne Ersatz für iptables, `ip6tables`, `arptables` und `ebtables`. `nftables` bietet eine einheitlichere und flexiblere Syntax, bessere Performance, atomare Regel-Updates und eine einfachere Handhabung komplexer Regelsätze. Es ist die empfohlene Wahl für neue Setups. Ubuntu Server integriert `nftables` standardmäßig.
* **UFW (Uncomplicated Firewall):** Eine Abstraktionsschicht über `iptables` (oder `nftables` in neueren Versionen), die eine einfache Konfiguration für grundlegende Regeln bietet. Für unsere fortgeschrittene Firewall ist UFW jedoch oft zu restriktiv und bietet nicht die notwendige Granularität. Wir werden uns auf die direkte Konfiguration von `nftables` konzentrieren.
### Schritt-für-Schritt zur sicheren Firewall: Konfiguration mit nftables
Jetzt geht es ans Eingemachte. Wir konfigurieren die Netzwerkschnittstellen und erstellen die grundlegenden nftables-Regeln.
#### 1. Netzwerkkonfiguration mit netplan
Ubuntu Server verwendet `netplan` zur Netzwerkkonfiguration. Sie müssen die WAN- und LAN-Schnittstellen korrekt zuweisen. Angenommen, `eth0` ist WAN und `eth1` ist LAN.
Bearbeiten Sie die `netplan`-Konfigurationsdatei (oft unter `/etc/netplan/00-installer-config.yaml` oder ähnlich):
„`yaml
network:
version: 2
renderer: networkd
ethernets:
# WAN-Schnittstelle (Verbindung zum Internet-Router / Modem)
# Bezieht IP-Adresse via DHCP vom Provider/Modem
eth0:
dhcp4: true
dhcp6: true # Optional, falls IPv6 genutzt wird
# LAN-Schnittstelle (Verbindung zu Ihrem internen Switch/WLAN-AP)
# Erhält eine statische IP-Adresse, die als Gateway für Ihr Heimnetz dient
eth1:
addresses: [192.168.1.1/24] # Beispiel-IP, passen Sie diese an Ihr Netz an
dhcp4: no # Firewall wird selbst DHCP-Server sein
dhcp6: no # Wenn Sie kein IPv6 im LAN nutzen
„`
Nach der Bearbeitung wenden Sie die Konfiguration an: `sudo netplan apply`.
#### 2. IP-Forwarding aktivieren
Die Firewall muss IP-Pakete zwischen den Schnittstellen weiterleiten können.
Bearbeiten Sie `/etc/sysctl.conf` und stellen Sie sicher, dass folgende Zeile uncommented ist:
„`
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1 # Wenn IPv6 genutzt wird
„`
Speichern Sie und aktivieren Sie die Einstellung sofort: `sudo sysctl -p`.
#### 3. DHCP-Server für das LAN (ISC-DHCP-Server oder dnsmasq)
Ihre Firewall wird der Gateway für Ihr LAN sein, daher sollte sie auch IP-Adressen vergeben. `dnsmasq` ist eine beliebte Wahl, da es auch DNS-Caching und andere Funktionen bietet.
„`bash
sudo apt install dnsmasq -y
„`
Konfigurieren Sie `dnsmasq` (z.B. in `/etc/dnsmasq.conf`):
„`
# Schnittstelle, auf der der DHCP-Server lauschen soll
interface=eth1
# Bereich der IP-Adressen, die vergeben werden sollen
dhcp-range=192.168.1.100,192.168.1.200,12h
# Gateway, das an die Clients vergeben wird (die Firewall selbst)
dhcp-option=3,192.168.1.1
# DNS-Server, der an die Clients vergeben wird (die Firewall selbst oder externe)
dhcp-option=6,192.168.1.1,8.8.8.8 # Beispiel: Firewall selbst und Google DNS
„`
Starten Sie `dnsmasq` neu: `sudo systemctl restart dnsmasq`.
#### 4. nftables-Regelsatz erstellen
Dies ist der wichtigste Teil. Wir erstellen eine Datei für unseren Regelsatz, z.B. `/etc/nftables.conf`.
**Grundprinzip der Firewall-Regeln:**
* Standardmäßig alles verbieten (DROP), was nicht explizit erlaubt ist.
* Erlauben von ausgehendem Datenverkehr aus dem LAN.
* Erlauben von etablierten und verwandten Verbindungen (Stateful Inspection).
* Netzwerkadressübersetzung (NAT) für den Internetzugriff.
Hier ist ein grundlegendes Beispiel für `/etc/nftables.conf`. **Passen Sie die Schnittstellennamen und IP-Adressen an Ihr Setup an!**
„`nftables
#!/usr/sbin/nft -f
flush ruleset
table ip filter {
# Definition der Ketten
chain input {
type filter hook input priority 0; policy drop; # Standard: alles blockieren
# Erlaube Loopback-Verkehr
iif „lo” accept
# Erlaube etablierte/verwandte Verbindungen
ct state { established, related } accept
# Erlaube SSH-Zugriff von LAN
# (Optional: Nur von spezifischen IPs oder auf anderem Port)
iif „eth1” tcp dport 22 accept
# Erlaube ICMP (Ping) von LAN
iif „eth1” icmp type { echo-request } accept
# DNS-Anfragen an die Firewall selbst (wenn sie als DNS-Server fungiert)
iif „eth1” udp dport 53 accept
iif „eth1” tcp dport 53 accept
# DHCP-Anfragen an die Firewall selbst
iif „eth1” udp dport 67 accept
# Logs für geblockten Input-Traffic
log prefix „INPUT DROP: ” drop
}
chain forward {
type filter hook forward priority 0; policy drop; # Standard: alles blockieren
# Erlaube etablierte/verwandte Verbindungen (bereits gestartet)
ct state { established, related } accept
# Erlaube Weiterleitung von LAN nach WAN
iif „eth1” oif „eth0” accept
# Logs für geblockten Forward-Traffic
log prefix „FORWARD DROP: ” drop
}
chain output {
type filter hook output priority 0; policy accept; # Standard: alles erlauben (Firewall selbst darf kommunizieren)
}
}
table ip nat {
chain prerouting {
type nat hook prerouting priority 0;
# Beispiel für Port-Weiterleitung von WAN zu internem Server
# Achtung: Nur wenn wirklich notwendig und gut abgesichert!
# iif „eth0” tcp dport 8080 counter dnat to 192.168.1.100:80
}
chain postrouting {
type nat hook postrouting priority 0;
# Masquerading (NAT) für ausgehenden Traffic vom LAN ins Internet
oif „eth0” masquerade
}
}
„`
Speichern Sie die Datei. Testen Sie den Regelsatz zuerst: `sudo nft -f /etc/nftables.conf`. Wenn keine Fehler auftreten, aktivieren Sie ihn: `sudo systemctl enable nftables.service` und `sudo systemctl start nftables.service`.
Stellen Sie sicher, dass Ihr `nftables.service` aktiviert ist, damit die Regeln nach einem Neustart geladen werden.
#### 5. Erweiterte Funktionen (optional, aber empfehlenswert)
* **DNS-Filter (Pi-hole):** Installieren Sie Pi-hole auf Ihrer Firewall. Dies blockiert Werbung, Tracker und schädliche Domains netzwerkweit und verbessert die Privatsphäre und Browsing-Geschwindigkeit. Konfigurieren Sie `dnsmasq` so, dass es Pi-hole als Upstream-DNS-Server verwendet.
* **VPN-Server (WireGuard/OpenVPN):** Greifen Sie sicher von unterwegs auf Ihr Heimnetzwerk zu. WireGuard ist modern, schnell und einfach einzurichten. Ihre Firewall ist der ideale Ort für einen VPN-Server.
* **Intrusion Detection/Prevention System (IDS/IPS):** Tools wie **Suricata** oder **Snort** analysieren den Datenverkehr auf verdächtige Muster und Angriffe. Ein IDS alarmiert nur, ein IPS kann aktive Gegenmaßnahmen ergreifen (z.B. Verbindungen blockieren). Dies erfordert jedoch mehr Rechenleistung und RAM.
* **Netzwerksegmentierung (VLANs):** Teilen Sie Ihr Netzwerk in logische Segmente auf (z.B. ein isoliertes Gäste-WLAN, ein IoT-Netzwerk). Dies erfordert Switches, die VLANs unterstützen, und entsprechende Konfigurationen auf der Firewall.
### Wartung und bewährte Sicherheitspraktiken
Eine Firewall ist kein „Einmal einrichten und vergessen”-System. Kontinuierliche Wartung ist entscheidend:
* **Regelmäßige Updates:** Führen Sie `sudo apt update && sudo apt upgrade -y` mindestens einmal pro Woche aus, um Sicherheitslücken zu schließen.
* **Log-Monitoring:** Überprüfen Sie regelmäßig die Systemprotokolle (z.B. `journalctl -xe` oder spezialisierte Log-Analyse-Tools), um verdächtige Aktivitäten oder Fehler zu erkennen. Die `log` Regeln in `nftables` helfen dabei.
* **Backup der Konfiguration:** Sichern Sie Ihre `/etc/nftables.conf`, `/etc/netplan/*`, `/etc/dnsmasq.conf` und andere wichtige Konfigurationsdateien regelmäßig.
* **Physikalische Sicherheit:** Sorgen Sie dafür, dass nur befugte Personen physischen Zugriff auf Ihren Mini-PC haben.
* **Testen der Firewall:** Verwenden Sie Tools wie `nmap` von einem externen System aus (z.B. über ein Mobilfunknetz), um zu prüfen, welche Ports von außen erreichbar sind. Sie sollten keine offenen Ports sehen, die nicht explizit von Ihnen konfiguriert wurden (z.B. Port-Weiterleitungen für Server).
### Fazit: Kontrolle, Sicherheit und eine lohnende Lernkurve
Der Aufbau einer Ubuntu-Firewall mit einem Mini-PC ist ein anspruchsvolles, aber äußerst lohnendes Projekt. Sie erhalten nicht nur eine Firewall, die in puncto Sicherheit und Anpassbarkeit den meisten kommerziellen Lösungen überlegen ist, sondern vertiefen auch Ihr Verständnis von Netzwerken und Linux. Die anfängliche Investition an Zeit und Lernbereitschaft zahlt sich durch ein Höchstmaß an Netzwerksicherheit, Kontrolle und Transparenz für Ihr Heimnetzwerk aus. Mit dieser selbstgebauten Festung sind Sie bestens gerüstet für die Herausforderungen der modernen digitalen Welt. Gehen Sie den Schritt und übernehmen Sie die volle Kontrolle über Ihre digitale Sicherheit!