似乎以前没有人问过这个问题(大多数涉及基于主机的防火墙)。
熟悉端口扫描工具(例如 nmap)的人都知道 SYN 扫描、FIN 扫描等用于确定主机上开放端口的工具。但问题是,如何确定防火墙本身上的开放端口(不管您尝试连接到防火墙后面的主机是否打开或关闭了这些特定端口)。这是假设防火墙阻止了您的 IP 连接。
示例:我们都通过端口 80(网络流量)与 serverfault.com 通信。对主机进行扫描将显示端口 80 处于打开状态。如果 serverfault.com 位于防火墙后面并且仍然允许此流量通过,那么我们可以假设防火墙也打开了端口 80。现在让我们假设防火墙阻止了您(例如,您的 IP 地址在拒绝列表下或在允许列表中缺失)。您知道端口 80 必须打开(它适用于适当的 IP 地址),但是当您(不允许的 IP)尝试任何扫描时,防火墙上的所有端口扫描尝试都会丢弃数据包(包括我们知道是打开的端口 80)。那么,我们如何才能完成直接防火墙扫描以显示防火墙本身的打开/关闭端口,同时仍然使用不允许的 IP?
答案1
你不知道。从数据包过滤的角度来看,主机显示的内容和防火墙显示的内容没有区别。如果你扫描防火墙的 IP 地址本身(假设它有一个 IP 地址),它不太可能使用与绑定到其后面的主机的流量相同的规则。
但是,在某些配置中,您可能会意外看到防火墙允许的内容。
举个例子,一台主机对它未监听的端口上的流量做出拒绝响应(数据包RST
,这是正常的 TCP 行为),而防火墙默默地丢弃流量。假设主机只监听 80 端口,但防火墙允许 80 和 25 端口进入。防火墙允许主机拒绝的端口 25 流量通过,允许主机连接的端口 80 流量通过,并阻止所有其他流量。
nmap 将显示该主机的端口 80 打开、端口 25 关闭并且所有其他端口均被过滤。nmap 可以显示何时出现这种差异,从而帮助您确定正在查看的主机的行为。
答案2
如果您使用 Web 服务执行端口扫描,或者从外部位置针对外部 IP 地址运行端口扫描,您将看到防火墙上打开了哪些端口。
这是我通过 Google 搜索找到的第一个 Web 服务;可能还有其他的:http://www.hackerwatch.org/probe/
答案3
如果您拥有防火墙并想对其进行功能测试,您可以在扫描之前在连接到其 DMZ 接口的交换机的跨端口上设置嗅探器。这样,即使目标主机恰好关闭或在特定端口上没有响应,您也可以捕获任何通过的数据包。它为您提供的可见性比执行扫描的工具所能提供的要高。