iptables in nftables übersetzen - translation not implemented

GlockMane88

Lt. Commander
Registriert
Aug. 2008
Beiträge
1.310
Hey Leute,

ich versuche eine Reihe von iptables Regeln zu übersetzen, was auch zumeist mit iptables-translate funktioniert, allerdings habe ich bei folgenden Regeln das Problem, dass ich eine "translation not implemented" Warnung bekomme:

Konkret handelt es sich um folgende Zeilen:

Code:
iptables -P FORWARD DROP
iptables -D INPUT -j DROP
iptables -C INPUT -i vif+ -p icmp -j ACCEPT
iptables -D INPUT -i vif+ -p icmp -j ACCEPT
iptables -C INPUT -i vif+ -j REJECT --reject-with icmp-host-prohibited
iptables -D INPUT -i vif+ -j REJECT --reject-with icmp-host-prohibited

Danke an die Linux Experten!

Hier noch das komplette Script, wo ich schon das meiste ersetzt habe:

https://github.com/glockmane/qubes-proxy/blob/main/restrict-firewall
 
  • Gefällt mir
Reaktionen: dasBaum_CH
Bei nftalbes bietet es sich an eine Konfigurationsdatei zu nehmen.

Dein erster Befehl wäre was in der Art: nft add rule inet filter forward drop. Aber wenn du in deiner Konfiguration das so angibst:
NGINX:
...

chain forward {
    type filter hook forward priority 0; policy drop;
 
    ...
}

...

Erzielst du das gleiche Ergebnis.

Die anderen Befehle tun nur checken und löschen. Vielleicht reicht statt löschen auch: systemctl restart nftables.service um die Regeln neu anzulegen.

Ein Check gibt es wohl nicht ganz wie bei iptables, aber es gibt ein list Befehl, z.B.: nft list table inet filter.

Ich würde empfehlen, das Regelwerk einmal komplett neu anzulegen. Das dauert vielleicht am Anfang etwas länger, aber dann weißt du genau, was passiert und kannst das auch in Zukunft besser warten.

Die nftalbes Regeln sollten einfacher sein und unter Umständen brauchst du auch weniger.

Eine nftables.conf wird in etwa so aufgebaut:


NGINX:
flush ruleset

define dev_wan = eth0

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
     
        # Filter Regeln für $dev_wan
    }
 
    chain forward {
        type filter hook forward priority 0; policy drop;
     
        # Forward Regeln
    }
 
    chain output {
        type filter hook output priority 0; policy accept;
    }
}

table inet nat {
    chain prerouting {
        type nat hook prerouting priority -100; policy accept;
     
        # Nat pre-routing Regeln
        # Port Weiterleitung
    }
    chain input {
        type nat hook input priority 100; policy accept;
    }

    chain output {
        type nat hook output priority -100; policy accept;
    }

    chain postrouting {
        type nat hook postrouting priority 100; policy accept;
     
        # Nat post-routing Regeln
    }
}
 
Zuletzt bearbeitet:
@dernettehans das hatte ich vorhin spaßeshalber mal mit Bing Chat versucht, da ich noch nix mit nftables gemacht habe. Trotzdem konnte ich dort auf Anhieb erkennen, dass da viele falsche Befehle dabei waren.
 
"iptables -C" kenne ich gar nicht, aber "iptables -D" müsste doch die Regel dann direkt wieder löschen.

Was soll mit diesen Zeilen also bezweckt werden?
 
Jetzt müsste man noch die übersetzte Version kennen. ICMP-Pakete blockieren ist ja die Aufgabe der fraglichen Zeilen.
 
Zurück
Oben