iptables NOUVELLES connexions vs --syn

13

Quelle est la différence entre:

iptables ... -m state --state NEW

et

iptables ... --syn

Le premier doit sélectionner NOUVELLES connexions, mais les nouvelles connexions AFAIK sont établies en envoyant un indicateur de synchronisation TCP. L'autre signifie exactement cela - des paquets avec un drapeau syn.

Pouvez-vous donner des exemples pratiques lorsque les commandes ci-dessus renvoient des résultats différents?

wanson
la source

Réponses:

8

L' --synindicateur est utile pour vérifier le trafic TCP, mais l' NEWétat peut être utilisé pour d'autres protocoles (y compris TCP) comme UDPet ICMP. Je peux dire que NEWc'est plus général que l' --synoption TCP.

Dans le manuel iptables, vous pouvez lire:

NEW    meaning that the packet has started a new connection,
       or otherwise associated with a connection which has not seen packets in both directions

Par exemple, une requête DNS correspondra à l' NEWétat, mais ne correspondra pas à une règle avec --synoption. C'est simplement un datagramme UDP.

En outre, l' --synoption peut être utilisée pour vérifier les paquets TCP avec une combinaison de drapeaux incorrects pour les supprimer.

En outre, vous pouvez utiliser ces deux options ensemble pour vérifier NEWles flux TCP sans --synpremier paquet et les supprimer tels que:

$ sudo iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"

Ici, nous ajoutons ce type de paquets à une chaîne définie par l'utilisateur appelée bad_tcp_packetspour être supprimée / journalisée, etc.

Khaled
la source