Nftables Grundgerüst Firewall: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „Kategorie:nftables = Eigenschaften der Firewall = * Der Host darf mit sich selbst kommunizieren * Pings werden vom Host beantwortet * Remotezugriff über e…“) |
|||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
* Der Host darf mit sich selbst kommunizieren | * Der Host darf mit sich selbst kommunizieren | ||
* Pings werden vom Host beantwortet | * Pings werden vom Host beantwortet | ||
| − | * Remotezugriff über | + | * Remotezugriff über den SSH Port aus dem LAN (192.168.178.0/24) ist freigeschaltet |
* Bereits etablierte und verwandte Verbindungen werden zugelassen | * Bereits etablierte und verwandte Verbindungen werden zugelassen | ||
| − | * Auf Pakete, die das WAN-Interface verlassen, wird [[nftables Masquerade|Masquerading]] angewendet | + | * Auf Pakete, die das WAN-Interface (''enp0s8'') verlassen, wird [[nftables Masquerade|Masquerading]] angewendet |
| + | * Verworfene Pakete werden ins [[journalctl|Kernel-log]] geschrieben | ||
| + | |||
| + | = Konfiguration = | ||
| + | * nftables bringt eine eigene Datei und den entsprechenden [[:Kategorie:Systemd|Systemd]]-Dienst für eine rebootfähige Konfiguration mit | ||
| + | * '''vim ''/etc/nftables.conf'' ''' | ||
| + | |||
| + | #!/usr/sbin/nft -f | ||
| + | |||
| + | flush ruleset | ||
| + | |||
| + | define landev="enp0s3" | ||
| + | define wandev="enp0s8" | ||
| + | |||
| + | table inet filter { | ||
| + | chain input { | ||
| + | type filter hook input priority 0; policy drop; | ||
| + | iif "lo" accept | ||
| + | ct state { established, related } accept | ||
| + | icmp type echo-request accept | ||
| + | iif $landev ip saddr 192.168.178.0/24 tcp dport 22 accept | ||
| + | log prefix "nftables drop input:" | ||
| + | } | ||
| + | |||
| + | chain output { | ||
| + | type filter hook output priority 0; policy drop; | ||
| + | oif "lo" accept | ||
| + | ct state { established, related } accept | ||
| + | log prefix "nftables drop output:" | ||
| + | } | ||
| + | |||
| + | chain forward { | ||
| + | type filter hook forward priority 0; policy drop; | ||
| + | ct state { established, related } accept | ||
| + | log prefix "nftables drop forward:" | ||
| + | } | ||
| + | } | ||
| + | |||
| + | table inet nat { | ||
| + | chain postrouting { | ||
| + | type nat hook postrouting priority 100; | ||
| + | oif $wandev masquerade | ||
| + | } | ||
| + | } | ||
| + | |||
| + | * '''systemctl enable --now nftables''' | ||
| + | * '''nft list ruleset''' | ||
| + | |||
| + | table inet filter { | ||
| + | chain input { | ||
| + | type filter hook input priority filter; policy drop; | ||
| + | iif "lo" accept | ||
| + | ct state { established, related } accept | ||
| + | iif "enp0s3" ip saddr 192.168.178.0/24 tcp dport 22 accept | ||
| + | log prefix "nftables drop input:" | ||
| + | } | ||
| + | |||
| + | chain output { | ||
| + | type filter hook output priority filter; policy drop; | ||
| + | oif "lo" accept | ||
| + | ct state { established, related } accept | ||
| + | log prefix "nftables drop output:" | ||
| + | } | ||
| + | |||
| + | chain forward { | ||
| + | type filter hook forward priority filter; policy drop; | ||
| + | ct state { established, related } accept | ||
| + | log prefix "nftables drop forward:" | ||
| + | } | ||
| + | } | ||
| + | table inet nat { | ||
| + | chain postrouting { | ||
| + | type nat hook postrouting priority srcnat; policy accept; | ||
| + | oif "enp0s8" masquerade | ||
| + | } | ||
| + | } | ||
Aktuelle Version vom 18. September 2024, 10:33 Uhr
Eigenschaften der Firewall
- Der Host darf mit sich selbst kommunizieren
- Pings werden vom Host beantwortet
- Remotezugriff über den SSH Port aus dem LAN (192.168.178.0/24) ist freigeschaltet
- Bereits etablierte und verwandte Verbindungen werden zugelassen
- Auf Pakete, die das WAN-Interface (enp0s8) verlassen, wird Masquerading angewendet
- Verworfene Pakete werden ins Kernel-log geschrieben
Konfiguration
- nftables bringt eine eigene Datei und den entsprechenden Systemd-Dienst für eine rebootfähige Konfiguration mit
- vim /etc/nftables.conf
#!/usr/sbin/nft -f
flush ruleset
define landev="enp0s3"
define wandev="enp0s8"
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iif "lo" accept
ct state { established, related } accept
icmp type echo-request accept
iif $landev ip saddr 192.168.178.0/24 tcp dport 22 accept
log prefix "nftables drop input:"
}
chain output {
type filter hook output priority 0; policy drop;
oif "lo" accept
ct state { established, related } accept
log prefix "nftables drop output:"
}
chain forward {
type filter hook forward priority 0; policy drop;
ct state { established, related } accept
log prefix "nftables drop forward:"
}
}
table inet nat {
chain postrouting {
type nat hook postrouting priority 100;
oif $wandev masquerade
}
}
- systemctl enable --now nftables
- nft list ruleset
table inet filter {
chain input {
type filter hook input priority filter; policy drop;
iif "lo" accept
ct state { established, related } accept
iif "enp0s3" ip saddr 192.168.178.0/24 tcp dport 22 accept
log prefix "nftables drop input:"
}
chain output {
type filter hook output priority filter; policy drop;
oif "lo" accept
ct state { established, related } accept
log prefix "nftables drop output:"
}
chain forward {
type filter hook forward priority filter; policy drop;
ct state { established, related } accept
log prefix "nftables drop forward:"
}
}
table inet nat {
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
oif "enp0s8" masquerade
}
}