我的TCP连接是否受到我国政府的破坏?


14

我怀疑我国政府正在以某种方式销毁TCP连接上收到的ACK数据包。

当我尝试在80以外的端口上建立与外部主机的TCP连接时,TCP握手将不会成功。我捕获了pcap文件(gmail.pcap:http ://www.slingfile.com/file/aWXGLLFPwb ),我发现我的计算机在发送TCP SYN后将收到ACK,但没有回复它会发送的SYN ACK RST。

我检查了来自外部主机的ACK数据包,但这似乎完全合法。我知道的序列号和所有标志都是正确的。谁能告诉我为什么我的计算机(Linux计算机)将发送RST数据包?

pcap屏幕截图


我们可以询问哪个国家吗?
2012年

我故意没有提及。但是,既然您问了,我想不出为什么不告诉的理由。这是我在伊朗的日常问题之一。
穆罕默德

是否从您的计算机上进行的捕获尝试建立连接?
the-wabbit

是。我执行tcpdump -w gmail.pcap,然后执行telnet gmail.com443。–
Mohammad

telnet无法正常工作,您需要在下面查看我的答案:-)
Unix Janitor

Answers:


6

从cmd行:

openssl s_client -connect serveryourtryingtocontact.com:443

这应该验证您是否可以SSL连接到远程主机。也许对这种流量进行Wireshark。

如果您没有openssl,则可以apt-get install openssl

我们必须确定在哪里生成RST。所有SSL站点都会发生这种情况吗?您是否直接连接到NAT网关?您是否使用了代理?

使用此方法可以排除SSL堆栈的任何问题。


问题不在于SSL。它是TCP。首先不会建立TCP连接,因此SSL甚至不会开始发送其标头。它不仅是443端口号,例如,我什至无法在端口8000上启动与服务器的正常http连接,而您的openssl命令将导致“连接:连接超时”
Mohammad

5

尽管有传言说伊朗政府有时会破坏HTTPS,但从您提供的数据来看,它看起来像是来自173.194.32.22的响应SYN,ACK数据包正在到达您的主机,但从未到达您的TCP堆栈。堆栈分别在两秒,两秒,四秒和八秒后重试发送SYN,但显然从没有看到响应。

传入的SYN,ACK似乎已被过滤-您iptables的INPUT链中没有针对tcp流量的规则,该规则有可能是REJECT --reject-with tcp-reset目标?


不,我的iptables没有任何规则可言,并在另一方面,我不得不说,我可以成功建立TCP连接伊朗境内任何主机,甚至一对夫妇的国外网站的(只kernel.org实际!)
穆罕默德

1
我的猜测是政府正在更改第二个数据包(SYN / ACK),因此该数据包无效,因此它永远不会进入TCP堆栈。
穆罕默德

1
@Mohammad数据包有效。即使不是,堆栈也不会同时执行两个操作:用RST响应并像未收到一样继续进行。某种东西正在赶上堆栈。我建议启动一个已知干净的安装(如活的Linux CD),并重新运行测试
对- wabbit

谢谢。我自己也没有发现ACK数据包有任何问题。但是问题是这个问题每天(从4天前开始)每天早上在我的工作场所中发生!每个人(大约50个人)都有完全相同的问题,我仍然想知道为什么吗?我在家没有相同的问题,但我从朋友那里听说,如今互联网存在严重问题。
穆罕默德

3
@Mohammad然后检查恶意软件。对于这种情况,运行上述建议的已知全新安装是一项简单而重要的测试。
the-wabbit
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.