j'ai désinstallé iptables comme recommandé et j'ai utilisé cette config. ça fonctionne
Super, merci pour le retour.]]>
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
merci à tous pour votre aide !]]>
On peu mettre une règle ipv6 dans la table ?
Oui car on a utilisé inet comme famille dans le code :
Ç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).]]>
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 :
ne concerne que l'icmp de l'ivp4. Donc il fallait autoriser aussi ces messages
pour ipv6.]]>
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.]]>
La question que je me pose : est-il possible que certains
paquets faisant partie d'une connexion déjà existante puissent avoir ces bits de
positionnés en même temps ?
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.]]>
Possible, je ne connais pas encore la syntaxe de nftables.
Moi, je n'ai jamais maîtrisé la syntaxe iptables, je trouve la syntaxe nftables plus
facile à retenir et surtout à lire.]]>
Où as-tu lu cette phrase ?
ici : https://www.konsecurity.com/nmap-advance-scanning/
Mais ce n'est pas la doc de nmap comme je l'ai prétendu…
Encore une doc approximative… j'en trouve tellement de mal faite
sur ce sujet que les bons documents sont précieux.]]>
Aussi avec nftables il faut utiliser « == » ou « eq ». Il me semble qu'avec iptables c'était « = ».
Possible, je ne connais pas encore la syntaxe de nftables. En revanche iptables n'utilisait pas du tout ce genre d'expression, la syntaxe était complètement différente.
]]>
on devrait détecter aussi bien les scans Xmas Tree de nmap et les paquets ayant des flags en plus.
La question que je me pose : est-il possible que certains
paquets faisant partie d'une connexion déjà existante puissent avoir ces bits de
positionnés en même temps ?]]>
En fait j'ai mal lu, il est dit « In this type of scan, Nmap will send the packets with URG, FIN, and PSH, and flags activated.» Ce qui correspond à tous les bits à 1.
Où as-tu lu cette phrase ? Sa formulation est bizarre, j'ai l'impression que soit il manque quelque chose juste avant "flags", soit ", and" est en trop.
La page de manuel et la documentation en ligne de nmap sont sans ambiguïté : "Sets the FIN, PSH, and URG flags".]]>
Un nombre, ce n'est pas très lisible. Il vaudrait mieux utiliser une expression de la même forme que le masque (flag|flag|...).
Avec cette expression :
tcp flags & (fin|psh|urg) = (fin|psh|urg)
on devrait détecter aussi bien les scans Xmas Tree de nmap et les paquets ayant des flags en plus.
Bonne idée. Je vais l'écrire comme ça dorénavant, et aussi je mettrai ces règles après
la règle « ct state invalid drop », et avant « ct state related,established accept » ça permet un premier filtrage avec le suivi de connexion.
Aussi avec nftables il faut utiliser « == » ou « eq ». Il me semble qu'avec iptables c'était « = ».
https://wiki.nftables.org/wiki-nftables … xpressions]]>
Dans la doc de nmap ils disent que les flags FIN, URG et PUSH sont activés
pour ces paquets. Ce qui ne correspond pas à « tous les flags sont activés ».
En effet, je vois ça. Sur Wikipédia (https://en.wikipedia.org/wiki/Christmas_tree_packet), c'est un peu contradictoire : l'article commence par dire que tous les bits d'option sont activés, puis mentionne les même flags que nmap.
EDIT : la section "talk" de la page aborde cette contradiction.
La RFC 1025 (https://tools.ietf.org/html/rfc1025) mentionne SYN,URG, PUSH, FIN comme exemple de paquet "christmas tree", laissant entendre que la définition n'est pas figée.
tcp flags & (fin|syn|rst|psh|ack|urg) = 63
Un nombre, ce n'est pas très lisible. Il vaudrait mieux utiliser une expression de la même forme que le masque (flag|flag|...).
Avec cette expression :
on devrait détecter aussi bien les scans Xmas Tree de nmap et les paquets ayant des flags en plus.]]>
Dans la doc de nmap ils disent que les flags FIN, URG et PUSH sont activés
pour ces paquets. Ce qui ne correspond pas à « tous les flags sont activés ».
En fait j'ai mal lu, il est dit « In this type of scan, Nmap will send the packets with URG, FIN, and PSH, and flags activated.» Ce qui correspond à tous les bits à 1.]]>