正如我对这个主题的评论所问的那样: 用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地址,请从中删除该接口。