收紧现有的firewalld规则

收紧现有的firewalld规则

我有一个当前的规则集:

net1 (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources: 
  services: http https smtp smtp-submission pop3 pop3s imap imaps ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

允许从 ens192 连接到这些端口的网络上的所有 IP 进行访问。不过,我想将端口 25 的连接限制为仅限于单个 IP。

我“通常”只是在保存规则的任何纯文本文件中编辑相关行并添加“-s xxxx”。我似乎可以选择将所有端口限制为特定 IP,但不仅仅是一个端口。我缺少什么?

答案1

您可以创建一个新的firewalld 区域,而不是弄乱难以理解的丰富规则。区域由网络接口​​或源地址定义。在这种情况下,您将仅使用源地址来定义它:

firewall-cmd --new-zone=smtp
firewall-cmd --zone=smtp --add-source=192.0.2.85
firewall-cmd --zone=smtp --add-service=smtp

firewall-cmd --zone=net1 --remove-service=smtp

firewall-cmd --runtime-to-permanent

因此,到 SMTP 的传入连接将仅限于来自 192.0.2.85 的连接。如果需要,您还可以稍后轻松添加或删除 IP 地址,这比使用丰富的规则容易得多。

答案2

找到了。我需要使用“丰富的规则”:

firewall-cmd --remove-service=smtp
firewall-cmd --add-rich-rule='rule family="ipv4" source address="x.x.x.x" service name="smtp" accept'

相关内容