Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

réponse RST à un SYN-ACK

7 réponses
Avatar
Kevin Denis
Bonjour,

j'ai une trace tcpdump montrant un comportement curieux.

Régulièrement, j'ai un paquet arrivant avec les caractéristiques:

IP dst: mon IP
IP src: Une IP quelconque
TCP port dst: un port quelconque > 1024
TCP port src: le port 80
Seq=0
Ack=0
Window=quelconque
Len=0
FLAGS: SYN-ACK

Je précise que cette machine n'est pas client web. Cette machine n'a
jamais envoyé de paquet SYN.

Bref.
Là ou je suis surpris, c'est qu'elle répond par un paquet
TCP RST. Selon vous, est-ce que la réaction de la machine est normale?

Je viens de tester sur un linux récent, et lorsque je forge ce type
de paquet (SYN-ACK sans qu'il y ait de SYN), je n'ai pas de TCP RST
envoyé. La machine n'a pas de firewall.

Merci
--
Kevin

7 réponses

Avatar
Pascal Hambourg
Salut,

Kevin Denis a écrit :

j'ai une trace tcpdump montrant un comportement curieux.

Régulièrement, j'ai un paquet arrivant avec les caractéristiques:

IP dst: mon IP
IP src: Une IP quelconque
TCP port dst: un port quelconque > 1024
TCP port src: le port 80
Seq=0
Ack=0
Window=quelconque
Len=0
FLAGS: SYN-ACK

Je précise que cette machine n'est pas client web. Cette machine n'a
jamais envoyé de paquet SYN.

Bref.
Là ou je suis surpris, c'est qu'elle répond par un paquet
TCP RST. Selon vous, est-ce que la réaction de la machine est normale?



Il me semble que oui.

Je viens de tester sur un linux récent, et lorsque je forge ce type
de paquet (SYN-ACK sans qu'il y ait de SYN), je n'ai pas de TCP RST
envoyé. La machine n'a pas de firewall.



Chez moi Linux 2.4.37 et 2.6.18 sans filtrage renvoient bien un RST en
réponse à un SYN/ACK inattendu.
Avatar
Kevin Denis
Le 24-02-2010, Pascal Hambourg a écrit :
Là ou je suis surpris, c'est qu'elle répond par un paquet
TCP RST. Selon vous, est-ce que la réaction de la machine est normale?



Il me semble que oui.



Ok. Je viens de relire mon TCP/IP illustré, et effectivement cela semble
normal.

Je viens de tester sur un linux récent, et lorsque je forge ce type
de paquet (SYN-ACK sans qu'il y ait de SYN), je n'ai pas de TCP RST
envoyé. La machine n'a pas de firewall.



Chez moi Linux 2.4.37 et 2.6.18 sans filtrage renvoient bien un RST en
réponse à un SYN/ACK inattendu.



Pourtant, je reteste et ma machine n'envoie pas de RST:
:/proc/sys/net/netfilter# tcpdump -ni eth0 -s0 -X tcp port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
18:53:22.598713 IP 192.168.103.16.80 > 192.168.103.28.8487: Flags [S.], seq 0,
ack 0, win 8480, length 0
0x0000: 4500 0028 b704 4000 8006 f44d c0a8 6710 E..(
0x0010: c0a8 671c 0050 2127 0000 0000 0000 0000 ..g..P!'........
0x0020: 5012 2120 1dbe 0000 0000 0000 0000 P.!...........

1 packets captured
1 packets received by filter
0 packets dropped by kernel
:/proc/sys/net/netfilter# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Curieux.
--
Kevin
Avatar
Pascal Hambourg
Kevin Denis a écrit :
Le 24-02-2010, Pascal Hambourg a écrit :

Chez moi Linux 2.4.37 et 2.6.18 sans filtrage renvoient bien un RST en
réponse à un SYN/ACK inattendu.



Pourtant, je reteste et ma machine n'envoie pas de RST:



Quelle version de noyau ?
Comment le paquet SYN/ACK est-il généré ? Pour ma part j'ai utilisé sendip.

:/proc/sys/net/netfilter# iptables -L -n



Je préfère la sortie d'iptables-save, plus complète.
Avatar
Dominique ROUSSEAU
Le mer, 24 fév 2010 at 17:58 GMT, Kevin Denis a écrit :
:/proc/sys/net/netfilter# tcpdump -ni eth0 -s0 -X tcp port 80



Oh, on dirait une slackware :)
Avatar
Kevin Denis
Le 24-02-2010, Dominique ROUSSEAU a écrit :
:/proc/sys/net/netfilter# tcpdump -ni eth0 -s0 -X tcp port 80



Oh, on dirait une slackware :)



C'est même une slackware64. Ce nom darkstar est effectivement typique :)
--
Kevin
Avatar
Kevin Denis
Le 24-02-2010, Pascal Hambourg a écrit :
Chez moi Linux 2.4.37 et 2.6.18 sans filtrage renvoient bien un RST en
réponse à un SYN/ACK inattendu.



Pourtant, je reteste et ma machine n'envoie pas de RST:



Quelle version de noyau ?


:~# uname -a
Linux darkstar 2.6.29.6 #2 SMP Mon Aug 17 11:58:18 CDT 2009 x86_64 Intel(R)
Core(TM)2 Duo CPU E7400 @ 2.80GHz GenuineIntel GNU/Linux
:~#
C'est le noyau standard de la slackware13.

Comment le paquet SYN/ACK est-il généré ? Pour ma part j'ai utilisé sendip.



Je n'avais qu'un poste windows sous la main, j'ai utilisé frameip.exe

:/proc/sys/net/netfilter# iptables -L -n



Je préfère la sortie d'iptables-save, plus complète.



:~# iptables-save
# Generated by iptables-save v1.4.3.2 on Thu Feb 25 09:24:21 2010
*mangle
:PREROUTING ACCEPT [11594:5316548]
:INPUT ACCEPT [11491:5307910]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4557:4615366]
:POSTROUTING ACCEPT [4557:4615366]
COMMIT
# Completed on Thu Feb 25 09:24:21 2010
# Generated by iptables-save v1.4.3.2 on Thu Feb 25 09:24:21 2010
*nat
:PREROUTING ACCEPT [2502:354443]
:POSTROUTING ACCEPT [1133:68028]
:OUTPUT ACCEPT [1133:68028]
COMMIT
# Completed on Thu Feb 25 09:24:21 2010
# Generated by iptables-save v1.4.3.2 on Thu Feb 25 09:24:21 2010
*filter
:INPUT ACCEPT [35387:17451716]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [27440:16674021]
COMMIT
# Completed on Thu Feb 25 09:24:21 2010
:~#
--
Kevin
Avatar
Pascal Hambourg
Kevin Denis a écrit :
Le 24-02-2010, Pascal Hambourg a écrit :
Chez moi Linux 2.4.37 et 2.6.18 sans filtrage renvoient bien un RST en
réponse à un SYN/ACK inattendu.



Pourtant, je reteste et ma machine n'envoie pas de RST:


Quelle version de noyau ?


:~# uname -a
Linux darkstar 2.6.29.6 #2 SMP Mon Aug 17 11:58:18 CDT 2009 x86_64 Intel(R)



J'ai testé avec le 2.6.29 d'une Mandriva Live.
Au début, pas de RST. Idem après avoir vidé toutes les règles iptables
créées par shorewall. Puis en déchargeant les modules liés à
netfilter/iptables, j'ai fini par avoir un RST. Mais je n'ai pas réussi
à identifier le module responsable, car en même rechargeant les derniers
modules que j'avais déchargés, j'ai toujours un RST. Peut-être un
réglage particulier ou une option d'un module que je n'ai pas su trouver...