端口 80 显示为已过滤,但 ufw 允许端口 80

端口 80 显示为已过滤,但 ufw 允许端口 80

我在 Ubuntu 服务器上使用 apache 时遇到了问题。它不是本地机器,我通过 SSH 访问它。运行时nmap -sS 127.0.0.1显示以下内容:

Not shown: 998 closed ports
PORT   STATE    SERVICE
22/tcp open     ssh
80/tcp filtered HTTP

ports.conf 设置监听 80 端口,如下所示:

Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

值得一提的是,我也尝试将其设置为Listen 0.0.0.0:80

我似乎无法打开端口 80,而不是将其设置为已过滤。当我运行时,sudo ufw status verbose它说:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

    To                         Action      From
    --                         ------      ----
    80,443/tcp                 ALLOW IN    Anywhere
    22/tcp                     ALLOW IN    Anywhere
    80,443/tcp (v6)            ALLOW IN    Anywhere (v6)
    22/tcp (v6)                ALLOW IN    Anywhere (v6)

所以我不认为这是防火墙问题。运行ss -tunapl显示以下内容:

Netid   State     Recv-Q    Send-Q              Local Address:Port       Peer Address:Port
udp     UNCONN    0         0             172.31.255.175%eth0:68              0.0.0.0:*       users:(("systemd-network",pid=19297,fd=17))
tcp     LISTEN    0         128                       0.0.0.0:22              0.0.0.0:*       users:(("sshd",pid=17786,fd=3))
tcp     LISTEN    0         128                          [::]:22                 [::]:*       users:(("sshd",pid=17786,fd=4))
tcp     LISTEN    0         128                             *:80                    *:*       users:(("apache2",pid=27990,fd=4),("apache2",p                                   id=27989,fd=4),("apache2",pid=27987,fd=4))

此外,运行iptables --table filter --list --numeric显示输出这个(pastebin 链接)。

可能是什么问题呢?

答案1

来自您的 pastebin iptables 规则列表链接:

Chain INPUT (policy DROP)
target     prot opt source               destination
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
...

因此,INPUT 链中的第一个规则是端口 80 DROP 规则。但是,您的列表缺少关键的网络接口信息,可以使用以下命令获取这些信息:sudo iptables -xvnL

编辑:新的 pastebin 没有显示网络接口依赖性,并且还显示数据包采用第一个 DROP 规则路径,正如预期的那样:

Chain INPUT (policy DROP 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination
     434    23648 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

因此,您需要删除该规则(未经测试):

sudo iptables -D INPUT 1

首先,为什么会有这条规则并不明显。

相关内容