[Gelöst] nftables filtert nicht

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

[Gelöst] nftables filtert nicht

Beitrag von wanne » 10.07.2019 13:58:48

Mit buster kommt ja jetzt nftables.
So ich versuche gerade mal darauf umzusteigen.
Aber bei mir klappt das vorne und hinten nicht:
Ich habe mal sowas ganz primitives probiert:

Code: Alles auswählen

# nft add rule  filter INPUT tcp dport 1235 reject
# nft list ruleset
table ip filter {
        chain INPUT {
                type filter hook input priority 0; policy accept;
                tcp dport 1235 reject
        }
        […]
Sieht für mich soweit gut aus.
Tut nur nicht:

Code: Alles auswählen

$ ncat  -l 1235 &
$ date | ncat  ::1 1235
Wed 10 Jul 2019 01:56:00 PM CEST
Zuerstmal was ist da falsch?
Aber als zweites: Kann mir irgend jemand so ganz grudsätzlich Tipps geben wo ich da anfangen kann?
Die Fehlermeldungen von nft sind irgend wie absolut nichtssagend.
Die Dokumentation kann man auch nicht als einstieg verwenden.
Im arch-Wiki gibt es eine schöne Übersicht:
https://wiki.archlinux.org/index.php/Nf ... in_a_table
Da tun aber mindestens 2 von 3 regeln nicht unter debian.
Ist das nft da ein anderes? Oder ist das im Debian nur alt?
rot: Moderator wanne spricht, default: User wanne spricht.

TomL

Re: nftables filtert nicht

Beitrag von TomL » 10.07.2019 14:48:05

Code: Alles auswählen

nft add rule  filter INPUT tcp dport 1235 reject
... verwendet offensichtlich "default IPv4"

Code: Alles auswählen

nft add rule ip filter INPUT tcp dport 22  accept
... verwendet ausdrücklich IPv4

Code: Alles auswählen

nft add rule ip6 filter INPUT tcp dport 22  accept
... verwendet ausdrücklich IPv6

Code: Alles auswählen

nft add rule inet filter INPUT tcp dport 22  accept
... gilt für beide Protokolle

In Deinem Beispiel wird versucht, eine IPv4-Regel auf einen IPv6-Sachverhalt ::1 (localhost) anzuwenden.

Ich halte inet-Regeln für stateless-FW gut geeignet, will man allerdings stateful-FW und ggf. individuelle Behandlung (z.B. wg. Zwangstrennung bei Dual-Stack-Accounts) halte ich explizite aufs jeweilige Protokoll bezogene Regeln für besser. Du kannst Dir die Beispiele auf meiner HP ansehen, da sind einige Erklärungen dabei.

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: nftables filtert nicht

Beitrag von wanne » 10.07.2019 15:06:09

Code: Alles auswählen

# nft add rule inet filter INPUT tcp dport 22  accept
Error: Could not process rule: No such file or directory
add rule inet filter INPUT tcp dport 22 accept
# nft add rule ip6 filter INPUT tcp dport 22  accept
Error: Could not process rule: No such file or directory
add rule ip6 filter INPUT tcp dport 22 accept
rot: Moderator wanne spricht, default: User wanne spricht.

TomL

Re: nftables filtert nicht

Beitrag von TomL » 10.07.2019 15:33:14

Ja, is klar... Du musst natürlich schon vorher die notwendigen tables und chains anlegen. Das ist mit nft anders und deutlich flexibler, als zuvor mit iptables. Du kannst hier beliebige eigene Tabellen und Chains erstellen und diese dann mit Regeln füllen. Bei iptables waren die Tabellen bereits mit Namen vorgegeben.

Code: Alles auswählen

# nft flush ruleset

# nft add table inet filter
# nft add chain inet filter input "{ type filter hook input priority 0; counter; }"
# nft add rule inet filter input tcp dport 22  accept

# nft list ruleset
table inet filter {
	chain input {
		type filter hook input priority 0; policy accept;
		tcp dport ssh accept
	}
}
Ach ja... case sensitive .... INPUT != input

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: nftables filtert nicht

Beitrag von wanne » 10.07.2019 23:07:02

Danke. So langsam verstehe ich das glaube ich besser. Wenn man nach tables und chains sucht findet man auch Erklärungen. Das waren wohl die Stichworte, die mir gefehlt haben.
Nochmal vielen Dank. Du hast mir mit dem stupsen in die richtige Richtung echt weiter geholfen.
Btw.
... verwendet offensichtlich "default IPv4"
Cool das super neue Tool verwendet per default wieder ausschließlich den 20 Jahre veralteten Standard. Und das obwohl es eigentlich Hauptfeature ist, dass man da jetzt mehrere Protokolle zusammenfassen kann. Wenn alles per default IPv4 macht werden wir auch nicht in 100 Jahren bei IPv4 hängen.
Bei iptables habe ich das mal unter historisch gewachsen abgehakt. Aber dass man sich hier wieder explizit um beides kümmern muss finde ich bescheuert.
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten