Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#26 10-08-2019 14:07:23

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : [résolu] Migration d'iptables à nftables

raleur a écrit :

Normalement non, à ma connaissance. FIN annonce la fin de la connexion, et PSH et URG ne sont normalement utilisés que si le segment contient des données. Mais je ne suis pas sûr à 100% qu'un paquet FIN ne peut pas contenir de données. Ceci dit FIN implique PUSH, donc il ne devrait pas y avoir de PSH avec FIN.


Merci pour cette précision. Je savais que FIN voulait dire fin de connexion pour
le reste je ne connais pas les séquences autorisées pour tcp, je connais juste
le syn, syn-ack, ack pour le début de la connexion.

Hors ligne

#27 10-08-2019 18:42:44

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : [résolu] Migration d'iptables à nftables

Bon pour résumer je propose les règles suivantes :


#! /usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        iif lo accept
        ct state invalid drop
        ct state new,related tcp flags & (fin|syn|rst|psh|ack|urg) != syn limit rate 2/second burst 3 packets  log prefix "TCP INPUT without SYN " drop
        tcp flags & (fin|syn|rst|psh|ack|urg) eq 0 limit rate 2/seconds burst 3 packets log prefix "INPUT_NULL " drop
        tcp flags & (fin|psh|urg) eq (fin|psh|urg) limit rate 2/seconds burst 3 packets log prefix "INPUT_XMASS " drop
        ct state related,established accept
        ct state new tcp dport {ssh, https, 22317} accept
        icmp type { destination-unreachable, time-exceeded, parameter-problem } accept
        icmpv6 type { destination-unreachable, time-exceeded, parameter-problem } accept
        ip6 nexthdr icmpv6 icmpv6 type { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } accept
    }

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

    chain output {
            type filter hook output priority 0; policy accept;
    }
}
 


On peut supprimer les logs en supprimant « limit rate 2/seconds burst 3 packets log prefix "* " »
des règles 3, 4 et 5 de la chaîne input.
On ne pourra pas pinger le serveur depuis l'extérieur.

Edit : J'ai rajouté quelques messages icmpv6 pour être cohérent.
En effet le fait d'avoir mis :


icmp type { destination-unreachable, time-exceeded, parameter-problem } accept
 


ne concerne que l'icmp de l'ivp4. Donc il fallait autoriser aussi ces messages
pour ipv6.

Dernière modification par enicar (12-08-2019 01:18:56)

Hors ligne

#28 10-08-2019 19:30:32

robert2a
Membre
Distrib. : debian 11
(G)UI : Mate
Inscription : 15-11-2014

Re : [résolu] Migration d'iptables à nftables

On peu mettre une règle ipv6 dans la table ? , je vois la dernière c'est pour accepter les messages des routeurs ipv6
ou je me trompe roll

Hors ligne

#29 10-08-2019 19:52:31

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : [résolu] Migration d'iptables à nftables

robert2a a écrit :

On peu mettre une règle ipv6 dans la table ?


Oui car on a utilisé inet comme famille dans le code :


table inet filter { #…
 


Ça correspond à « ip + ip6 », c'est pratique ça permet de faire des règles pour
ipv4 et ipv6 d'un seul coup.
Mais pour certaines règles on peut dire si c'est pour de l'ipv4 (avec ip) ou de l'ipv6
(avec ip6).

Hors ligne

#30 15-08-2019 17:00:05

llwynrt
Membre
Lieu : Angers
Inscription : 10-08-2019

Re : [résolu] Migration d'iptables à nftables

enicar a écrit :

Bon pour résumer je propose les règles suivantes :


#! /usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        iif lo accept
        ct state invalid drop
        ct state new,related tcp flags & (fin|syn|rst|psh|ack|urg) != syn limit rate 2/second burst 3 packets  log prefix "TCP INPUT without SYN " drop
        tcp flags & (fin|syn|rst|psh|ack|urg) eq 0 limit rate 2/seconds burst 3 packets log prefix "INPUT_NULL " drop
        tcp flags & (fin|psh|urg) eq (fin|psh|urg) limit rate 2/seconds burst 3 packets log prefix "INPUT_XMASS " drop
        ct state related,established accept
        ct state new tcp dport {ssh, https, 22317} accept
        icmp type { destination-unreachable, time-exceeded, parameter-problem } accept
        icmpv6 type { destination-unreachable, time-exceeded, parameter-problem } accept
        ip6 nexthdr icmpv6 icmpv6 type { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } accept
    }

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

    chain output {
            type filter hook output priority 0; policy accept;
    }
}
 


j'ai désinstallé iptables comme recommandé et j'ai utilisé cette config. ça fonctionne yes.gif

merci à tous pour votre aide !

Hors ligne

#31 15-08-2019 17:06:57

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : [résolu] Migration d'iptables à nftables

llwynrt a écrit :

j'ai désinstallé iptables comme recommandé et j'ai utilisé cette config. ça fonctionne


Super, merci pour le retour.

Hors ligne

Pied de page des forums