Nftables und layer2 Firewall: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→Regeln) |
|||
| Zeile 69: | Zeile 69: | ||
=nftables schnellstart= | =nftables schnellstart= | ||
*[[nftables schnellstart]] | *[[nftables schnellstart]] | ||
| − | + | =Bridge Firewall= | |
| + | {{#drawio:bridge-fw}} | ||
=Regeln= | =Regeln= | ||
Version vom 7. März 2024, 07:54 Uhr
Vorab
- Bei Virtualisierungen Bridge Ports auf Promisc setzen
Installation der Bridgeutils
- apt install bridge-utils
/etc/network/interfaces
auto lo
iface lo inet loopback
auto enp0s3
iface enp0s3 inet static
address 10.0.10.11/24
gateway 10.0.10.1
auto enp0s8
iface enp0s8 inet manual
auto enp0s9
iface enp0s9 inet manual
auto vmbr0
iface vmbr0 inet manual
bridge_ports enp0s8 enp0s9
bridge_fd 5
bridge_stp no
- ifup vmbr0
Bridge-Filterung
Arten von Bridge-Ketten
- Die Bridge-Familie bietet vier Kettenarten:
- prerouting
- Hier können Pakete vor der Forward-Datenbank (FDB) Entscheidung gefiltert werden.
- Die FDB liefert den Bridge-Port, der für eine bestimmte Ziel-MAC-Adresse verwendet wird.
- Wenn es noch keinen Eintrag in der FDB für eine gegebene Ziel-MAC gibt, werden die Pakete an alle Bridge-Ports geflutet.
- Nach der FDB-Entscheidung können Pakete entweder dem Eingangs- oder dem Weiterleitweg folgen.
- input
- Hier können Pakete gefiltert werden, die an den IP-Stack übergeben werden.
- Wenn Ihre Bridge-Schnittstelle eine IP-Adresse hat und Pakete an diese IP-Adresse gehen (oder diese IP-Adresse als Gateway verwendet wird), folgen die Pakete diesem Pfad (in diesem Fall verlassen die Pakete die Bridge, um in den IP-Stack einzutreten, also werden die Pakete "geroutet").
- forward
- Diese Hook kann verwendet werden, um Pakete zu filtern, die von einem Bridge-Port eingehen und an einen anderen Bridge-Port geliefert werden (dies ist der Bridge-Weiterleitungspfad, in diesem Fall werden die Pakete "gebridged").
- output
- Hier können Pakete gefiltert werden, die vom IP-Stack kommen und deren Ziel der Bridge-Port ist.
- postrouting
- Hier können Pakete gefiltert werden, die entweder vom IP-Stack kommen oder von einem anderen Bridge-Port weitergeleitet werden.
Arp
- arp ist im Gegensatz zur Layer 3 Firewall nicht automatisch freigeschaltet
Ein weiteres Beispiel zum Akzeptieren von ARP-Paketen
- nft add rule bridge filter forward ether type arp accept
Zustandsabhängige Filterung
- Die Bridge-Familie unterstützt die Verbindungsverfolgung.
- Sie müssen nur auf den Verbindungsstatusinformationen aus Ihrer Regelmenge übereinstimmen, um dies zu aktivieren.
Beispiel: Zustandsabhängige Bridge-Firewall
- Wir erstellen einen bridgefilter
- Wir erstellen die Policy drop
- Connection Tracking wie üblich
- arp ist generell erlaubt
nftables schnellstart
Bridge Firewall
Regeln
#!/usr/sbin/nft -f
flush ruleset
table bridge filter {
chain forward {
type filter hook forward priority 0; policy drop;
ct state established,related accept
iif enp0s8 ether type arp accept
iif enp0s9 ether type arp accept
oif enp0s9 udp dport 53 ct state new accept
oif enp0s9 tcp dport 80 ct state new accept
oif enp0s9 tcp dport 443 ct state new accept
oif enp0s9 ip protocol icmp ct state new accept
# Loggen von abgelehnten Paketen
log prefix " nftables drop: "
}
}

