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

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

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

答案1

tcp转储通常作为 Linux 发行版的标准配置。它将记录服务器上可见的所有数据包,请注意

  • 您可能希望将其设置为使用客户端 IP 过滤器来运行,以减少噪音

  • 我认为这包括本地计算机上的 iptables 不接受的数据包 - 但您可能想测试一下

例如

/usr/sbin/tcpdump -i eth0 -c 3000000 -np host client.example.com >tcp.log

然后只需从您的客户端运行 nmap 即可。

答案2

sudo iptables -t nat -p tcp -I PREROUTING -m multiport --dports 1:65535 -j DNAT --to-destination :5555

ncat -lkp 5555 -vvv

答案3

我现在没有好的方法来测试这个,但是......

我相信您可以使用iptables将每个端口转换为单个端口。它会像下面这样:

iptables -t nat -I PREROUTING -m multiport -sports 0:65535 -J DNAT --to-destination 127.0.0.1:1024

这应该将所有传入端口重定向到 1024。然后您可以在 1024 上启动服务器。

答案4

我认为你可以使用 UDP 或 TCP 编写一个小程序raw sockets,然后你可以监听所有端口,你只需要过滤标头即可知道端口。

python 中的原始套接字编程 (Linux) |二元潮汐

相关内容