正如我对这个话题的评论所要求的:用firewalld阻止除少数ips之外的所有ips
我在寻找一种拒绝所有公众身份的方法,除了我在火场的公共区域。
现在,我的公共区域只有ssh/http/https服务,并且我已经指定了IP在互联网上所需的源。
问题是,我不明白为什么firewalld不按请求过滤源IP?
通常,据我所知,指定源IP请求Firewalld删除所有请求的区域,来自指定IP的请求除外。
但是在我的盒子里,它不能工作,因为我能够从家里连接到机器上,这不是指定的源IP之一。
一些人建议创建一个名为“内部/其他”的新区域--问题是我只有一个公共接口,因为服务器不在私有局域网上,所以为什么我要创建/使用另一个区域,因为除了源列表中指定的IP之外,公共区域应该删除所有IP。
Firewalld公共区域是否使添加到其上的服务自动向世界开放?
如果我创建一个名为内部的第二个区域,仅包含ssh服务和源If,然后将该区域链接到我的eth0,那么firewalld是否会阻止所有未“源”的If?
当然,这样做会假设我将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:发布于 2015-07-21 14:45:53
这看起来像你的问题:
internal (active)
interfaces: eth0
sources: 192.168.0.0/24如果同时为区域指定接口和源IP地址,则该区域将匹配来自接口或源IP地址的通信量。
如果希望区域仅与源IP地址匹配,请从其中移除接口。
https://serverfault.com/questions/703894
复制相似问题