添加防火墙服务会关闭所需端口,而不是打开它

添加防火墙服务会关闭所需端口,而不是打开它

我在 Linode Shared CPU 实例上全新安装了 Rocky Linux 9。我刚刚安装firewalld并设置了它。默认情况下,它已启用httpssh服务。

在此阶段进行nmap扫描显示端口 22 和 80 处于打开状态,其余端口已被过滤,如下所示:

Host is up (0.59s latency).
Not shown: 997 filtered ports
PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   open   http
9090/tcp closed zeus-admin

(我不知道 zeus admin 是什么,我不知道它是否相关)

我目前需要为我正在设置的一些内容打开https和端口。我尝试运行以下命令:smtp

sudo firewall-cmd --permanent --add-service=https

之后我firewalld通过重新加载服务systemctl

我希望端口 443 是开放的,但是 nmap 输出却显示以下内容:

Host is up (0.51s latency).
Not shown: 996 filtered ports
PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   open   http
443/tcp  closed https
9090/tcp closed zeus-admin

对于我尝试用该--add-service标志添加的任何服务,我都会得到相同的结果,即端口已关闭。通过 URL 测试我正在设置的服务时,我只是得到Connection refused错误。

我还尝试使用以下命令直接添加端口:

sudo firewall-cmd --permanent --add-port=443/tcp

但结果是一样的,端口显示为关闭。

我该如何解决这个问题?

答案1

添加防火墙服务会关闭所需端口,而不是打开它

这不是“打开”和“关闭”的意思。重新运行 nmap 以--reason查看更多信息。

Nmap 的输出是面向服务的,而不是面向防火墙的,并且两个都“开放”和“封闭”表明存在某种回答该端口上的数据包 – 即它们都表明防火墙允许数据包通过。

区别在于收到的答案类型:“Open”表示 TCP 连接已成功建立(即有一个服务正在侦听该端口),而“closed”表示 TCP 握手被明确拒绝,即曾经被允许通过防火墙,但是没有任何东西等待连接,因此收到了标准 TCP RST。

(浏览器或 HTTP 客户端的“连接被拒绝”与 nmap 的“关闭”含义相同 - 这意味着服务器确实通过防火墙接收到了您的 TCP 握手数据包,但由于没有服务监听该端口而主动拒绝它。)

同时,如果 TCP 握手数据包触发 ICMP 错误(例如“管理禁止”)或者没有任何答案(某些防火墙直接丢弃不允许的数据包),nmap 会将端口列为“已过滤”– 在您的情况下,它们被报告为“未显示:997 个过滤端口”(nmap 将大多数答案分组并仅显示例外)。

为了获得更精确的输出,请指定要扫描的端口列表-p,并添加--reason以获取附加列,指示 nmap 如何确定状态:

$ nmap -p 21,22,23,24 ember
Starting Nmap 7.92 <...>

PORT   STATE    SERVICE   REASON
21/tcp filtered ftp       no-response
22/tcp open     ssh       syn-ack
23/tcp closed   telnet    conn-refused
24/tcp filtered priv-mail host-unreach

Nmap done: 1 IP address (1 host up) scanned in 0.20 seconds

在这个例子中,端口 22 和 23 在防火墙术语中都是“打开的”,但是只有其中一个具有监听套接字(主机使用 TCP ACK 进行响应),而另一个没有(收到 TCP RST),而端口 21 和 24 被防火墙“过滤”。

(为了便于说明,两者的过滤方式不同 - 端口 21 有“丢弃”规则,但端口 24 有“使用 icmpx 管理员禁止拒绝”规则。通常您只会看到其中一个。)

我该如何解决这个问题?

您的 httpd 服务未监听端口 443(例如,未启用 mod_ssl 模块,或未将端口 443 添加到参数listen)。请对其进行配置以监听端口 443。

(我不知道 zeus admin 是什么,我不知道它是否相关)

我也不知道它是什么,但 9090 是许多服务出于美观原因选择的端口号之一(如 8888 或 5555 或 8080),而不管它被正式分配给什么,所以 99.99% 的时间它与原始的“z​​eus-admin”列表无关。

当然,Nmap 并不知道服务器是否打算将该端口用于 zeus-admin(特别是如果端口已“关闭”,并且由于没有可以进一步探测的服务,因此它仅从其“nmap-services”数据库中报告名称。

相关内容