如何侦听所有端口(UDP 和 TCP)或使它们全部显示为打开(linux)

信息安全 防火墙 港口
2021-09-05 11:13:55

我有一个外部 Debian 服务器。问题是当端口与 TCP 端口 22、80、443 或 UDP 端口 123 不同时,我的大学校园不允许连接到外面。我手动测试了它们。在我的 Debian 服务器上,我想监听我所有的 UDP 和 TCP 端口,这样我就可以清楚地找出我的大学允许哪些 TCP 和 UDP 端口通过他们的防火墙。Nmap 在客户端可以很好地进行测试,但是在服务器端我应该怎么做呢?

4个回答

一个简单而被动的解决方案是将所有传入连接尝试记录到系统日志中,运行扫描,然后在您回家时查看日志。使用 iptables,您可以像这样记录连接:

iptables -A INPUT -p tcp -m state --state new -j LOG --log-prefix "New connection: "

这样一来,您就不需要运行响应所有连接尝试的服务。

简单的方法:

使用您的常规应用程序在一个端口上列出。用于iptables通过 dnat 模块将所有端口转发到开放端口。

iptables -A PREROUTING -i interface -p tcp -j DNAT --to-destination your.ip:port
iptables -A PREROUTING -i interface -p tcp -j DNAT --to-destination your.ip:port

为什么不在服务器上运行嗅探器并确保它只侦听来自某个 IP 或网络的流量?然后运行像 ftester 这样的工具,你应该能够知道哪些端口是允许的。

有人已经为您完成了服务器端PortQuiz.net

然后,您应该能够在 Web 浏览器上手动执行此操作,或者使用您的 NMAP 或在 Python 等中自动编写脚本。