用于过滤传入源地址的 Firewall-cmd 规则

用于过滤传入源地址的 Firewall-cmd 规则

我正在尝试设置一个firewall-cmd 规则对于传入的源 IPv4 地址使用操作系统7

目前,我已经设法add-portfor zone=public,但找不到一种方法来对外部访问进行“粒度过滤” - 就像上面提到的那样。

除了使用之外还有什么方法可以做到这一点丰富的语言? 如果 (或不是) 如此,我将如何使用它们来实现这一目标?

答案1

根据链接

丰富规则命令的格式或结构如下:

rule [family="rule family"]
    [ source [NOT] [address="address"] [mac="mac-address"] [ipset="ipset"] ]
    [ destination [NOT] address="address" ]
    [ element ]
    [ log [prefix="prefix text"] [level="log level"] [limit value="rate/duration"] ]
    [ audit ]
    [ action ]

拒绝端口 80 上来自 tcp 和 udp 的 8.8.8.8

firewall-cmd --add-rich-rule='source address=8.8.8.8 port=80 deny'

通常惯例适用

  • source address=192.168.117.0/24
  • destination not address=8.8.8.8

看来必须使用完整的语法来查询(--query-rich-rule='..')或删除(--remove-rich-rule='..'

答案2

如果您只想阻止特定 IP 地址访问服务器,则fds前端更容易使用。它在幕后使用 FirewallD 和 IP 集,但提供了比以下更简单的 CLI 界面firewall-cmd

设置

sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm
sudo yum -y install fds

封锁IP

sudo fds block 1.2.3.4

相关内容