Mon precedent poste est
faux car je n'avais pas regarde la doc d'iptables:
Voila la partie de "man iptables" pour ca:
--tcp-flags [!] mask comp
Match when the TCP flags are as specified. The
first argument is the flags which we should exam
ine, written as a comma-separated list, and the
second argument is a comma-separated list of flags
Mar 09, 2002 15
which must be set. Flags are: SYN ACK FIN RST URG
PSH ALL NONE. Hence the command
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST SYN
will only match packets with the SYN flag set, and
the ACK, FIN and RST flags unset.
donc:
--tcp-flags SYN,RST,ACK SYN
veux dire que le flag SYN
doit etre est mis et les deux autres RST,ACK
ne doivent pas etre mis!
Maintenat que veux dire ?
! --tcp-flags SYN,RST,ACK SYN
C'est (en theorie) le contraire logique du precedent, c.-a-d.:
SYN n'est pas mis
ou RST est mis
ou ACK est mis.
Finalement en plus de ca il faut que l'etat = NEW (state=NEW).
Autrement dit:
C'est rejete (plutot "jete" pour DROP au lieu de REJECT) si
l'etat=NEW
sauf si [le flag SYN est mis et les deux autres RST,ACK ne sont pas mis].
Effectivement cette regle avec les flags est logiquement assez subtils, il faut bien faire attention!