Firewalld

Firewalld:僅允許來自特定 IP 的 SSH 不起作用

  • March 9, 2021

我正在嘗試使用 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 “ 接受’

配置狀態:

user@server:~$ sudo firewall-cmd –list-all

內部(活動)

目標:預設

icmp-block-inversion:無

介面:ens160

源:

服務:

埠:

協議:

偽裝:無

轉發埠:

源埠:

icmp-blocks:

豐富規則:

規則族 =“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))。

有人可以幫我嗎?非常感激。

“ping”是 ICMP 回顯(RFC 792)。您尚未設置任何 ICMP 塊:

internal (active)
icmp-blocks:

試試例如

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

引用自:https://serverfault.com/questions/1056383