使用firewalld阻止所有传出流量到专用网络子网?

使用firewalld阻止所有传出流量到专用网络子网?

我有几个 RHEL7/CentOS7 服务器需要阻止全部传出流量到专用机器或专用网络子网,例如 CIDR 168.192.10.0/24。

目前我尝试了,firewall-cmd但运气不佳。我看到的大多数帖子都在使用,iptables但我更喜欢基于的解决方案firewalld

我已经尝试根据这两个主题提出解决方案阻止传出连接...使用firewalld阻止Centos 7上的传出连接但不知何故我的规则一定是错的因为我仍然可以打开到服务器的 http 连接。

现行firewalld规则(未定义规则)

public (active)
    target: default
    icmp-block-inversion: no
    interfaces: eth0
    sources:
    services: dhcpv6-client http https ssh
    ports:
    protocols:
    masquerade: no
    forward-ports:
    sourceports:
    icmp-blocks:
    rich rules:

假设服务器的源 IP 为 168.192.18.56。接下来,我尝试定义的规则(也使用--permanent

firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -d 168.192.10.0/24 -j REJECT 
firewall-cmd  --zone=public --add-rich-rule='rule family="ipv4" source address="168.192.18.56" destination address=168.192.10.0/24 reject'

我也尝试过降低行动。现行规则是

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client http https ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  sourceports:
  icmp-blocks:
  rich rules:
    rule family="ipv4" destination address="192.168.10.0/24" log prefix="dropped" level="debug" limit value="20/m" drop

现在不确定是否必须重新加载firewalld?在这种情况下,我会使规则永久生效。

我的误解是

  • 假设 192.168.10.30 上有一个 Web 服务器正在运行。
  • 我可以 ping 通 192.168.10.30
  • 我还可以打开 HTTP 连接wget 192.168.10.30并获取index.html返回
  • 我还可以 ping 被阻止子网中的每台计算机,但这可能需要一条特殊规则,我认为通过阻止所有流量,ICMP 也将被阻止

我很感激知道我做错了什么。

相关内容