Firewalldpipe理

正如我对这个主题的评论所问的那样: 用firewalld阻止所有的ips

我正在寻找一种方法来拒绝所有的公共IP地址,除了我在Firewalld的公共区域。

现在,我的公共区域只有ssh / http / https服务,并且我已经指定了源IP在整个互联网上都需要。

问题是,我不明白为什么firewalld不按要求过滤源IP地址?

通常情况下,从我所了解的情况来看,源IP地址要求Firewalld放弃所有请求,除了那些来自指定IP的请求。

但是在我的盒子里,它不能正常工作,因为我能够在家里的机器上连接,而不是指定的源IP地址。

有人build议创build一个名为“内部/其他”的新区域,因为我只有一个公共接口,因为服务器不在私有局域网中,所以为什么我应该创build/使用另一个区域,因为公共区域应该删除所有的IP除了源列表中指定的那些。

Firewalld公共区域会自动添加服务吗?

如果我创build一个名为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地址的stream量。

如果您希望该区域仅匹配源IP地址,请从中删除该接口。