Centos7

防火牆管理

  • July 21, 2015

正如我在該主題的評論中所問的那樣:使用 firewalld 阻止除少數 ips 之外的所有 ip

我正在尋找一種方法來拒絕除我在 firewalld 的公共區域上的所有公共 IP。

目前,我的公共區域只有 ssh/http/https 服務,並且我已經指定了整個 Internet 所需的源 IP。

問題是我不明白為什麼 firewalld 沒有按要求過濾源 IP?

通常,據我了解,指定源 IP 的區域會要求 Firewalld 丟棄所有請求,但來自指定 IP 的請求除外。

但是在我的盒子上它不起作用,因為我可以在家中連接不是指定源 IP 之一的機器。

有人建議創建一個名為“內部/其他”的新區域,因為我只有一個公共介面,因為伺服器不在專用區域網路上,所以我為什麼要創建/使用另一個區域,因為公共區域應該刪除所有 IP源列表中指定的除外。

Firewalld 公共區域是否會自動向世界開放其上添加的服務?

如果我創建一個名為 internal 的第二個區域,只有 ssh 服務和源 IP,然後將此區域連結到我的 eth0,firewalld 會阻止所有非“源”IP嗎?

當然,做這樣的過程會假設我從公共區域服務中刪除了 ssh 服務。

我的防火牆是:

[root@groot ~]# firewall-cmd --list-all-zones
block
 interfaces:
 sources:
 services:
 ports:
 masquerade: no
 forward-ports:
 icmp-blocks:
 rich rules:

dmz
 interfaces:
 sources:
 services: ssh
 ports:
 masquerade: no
 forward-ports:
 icmp-blocks:
 rich rules:

drop (default)
 interfaces:
 sources:
 services:
 ports:
 masquerade: no
 forward-ports:
 icmp-blocks:
 rich rules:

external
 interfaces:
 sources:
 services: ssh
 ports:
 masquerade: yes
 forward-ports:
 icmp-blocks:
 rich rules:

home
 interfaces:
 sources:
 services: dhcpv6-client ipp-client mdns samba-client ssh
 ports:
 masquerade: no
 forward-ports:
 icmp-blocks:
 rich rules:

internal (active)
 interfaces: eth0
 sources: 192.168.0.0/24
 services: ssh
 ports:
 masquerade: no
 forward-ports:
 icmp-blocks:
 rich rules:

public
 interfaces:
 sources:
 services: dhcpv6-client ssh
 ports:
 masquerade: no
 forward-ports:
 icmp-blocks:
 rich rules:

trusted
 interfaces:
 sources:
 services:
 ports:
 masquerade: no
 forward-ports:
 icmp-blocks:
 rich rules:

work
 interfaces:
 sources:
 services: dhcpv6-client ipp-client ssh
 ports:
 masquerade: no
 forward-ports:
 icmp-blocks:
 rich rules:

這看起來像你的問題:

internal (active)
 interfaces: eth0
 sources: 192.168.0.0/24

如果您為區域指定介面源IP 地址,**則該區域匹配來自介面源 IP 地址的流量。

如果您希望區域僅匹配源 IP 地址,請從中刪除介面。

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