检测防火墙绕过了哪些传出端口

检测防火墙绕过了哪些传出端口

我学校有防火墙,限制了大多数传出端口。只允许、、TCP/80。有没有办法找出防火墙允许的所有传出端口?TCP/443TCP/21

我目前的想法是:在nc远程服务器上打开所有 TCP 端口,然后使用它nmap来扫描哪些端口可以访问。但是如果我没有远程服务器该怎么办?或者是否有一个公共服务器可以打开所有端口进行此类测试?

对于那些担心我违反学校规定的人,我认为这样做没什么大不了的。假设我在外部主机上建立了一个服务,并希望学校网络可以访问它,我愿意知道我可以为这项服务使用哪些端口。我没有破坏任何东西。我相信这样做是 100% 合法的。

答案1

您可以使用portquiz.net,即确切地您要寻找的服务器类型。例如,以下 shell 脚本可完成此工作:

for x in `seq 1 65535`; do

    echo -ne "$x "
    curl "http://portquiz.net:$x" \
      --connect-timeout 1 \
      -o /dev/null \
      -q >/dev/null 2>&1 \
        && echo 'open' \
        || echo 'closed'

done | tee ports.lst

请注意,这将运行很长时间,因此,如果您不耐烦,可以使用 GNU 并行化该任务parallel

此外,portquiz他们的某些端口似乎被阻止了(据我记得,它们是 SSH 和 HTTPS 的端口),但除了少数特殊情况外,所有剩余端口都应该打开。

答案2

您可以查看“无效的传出端口”和“有效的传出端口但服务器无响应”的响应是否不同。例如,如果您知道端口 6667 无效,请查看在连接到已知 6667 端口开放的服务器时获得的响应(例如来自 telnet)。将其与防火墙允许的服务器上未开放端口的响应进行比较。如果您能区分这两者,那么您就不需要该额外的服务器。否则,您需要。

或者,直接询问您的 IT 管理员。

相关内容