防火墙管理

防火墙管理

正如我在这个主题的评论中问到的那样:使用firewalld 封锁除少数 IP 之外的所有 IP

我正在寻找一种方法来拒绝防火墙公共区域上除我的 IP 之外的所有公共 IP。

目前,我的公共区域只有 ssh/http/https 服务,并且我已指定整个互联网所需的源 IP。

问题是我不明白为什么 Firewalld 没有按照要求过滤源 IP?

通常,据我所知,指定区域源 IP 会要求 Firewalld 丢弃除来自指定 IP 的请求之外的所有请求。

但是在我的机器上它不工作,因为我能够从家里连接机器,但它不是指定的源 IP 之一。

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

Firewalld Public zone 是否会自动将添加到其中的服务向全世界开放?

如果我创建第二个名为 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:

答案1

这看起来像你的问题:

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

如果您指定两个都接口区域的源 IP 地址,则该区域匹配来自任何一个界面或者源 IP 地址。

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

相关内容