Mes connexions TCP sont-elles sabotées par le gouvernement de mon pays?

14

Je soupçonne que le gouvernement de mon pays détruit le paquet ACK reçu sur les connexions TCP, d'une manière ou d'une autre.

Lorsque j'essaie d'établir une connexion TCP avec un hôte extérieur sur des ports autres que 80, la négociation TCP échoue. J'ai capturé le fichier pcap (gmail.pcap: http://www.slingfile.com/file/aWXGLLFPwb ) et j'ai découvert que mon ordinateur recevra l'ACK après l'envoi de TCP SYN mais au lieu de répondre avec un SYN ACK il enverra une TVD.

J'ai vérifié le paquet ACK de l'hôte extérieur, mais il semble tout à fait légitime. Le numéro de séquence et tous les indicateurs que je connais sont corrects. Quelqu'un pourrait-il me dire pourquoi mon ordinateur (une machine Linux) enverra le paquet RST?

capture d'écran pcap

Mohammad
la source
Pouvons-nous demander quel pays?
Kev
Je ne l'ai délibérément pas mentionné. Mais maintenant que vous posez la question, je ne vois aucune raison de ne pas le dire. C'est l'un de mes problèmes quotidiens en Iran.
Mohammad
La capture prise depuis votre ordinateur tente-t-elle d'établir la connexion?
le-wabbit du
Oui. J'exécute tcpdump -w gmail.pcap puis telnet gmail.com 443.
Mohammad
telnet ne fonctionnera pas, vous devez voir ma réponse ci-dessous :-)
The Unix Janitor

Réponses:

6

De la ligne cmd:

openssl s_client -connect serveryourtryingtocontact.com:443

Cela devrait vérifier si vous pouvez vous connecter SSL à l'hôte distant. Faites peut-être un Wireshark de ce trafic.

Si vous n'avez pas openssl, vous pouvez apt-get install openssl.

Nous devons déterminer où la TVD est générée. Cela arrive-t-il à tous les sites SSL? Avez-vous une connexion directe à votre passerelle NAT? Utilisez-vous un proxy?

L'utilisation de cette méthode exclut tout problème avec votre pile SSL.

Le concierge Unix
la source
Le problème n'est pas SSL. C'est TCP. La connexion TCP n'établira pas en premier lieu, donc SSL ne commencera même pas à envoyer son en-tête. ce n'est pas seulement le numéro de port 443, par exemple, je ne peux même pas démarrer une connexion http normale à un serveur sur le port 8000 et votre commande openssl se traduira par "connect: Connection timed out"
Mohammad
5

Bien que le gouvernement iranien soit censé rompre le HTTPS de temps en temps, d'après les données que vous avez fournies, il semble que le SYN qui répond, le paquet ACK de 173.194.32.22 arrive chez votre hôte, mais ne parvient jamais à votre pile TCP. La pile réessaye d'envoyer des SYN après une seconde, deux secondes, quatre secondes et huit secondes respectivement - mais apparemment ne voit jamais de réponse.

Le SYN, ACK entrant semble être filtré - vous n'avez pas de iptablesrègle pour le trafic TCP dans votre chaîne INPUT qui a une REJECT --reject-with tcp-resetcible par hasard?

le-wabbit
la source
Non, mes iptables n'ont pas de règles du tout et sur une autre note, je dois dire que je peux établir une connexion TCP avec succès à n'importe quel hôte en iran ou même à quelques sites Web étrangers (seulement kernel.org en fait!)
Mohammad
1
Je suppose que le gouvernement modifie le deuxième paquet (SYN / ACK) de sorte que le paquet n'est pas valide et qu'il ne parvient donc jamais à la pile TCP.
Mohammad
1
@Mohammad Le paquet est valide. Même si ce n'était pas le cas, la pile ne ferait pas les deux: répondre avec un RST et procéder comme si elle n'avait pas été reçue. Quelque chose l'attrape sur le chemin de la pile. Je suggère de démarrer une installation connue et propre (par exemple un CD Linux en direct) et de relancer les tests
the-wabbit
Je vous remercie. Je n'ai pas pu trouver de problème avec le paquet ACK moi aussi. Mais le problème est que ce problème se produit tous les jours (il y a 4 jours) le matin sur mon lieu de travail! Chaque corps (environ 50 personnes) a exactement le même problème et je me demande toujours pourquoi? Je n'ai pas le même problème à la maison mais mes amis me disent qu'Internet a de sérieux problèmes de nos jours.
Mohammad
3
@Mohammad recherche alors les logiciels malveillants. L'exécution d'une installation propre connue comme suggéré ci-dessus est un test simple et significatif pour ce cas.
the-wabbit