In einer virtualisierten Serverumgebung ist eine dedizierte Firewall unverzichtbar. Dieser Leitfaden führt dich wie ein technischer Waschzettel durch jeden Einzelschritt: vom Download des Installations-Images über die Proxmox-KVM-Parameter bis hin zum feingranularen Regelwerk und Performance-Tuning.
1. OPNsense ISO herunterladen und in Proxmox bereitstellen
OPNsense stellt seine Images als komprimierte .iso.bz2-Archive bereit. Proxmox benötigt zur Installation das entpackte .iso.
Offizielle Download-Quelle: opnsense.org/download
Wähle dort folgende Einstellungen aus:
- Architecture:
amd64 - Image Type:
dvd(wichtig für ISO-Installationen in virtuellen Maschinen) - Mirror: Einen Server in deiner Nähe (z. B. Deutschland / LeaseWeb oder RWTH Aachen)
Der schnellste Weg direkt über die Proxmox-Shell:
Logge dich per SSH auf deinem Proxmox-Host ein oder öffne die Node-Shell im Web-UI und lade das Image direkt in deinen Storage:
cd /var/lib/vz/template/iso
# Beispiel-Download der aktuellen Version
wget https://pkg.opnsense.org/releases/26.1/OPNsense-26.1-dvd-amd64.iso.bz2
# Archiv entpacken (.bz2 -> .iso)
bzip2 -d OPNsense-26.1-dvd-amd64.iso.bz2
# Prüfen, ob das ISO im Storage liegt
ls -lh *.iso
Alternativ im Proxmox Web-UI: Navigiere links im Baum zu local (pve) > ISO Images > Download from URL, füge den Link ein und klicke auf Query URL.
2. Virtuelle Maschine in Proxmox VE anlegen (Optimale KVM-Werte)
Klicke oben rechts in Proxmox auf Create VM und trage die Parameter exakt so ein:
- General: VM ID:
100, Name:opnsense-firewall, Haken bei Start at boot setzen. - OS: Wähle Use CD/DVD disc image file (iso), Storage:
local, Image:OPNsense-...-dvd-amd64.iso, Guest OS Type:Other. - System: Machine:
q35, BIOS:OVMF (UEFI)(oder Default SeaBIOS), Qemu Agent: Aktivieren. - Disks: Bus/Device:
SCSI (0), Storage:local-zfsoderlocal-lvm, Disk size: mind.32 GB, Cache:Write back, Discard: Aktivieren (wichtig für TRIM bei SSDs). - CPU: Sockets:
1, Cores:2 bis 4, Type:host(Essenziell: Reicht AES-NI Befehlssätze der CPU für VPN- und SSL-Kryptografie 1:1 durch). - Memory:
4096 MBfester RAM (Ballooning für FreeBSD deaktivieren!). - Network (Interface 1 = WAN): Bridge:
vmbr0, Model:VirtIO (paravirtualized), Firewall-Checkbox: Deaktivieren.
Zweite Netzwerkkarte (LAN) hinzufügen:
Nach dem Erstellen der VM vor dem Start auf VM 100 > Hardware > Add > Network Device klicken: Bridge: vmbr1, Model: VirtIO, Firewall: Deaktivieren.
3. Installation durchführen
- Starte die VM und öffne die Console.
- Warte, bis der Live-Boot abgeschlossen ist. Melde dich an mit User:
installer| Passwort:opnsense. - Wähle dein Tastaturlayout (z. B. German).
- Installationsmodus: Install (ZFS) > Stripe (No Redundancy) > Festplatte
da0auswählen > Bestätigen. - Am Ende der Installation ein neues Root-Passwort setzen und Reboot wählen.
- Nach dem Neustart im Proxmox Hardware-Tab das CD-Laufwerk aushängen.
4. Essentielles FreeBSD/VirtIO-Tuning (Hardware Offloading deaktivieren)
FreeBSD-Treiber unter KVM haben bekannte Probleme mit Hardware-Checksummen. Logge dich im OPNsense Web-UI (https://10.0.0.1) ein und navigiere zu Interfaces > Settings:
- ✅ Disable Hardware Checksum Offload (Haken setzen)
- ✅ Disable Hardware TCP Segmentation Offload (TSO) (Haken setzen)
- ✅ Disable Hardware Large Receive Offload (LRO) (Haken setzen)
Klicke unten auf Save und starte die Firewall einmal neu.
5. Web-UI Hardening: Unverschlüsseltes HTTP deaktivieren
Navigiere zu System > Settings > Administration:
- Protocol: Ausschließlich
HTTPSauswählen. - HTTP Redirect: Disable HTTP redirect aktivieren. Dadurch schließt die Firewall Port 80 vollständig und reagiert erst gar nicht auf Klartext-Scans.
- Listen Interfaces: Nur
LANanhaken (WAN niemals aktivieren!).
6. DNS & DHCP mit Dnsmasq statt Unbound
- Unter Services > Unbound DNS > General den Haken bei Enable Unbound entfernen und speichern.
- Unter Services > Dnsmasq DNS > Settings:
- ✅ Enable Dnsmasq
- ✅ Register DHCP Leases & Register DHCP Static Mappings (ermöglicht lokale Namensauflösung im LAN)
- DNS Forwarder:
1.1.1.1,9.9.9.9eintragen.
- Unter Services > DHCPv4 > [LAN] den DHCP-Pool aktivieren (z. B. Range
10.0.0.100 - 10.0.0.200).
7. Spamhaus DROP Blockliste für das WAN-Interface einrichten
Schütze deine Infrastruktur vor bekannten Botnetzen:
- Gehe zu Firewall > Aliases > Klicke auf +.
- Name:
Spamhaus_DROP, Type:URL Table (IPs). - URL:
https://www.spamhaus.org/drop/drop.txt, Update Frequency:1(Tag). - Gehe zu Firewall > Rules > WAN > Neue Regel ganz oben anlegen:
- Action:
Block| Interface:WAN| Direction:In| Source:Spamhaus_DROP| Destination:Any.
- Action: