Kubuntu 21.10:所有端口(打开或关闭)都返回 ICMP 管理禁止,即使没有启用防火墙也是如此。怎么修?

Kubuntu 21.10:所有端口(打开或关闭)都返回 ICMP 管理禁止,即使没有启用防火墙也是如此。怎么修?

运行 Kubuntu 21.10 的最新安装。

如果我在计算机上运行任何网络服务,我将无法从网络上的其他任何地方访问它。错误始终是“主机无法访问”。扫描tcpdump显示 SYN 数据包确实到达了主机,但 ICMP“管理禁止”数据包立即发回。数据包甚至从未到达iptables(通过添加与连接匹配的规则进行验证,并且其计数器永远不会增加)

nmap也无法检测到端口是否打开,但其扫描确实显示在计数器中。nmap将端口解释为已过滤,因为禁止的数据包是 ICMP;没有发送对 SYN 数据包的响应。

以下是tcpdump在具有主动侦听端口 8000 的服务的主机上的输出,当另一台计算机尝试连接时会出现该输出:

04:43:09.154362 IP 192.168.1.3.56608 > 192.168.1.183.8000: Flags [S], seq 3664350430, win 64240, options [mss 1460,sackOK,TS val 2819866111 ecr 0,nop,wscale 7], length 0
04:43:09.154417 IP 192.168.1.183 > 192.168.1.3: ICMP host 192.168.1.183 unreachable - admin prohibited filter, length 68

nmap扫描时会发生以下情况:

04:44:49.060156 ARP, Request who-has 192.168.1.183 tell 192.168.1.3, length 46
04:44:49.060177 ARP, Reply 192.168.1.183 is-at 74:e6:e2:da:19:0f, length 28
04:44:49.156156 IP 192.168.1.3.33094 > 192.168.1.183.8000: Flags [S], seq 4114316293, win 1024, options [mss 1460], length 0
04:44:49.156260 IP 192.168.1.183 > 192.168.1.3: ICMP host 192.168.1.183 unreachable - admin prohibited filter, length 52

iptables完全地明确,所有默认链上的政策,和上ACCEPT没有任何规则。filternatmangle

服务localhost可以使用机器本身的机器 IP进行本地访问。唯一的问题是尝试从网络访问。

我的机器上确实有 Docker,但为了尝试解决这个问题,我禁用了 Docker 并删除了它的所有iptables规则和链。如果服务作为 Docker 容器启动,它们能够从网络到达。但我正在尝试运行一项服务外部一个容器的。

该机器还安装了 VirtualBox(如果相关的话),但在测试时没有运行任何 VirtualBox 机器。

另外值得注意的是,主机上运行的 SSH 服务器成功访问 - 这是唯一可以访问的服务,无论其他服务正在运行:

Starting Nmap 7.91 ( https://nmap.org ) at 2022-01-26 11:00 UTC
Nmap scan report for 192.168.1.183
Host is up (0.00035s latency).
Not shown: 65534 filtered ports
PORT      STATE SERVICE
22/tcp    open  ssh
MAC Address: *redacted*
Too many fingerprints match this host to give specific OS details

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

是否有某个地方的内核设置导致了这种情况的发生?

编辑:按照这里的要求是iptables-save输出,但它完全是空的......

# Generated by iptables-save v1.8.7 on Wed Jan 26 06:17:24 2022
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Wed Jan 26 06:17:24 2022
# Generated by iptables-save v1.8.7 on Wed Jan 26 06:17:24 2022
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed on Wed Jan 26 06:17:24 2022

答案1

原来是库班图与最近的 CentOS 版本有相同的“问题”因为它使用nftables,所以iptables可以完全清楚,但还有另一个防火墙在使用 IP 堆栈。

如果您想禁用这个额外的防火墙并仅使用 iptables,快速解决方案是执行:

sudo systemctl disable --now firewalld

相关内容