Firewalld NAT: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=firewalld NAT-Router mit Bridge (vmbr0 → WAN automatisch)= *Ziel :Ein Linux-System mit firewalld soll als Router arbeiten. :Das interne Netz kommt über ei…“)
 
 
Zeile 20: Zeile 20:
 
*firewall-cmd --permanent --zone=external --add-interface=enp2s0f1
 
*firewall-cmd --permanent --zone=external --add-interface=enp2s0f1
 
*firewall-cmd --permanent --zone=external --add-interface=wlp0s20f3
 
*firewall-cmd --permanent --zone=external --add-interface=wlp0s20f3
 +
 +
==Forwarding für internes Netz erlauben==
 +
 +
:Routerbetrieb benötigt Forwarding aus der internen Zone.
 +
 +
*firewall-cmd --permanent --zone=internal --set-target=ACCEPT
  
 
==NAT (Masquerade) aktivieren==
 
==NAT (Masquerade) aktivieren==
 +
 +
:Alle Pakete, die über Interfaces der Zone external nach außen gehen, werden maskiert.
  
 
*firewall-cmd --permanent --zone=external --add-masquerade
 
*firewall-cmd --permanent --zone=external --add-masquerade
  
:Alle Pakete, die über Interfaces der Zone external nach außen gehen, werden maskiert.
+
==Kernel Routing aktivieren==
 
 
==Forwarding im Kernel aktivieren==
 
  
 
*sysctl -w net.ipv4.ip_forward=1
 
*sysctl -w net.ipv4.ip_forward=1
Zeile 34: Zeile 40:
  
 
*sysctl net.ipv4.ip_forward
 
*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==
 
==Konfiguration aktivieren==
Zeile 55: Zeile 51:
 
  vmbr0 (internal)
 
  vmbr0 (internal)
 
       ↓
 
       ↓
  Forward Policy
+
  Forward erlaubt
 
       ↓
 
       ↓
 
  external Zone
 
  external Zone
 
       ↓
 
       ↓
 
  Masquerade
 
  Masquerade
 +
      ↓
 +
Kernel Routing
 
       ↓
 
       ↓
 
  aktives WAN Interface (enp2s0f1 oder wlp0s20f3)
 
  aktives WAN Interface (enp2s0f1 oder wlp0s20f3)
  
:Das System nutzt automatisch das Interface mit der Default-Route.
+
:Der Kernel entscheidet automatisch über die Default-Route.
 +
 
 +
==Route prüfen==
 +
 
 +
*ip route get 1.1.1.1
  
 
==Zonen prüfen==
 
==Zonen prüfen==
Zeile 72: Zeile 74:
  
 
*firewall-cmd --zone=external --query-masquerade
 
*firewall-cmd --zone=external --query-masquerade
 
==Forward-Policies prüfen==
 
 
*firewall-cmd --list-policies
 
 
==nftables-Regeln anzeigen==
 
 
*nft list ruleset
 
  
 
==Traffic prüfen==
 
==Traffic prüfen==

Aktuelle Version vom 11. März 2026, 08:10 Uhr

firewalld NAT-Router mit Bridge (vmbr0 → WAN automatisch)

  • Ziel
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).
  • Interfaces
vmbr0 internes Netz
enp2s0f1 WAN (Ethernet)
wlp0s20f3 WAN (WLAN)
  • Zonenübersicht
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

Forwarding für internes Netz erlauben

Routerbetrieb benötigt Forwarding aus der internen Zone.
  • firewall-cmd --permanent --zone=internal --set-target=ACCEPT

NAT (Masquerade) aktivieren

Alle Pakete, die über Interfaces der Zone external nach außen gehen, werden maskiert.
  • firewall-cmd --permanent --zone=external --add-masquerade

Kernel Routing aktivieren

  • sysctl -w net.ipv4.ip_forward=1
Prüfen
  • sysctl net.ipv4.ip_forward

Konfiguration aktivieren

  • firewall-cmd --reload

Funktionsprinzip

Traffic aus dem internen Netz
vmbr0 (internal)
     ↓
Forward erlaubt
     ↓
external Zone
     ↓
Masquerade
     ↓
Kernel Routing
     ↓
aktives WAN Interface (enp2s0f1 oder wlp0s20f3)
Der Kernel entscheidet automatisch über die Default-Route.

Route prüfen

  • ip route get 1.1.1.1

Zonen prüfen

  • firewall-cmd --get-active-zones

Masquerade prüfen

  • firewall-cmd --zone=external --query-masquerade

Traffic prüfen

Internes Interface
  • tcpdump -ni vmbr0 icmp
WAN Interfaces
  • tcpdump -ni enp2s0f1 icmp
  • tcpdump -ni wlp0s20f3 icmp