firewalld NAT-Router mit Bridge (vmbr0 → WAN automatisch)
- Ein Linux-System mit firewalld soll als Router arbeiten.
- Das interne Netz kommt über eine Bridge (vmbr0).
- Der Internetzugang erfolgt automatisch über das aktive Interface (LAN oder WLAN).
- vmbr0 internes Netz
- enp2s0f1 WAN (Ethernet)
- wlp0s20f3 WAN (WLAN)
- internal internes Netz
- external Internetzugang
Interfaces den Zonen zuordnen
- firewall-cmd --permanent --zone=internal --add-interface=vmbr0
- firewall-cmd --permanent --zone=external --add-interface=enp2s0f1
- firewall-cmd --permanent --zone=external --add-interface=wlp0s20f3
NAT (Masquerade) aktivieren
- firewall-cmd --permanent --zone=external --add-masquerade
- Alle Pakete, die über Interfaces der Zone external nach außen gehen, werden maskiert.
Forwarding im Kernel aktivieren
- sysctl -w net.ipv4.ip_forward=1
- Prüfen
- sysctl net.ipv4.ip_forward
Forward-Policy zwischen den Zonen erstellen
- firewalld blockiert Forwarding zwischen Zonen standardmäßig.
- Deshalb muss eine Policy internal → external erstellt werden.
- firewall-cmd --permanent --new-policy internal-out
- firewall-cmd --permanent --policy internal-out --add-ingress-zone internal
- firewall-cmd --permanent --policy internal-out --add-egress-zone external
- firewall-cmd --permanent --policy internal-out --set-target ACCEPT
Konfiguration aktivieren
Funktionsprinzip
- Traffic aus dem internen Netz
vmbr0 (internal)
↓
Forward Policy
↓
external Zone
↓
Masquerade
↓
aktives WAN Interface (enp2s0f1 oder wlp0s20f3)
- Das System nutzt automatisch das Interface mit der Default-Route.
Zonen prüfen
- firewall-cmd --get-active-zones
Masquerade prüfen
- firewall-cmd --zone=external --query-masquerade
Forward-Policies prüfen
- firewall-cmd --list-policies
nftables-Regeln anzeigen
Traffic prüfen
- Internes Interface
- WAN Interfaces
- tcpdump -ni enp2s0f1 icmp
- tcpdump -ni wlp0s20f3 icmp