如何检测防火墙是否阻止某些端口

如何检测防火墙是否阻止某些端口

在我的笔记本电脑上我这样做:

 openssl s_client  -connect w00d8dd4.kasserver.com:465

我可以看到连接正常。我还可以执行以下操作:

telnet w00d8dd4.kasserver.com 465

也没问题。

现在,如果我登录到我的云服务器 - 并运行与上面相同的命令 - 例如:

 openssl s_client  -connect w00d8dd4.kasserver.com:465

然后就没有输出,几秒钟后什么也没有发生。

但是,如果我这样做:

openssl s_client -connect kyle.com:443 -showcerts

它立即连接。我还用 -tls1 和 -debug 开关测试过。没有区别。

我认为这可能是由于某些传出连接被防火墙阻止。我该如何调试?

我见过这个问题- 但我找不到合适的指南。我已经安装了 ca-certificates (20211016ubuntu0.22.04.1)。云服务器正在运行 UBuntu :

uname -a 说:

Linux myStep-ubuntu-4gb-nbg1-2 5.15.0-67-generic #74-Ubuntu SMP Wed Feb 22 14:14:39 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

更新

我已经tcptraceroute -p 465 w00d8dd4.kasserver.com从云服务器尝试过了。它找到了一条到目标的路线,结果是:

 1  172.31.1.1  6.736 ms  5.755 ms  5.271 ms


2  17332.your-cloud.host (49.12.141.110)  0.447 ms  0.311 ms  0.280 ms
 3  * * *
 4  static.173.0.47.78.clients.your-server.de (78.47.0.173)  1.230 ms  0.834 ms  0.914 ms
 5  spine12.cloud1.nbg1.hetzner.com (78.47.3.45)  16.399 ms  0.911 ms  1.044 ms
 6  213-239-239-141.clients.your-server.de (213.239.239.141)  1.003 ms  0.515 ms  0.701 ms
 7  core0.fra.hetzner.com (213.239.252.25)  3.715 ms  3.788 ms  3.842 ms
 8  ipv4.de-cix.fra.de.as34788.all-inkl.com (80.81.192.119)  21.491 ms  21.468 ms  21.351 ms
 9  dd5114.kasserver.com (85.13.130.50) [open]  21.720 ms  21.228 ms  21.275 ms

答案1

如果你在自己的服务器上测试这个,数据包捕获是一个很好的开始。它告诉您目标系统(必须执行捕获)是否确实正在接收数据包。

tcpdumptshark是两个通过 SSH 工作的常用工具(Wireshark 是图形化工具)。例如,要捕获来自和/或到端口 465 的所有数据包,请使用:

tcpdump -n -i eth0 "port 465"

tshark -n -i eth0 -f "port 465"

您还可以在源系统上运行相同的捕获 - 如果您看到某些数据包离开源机器但未到达目标,这直接意味着沿途的某些东西阻止了它们。

同时,如果目标服务器如果服务器在其端口 465 上收到 TCP SYN 数据包,但没有返回任何内容,则可能是服务器自己的防火墙阻止了该数据包。(在目标系统的防火墙(如 iptables)有机会丢弃数据包之前,就会捕获收到的数据包 - 当然,在所有中间防火墙之后。)

相关内容