Firewalld:仅允许来自特定 IP 的 SSH 不起作用

Firewalld:仅允许来自特定 IP 的 SSH 不起作用

我正在尝试使用 Firewalld 来限制对 Linux 服务器的访问

环境:
a)Linux 服务器有一个网络接口:ens160

要求:
a) 它应只允许 IP 地址为 192.168.3.0/24 的机器使用 SSH 连接到此 Linux 服务器
b) 它应只允许此 Linux 服务器使用 SSH 连接到 IP 地址 192.168.3.0/24
c) 其他 IP 地址或服务(包括 Ping)均不应能够连接/访问此 Linux 服务器
d) 此 Linux 服务器不应能够连接/访问其他 IP 地址或服务(包括 Ping)。

已完成的配置(在安装 Firewalld 之后,据我所知,Firewalld 默认阻止所有连接):
a)sudo firewall-cmd --set-default-zone=internal
b)sudo firewall-cmd --zone=internal --add-interface=ens160 –permanent
c)sudo firewall-cmd --permanent --zone=internal --add-rich-rule='rule family="ipv4" source address="192.168.3.0/24" service name="ssh" accept'

配置状态:
用户@服务器:~$ sudo firewall-cmd --list-all

内部(活动)
目标:默认
icmp 块反转:无
接口:ens160
来源:
服务:
端口:
协议:
伪装:无
转发端口:
源端口:
icmp 块:
丰富规则:
规则系列 =“ipv4”源地址 =“192.168.3.0/24”服务名称 =“ssh”接受
用户@服务器:〜$

验证结果:
它在某些方面起作用:
a)IP 地址 192.168.2.0/24 无法使用 SSH 连接到 Linux 服务器。

它在其他方面似乎不起作用:
a)IP 地址 192.168.2.0/24 可以 ping 通 Linux 服务器(这是意料之外的,因为其他 IP 地址或服务(包括 Ping)都不应该能够连接/访问该服务器)
b)Linux 服务器可以 ping 通 google.com(这是意料之外的,因为该 Linux 服务器不应该能够连接/访问其他 IP 地址或服务(包括 Ping))。

有人能帮我吗?非常感谢。

答案1

“ping” 是 ICMP 回显(RFC 792)。您尚未设置任何 ICMP 阻止:

internal (active)
icmp-blocks:

尝试例如

firewall-cmd --zone=internal --add-icmp-block={echo-request,echo-reply}

相关内容