Nftables Host absichern: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 6: | Zeile 6: | ||
*Wir wollen nun folgendes tun: | *Wir wollen nun folgendes tun: | ||
*<span style="color:#202FF0">Der Rechner soll mit sich selbst über das Loopback Interface kommunizieren können.</span> | *<span style="color:#202FF0">Der Rechner soll mit sich selbst über das Loopback Interface kommunizieren können.</span> | ||
| − | *<span style="color:#004334">Vom Rechner selbst nach aussen soll zugelassen werden | + | *<span style="color:#004334">Vom Rechner selbst nach aussen soll alles zugelassen werden </span> |
*<span style="color:#8a2be2">Auf den Rechner soll per "ssh, http und https" zugegriffen werden können.</span> | *<span style="color:#8a2be2">Auf den Rechner soll per "ssh, http und https" zugegriffen werden können.</span> | ||
| Zeile 12: | Zeile 12: | ||
*cat /etc/nftables.conf | *cat /etc/nftables.conf | ||
#!/usr/sbin/nft -f | #!/usr/sbin/nft -f | ||
| + | flush ruleset | ||
| + | |||
<span style="color:#8a2be2">define local_tcp_ports = { 22 }</span> | <span style="color:#8a2be2">define local_tcp_ports = { 22 }</span> | ||
| − | |||
table inet filter { | table inet filter { | ||
chain input { | chain input { | ||
| Zeile 31: | Zeile 32: | ||
} | } | ||
} | } | ||
| + | |||
=Wir schalten ping frei= | =Wir schalten ping frei= | ||
*cat /etc/nftables.conf | *cat /etc/nftables.conf | ||
| Zeile 74: | Zeile 76: | ||
ct state new tcp dport $local_tcp_ports accept | ct state new tcp dport $local_tcp_ports accept | ||
ct state new icmp type echo-request accept | ct state new icmp type echo-request accept | ||
| − | <span style="color:#FF0000">log prefix "--nftables-drop-input--"</span> | + | <span style="color:#FF0000">log prefix " --nftables-drop-input-- "</span> |
} | } | ||
| Zeile 84: | Zeile 86: | ||
ct state new oifname "lo" accept | ct state new oifname "lo" accept | ||
ct state new accept | ct state new accept | ||
| − | <span style="color:#FF0000">log prefix "--nftables-drop-output--"</span> | + | <span style="color:#FF0000">log prefix " --nftables-drop-output-- "</span> |
} | } | ||
} | } | ||
</pre> | </pre> | ||
| + | |||
| + | |||
==nftables Logging über journalctl == | ==nftables Logging über journalctl == | ||
| Zeile 97: | Zeile 101: | ||
*journalctl -k -f -g nftables -o short-iso | *journalctl -k -f -g nftables -o short-iso | ||
;Nur drop-input | ;Nur drop-input | ||
| + | *journalctl -k -f -g nftables-drop-input | ||
=Aktivieren der Firewall beim Systemstart= | =Aktivieren der Firewall beim Systemstart= | ||
*systemctl enable nftables --now | *systemctl enable nftables --now | ||
| + | |||
| + | =Source oder Destination IP oder Netze= | ||
| + | ;Hinweis für die Aufgaben. | ||
| + | Source Ips oder Netze werden mit einem '''ip saddr IP''' angeben | ||
| + | |||
| + | Destination Ips oder Netze werden mit einem '''ip daddr IP''' angeben | ||
| + | ;Beispiele | ||
| + | *ct state new ip daddr 192.168.2.8 tcp dport 22 accept | ||
| + | *ct state new ip saddr 192.168.2.8 tcp dport 22 accept | ||
Aktuelle Version vom 25. Juli 2025, 11:53 Uhr
Die ersten wirklichen Regeln die etwas bewirken
- Momentan wollen wir nur den Host absichern.
- Darum können wir die forward Kette erstmal aussen vor lassen.
- Wir beziehen uns also nur auf den Host selbst.
- Wir wollen nun folgendes tun:
- Der Rechner soll mit sich selbst über das Loopback Interface kommunizieren können.
- Vom Rechner selbst nach aussen soll alles zugelassen werden
- Auf den Rechner soll per "ssh, http und https" zugegriffen werden können.
Die erste sinnvolle Konfiguration
- cat /etc/nftables.conf
#!/usr/sbin/nft -f flush ruleset
define local_tcp_ports = { 22 } table inet filter { chain input { type filter hook input priority filter; policy drop; ct state established,related accept ct state new iif "lo" accept ct state new tcp dport $local_tcp_ports accept } chain output { type filter hook output priority filter; policy drop; ct state established,related accept ct state new accept } }
Wir schalten ping frei
- cat /etc/nftables.conf
#!/usr/sbin/nft -f define local_tcp_ports = { 22 } flush ruleset table inet filter { chain input { type filter hook input priority filter; policy drop; ct state established,related accept ct state new iif "lo" accept ct state new tcp dport $local_tcp_ports accept ct state new icmp type echo-request accept } chain output { type filter hook output priority filter; policy drop; ct state established,related accept ct state new accept } }
Wir laden nun die Konfiguration
- nft -f /etc/nftables.conf
Wir loggen
- Wir wollen die abgelehnten Pakete loggen.
- Die Idee dahinter ist, wir schreiben eine Regel kurz bevor die Default Policy greift.
- Neu: Wir fügen in jeder Kette eine log-Regel ein, um verworfene Pakete zu protokollieren
- cat /etc/nftables.conf
#!/usr/sbin/nft -f
define local_tcp_ports = { 22 }
flush ruleset
table inet filter {
chain input {
type filter hook input priority filter; policy drop;
ct state established,related accept
ct state new iifname "lo" accept
ct state new tcp dport $local_tcp_ports accept
ct state new icmp type echo-request accept
log prefix " --nftables-drop-input-- "
}
chain output {
type filter hook output priority filter; policy drop;
ct state established,related accept
ct state new oifname "lo" accept
ct state new accept
log prefix " --nftables-drop-output-- "
}
}
nftables Logging über journalctl
- Erklärung
- journalctl -k -f -g nftables
- Nur Logtext ohne Metadaten
- journalctl -k -f -g nftables -o cat
- Logausgabe mit ISO-Zeitformat
- journalctl -k -f -g nftables -o short-iso
- Nur drop-input
- journalctl -k -f -g nftables-drop-input
Aktivieren der Firewall beim Systemstart
- systemctl enable nftables --now
Source oder Destination IP oder Netze
- Hinweis für die Aufgaben.
Source Ips oder Netze werden mit einem ip saddr IP angeben
Destination Ips oder Netze werden mit einem ip daddr IP angeben
- Beispiele
- ct state new ip daddr 192.168.2.8 tcp dport 22 accept
- ct state new ip saddr 192.168.2.8 tcp dport 22 accept