如何配置 Firewalld 以阻止环回接口上的传入流量?

如何配置 Firewalld 以阻止环回接口上的传入流量?

我已启用firewalld并配置如下:

loopback (active)
  target: DROP
  icmp-block-inversion: no
  interfaces: lo
  sources: 
  services: 
  ports: 
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
    rule family="ipv4" source address="127.0.0.0/8" port port="8080" protocol="tcp" drop
    rule family="ipv4" destination address="127.0.0.1" port port="8080" protocol="tcp" drop

然而,运行curl -I localhost:8080返回HTTP/1.1 200 OK而不是阻塞。

当使用以下规则禁用firewalld并启用iptables时:

iptables -I OUTPUT -o lo -p tcp --dport 8080 -j DROP

请求被阻止!

为什么 Firewalld 没有按预期工作?配置是运行时永久的并重新加载。

答案1

这应该有效。这就是 RH 中解释的所有内容文章。不是每个人都有 RH 帐户,但我找不到另一篇文章。

我更改了文章中的原始命令(以修复错误--dports并满足 OP 需求)。

sudo firewall-cmd --direct --add-passthrough ipv4 -I OUTPUT -d 127.0.0.0/8 -p tcp --dport 8080 -j REJECT

RH 文章没有提及 ipv6,但当然,在您的情况下,您lo还需要阻止通过 ipv6 访问您的可能性:

sudo firewall-cmd --direct --add-passthrough ipv6 -I OUTPUT -d ::1/128 -p tcp --dport 8080 -j REJECT

相关内容