Centos7
防火牆管理
正如我在該主題的評論中所問的那樣:使用 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 地址,請從中刪除介面。