Werden meine TCP-Verbindungen von der Regierung meines Landes sabotiert?

14

Ich bin misstrauisch, dass die Regierung meines Landes das empfangene ACK-Paket auf TCP-Verbindungen irgendwie zerstört.

Wenn ich versuche, eine TCP-Verbindung zu einem externen Host über andere Ports als 80 herzustellen, ist der TCP-Handshake nicht erfolgreich. Ich habe die pcap-Datei (gmail.pcap: http://www.slingfile.com/file/aWXGLLFPwb ) erfasst und festgestellt, dass mein Computer die ACK nach dem Senden von TCP SYN empfängt, aber nicht mit einer SYN-ACK beantwortet eine RST.

Ich habe das ACK-Paket von einem externen Host überprüft, aber es scheint völlig legitim zu sein. Die Sequenznummer und alle mir bekannten Flags sind korrekt. Kann mir jemand sagen, warum mein Computer (ein Linux-Computer) das RST-Paket sendet?

pcap screenshot

Mohammad
quelle
Dürfen wir uns erkundigen, in welchem ​​Land?
Kev
Ich habe es bewusst nicht erwähnt. Aber jetzt, wo du fragst, kann ich mir keinen Grund vorstellen, warum ich es nicht erzählen soll. Dies ist eines meiner täglichen Probleme im Iran.
Mohammad
Wird die Aufzeichnung von Ihrem Computer übernommen, um die Verbindung herzustellen?
The-Wabbit
Ja. Ich führe tcpdump -w gmail.pcap und dann telnet gmail.com 443 aus.
Mohammad
Telnet wird nicht funktionieren, Sie müssen meine Antwort unten sehen :-)
Der Unix-Hausmeister

Antworten:

6

Aus der cmd-Zeile:

openssl s_client -connect serveryourtryingtocontact.com:443

Hiermit sollte überprüft werden, ob Sie eine SSL-Verbindung zum Remote-Host herstellen können. Vielleicht einen Wireshark aus diesem Verkehr machen.

Wenn Sie nicht openssl haben, dann können Sie apt-get install openssl.

Wir müssen feststellen, wo die RST generiert wird. Passiert das für alle SSL-Sites? Haben Sie eine direkte Verbindung zu Ihrem NAT-Gateway? Benutzt du einen Proxy?

Mit dieser Methode schließen Sie Probleme mit Ihrem SSL-Stack aus.

Der Unix-Hausmeister
quelle
Das Problem ist nicht SSL. Es ist TCP. Die TCP-Verbindung wird nicht an erster Stelle hergestellt, sodass SSL nicht einmal mit dem Senden des Headers beginnt. Es ist nicht nur die 443-Portnummer. Ich kann nicht einmal eine normale HTTP-Verbindung zu einem Server auf Port 8000 herstellen und Ihr openssl-Befehl führt zu "connect: Connection timed out"
Mohammad,
5

Obwohl der iranischen Regierung nachgesagt wird, dass sie von Zeit zu Zeit HTTPS unterbricht, sieht es aus den von Ihnen bereitgestellten Daten lediglich so aus, als ob das antwortende SYN-ACK-Paket von 173.194.32.22 bei Ihrem Host ankommt, es aber niemals zu Ihrem TCP-Stack schafft. Der Stack versucht erneut, SYNs nach jeweils einer Sekunde, zwei Sekunden, vier Sekunden und acht Sekunden zu senden - es wird jedoch anscheinend nie eine Antwort angezeigt.

Die eingehende SYN, ACK scheint gefiltert zu sein - Sie haben keine iptablesRegel für TCP-Verkehr in Ihrer INPUT-Kette, die REJECT --reject-with tcp-resetzufällig ein Ziel hat ?

das-wabbit
quelle
Nein, meine iptables haben überhaupt keine Regeln und in einem anderen Punkt muss ich sagen, dass ich erfolgreich eine TCP-Verbindung zu jedem Host im Iran oder sogar zu ein paar fremden Websites herstellen kann (eigentlich nur kernel.org!)
Mohammad
1
Ich vermute, dass die Regierung das zweite Paket (SYN / ACK) ändert, sodass das Paket nicht gültig ist und es daher niemals zum TCP-Stack gelangt.
Mohammad
1
@Mohammad Das Paket ist gültig. Selbst wenn dies nicht der Fall wäre, würde der Stack nicht beides tun: Mit einem RST antworten und so fortfahren, als ob er nicht empfangen worden wäre. Etwas fängt es auf dem Weg zum Stapel. Ich schlage vor, eine bekanntermaßen saubere Installation (z. B. eine Live-Linux-CD) zu
starten
Vielen Dank. Ich konnte selbst kein Problem mit dem ACK-Paket finden. Aber die Sache ist, dass dieses Problem jeden Tag (seit 4 Tagen) morgens an meinem Arbeitsplatz auftritt! Jeder Körper (ca. 50 Personen) hat genau das gleiche Problem und ich frage mich immer noch warum? Zuhause habe ich nicht das gleiche Problem, aber ich höre von meinen Freunden, dass das Internet heutzutage ernsthafte Probleme hat.
Mohammad
3
@Mohammad dann auf Malware prüfen. Das Ausführen einer bekanntermaßen sauberen Installation wie oben vorgeschlagen ist ein einfacher und wichtiger Test für diesen Fall.
The-Wabbit