使用firewalld 仅将特定源 ip 的端口 514 转发到 5514

使用firewalld 仅将特定源 ip 的端口 514 转发到 5514

我一直在尝试找到一种方法来转发来自特定 IP 的流量,例如 10.17.1.3 上的端口 514 到端口 5514,并在 CentOS 上使用防火墙

这有效:

  <masquerade/>
  <forward-port to-port="5514" protocol="udp" port="514"/>
  <forward-port to-port="5514" protocol="tcp" port="514"/>

不起作用:

  <masquerade/>
  <rule family="ipv4">
    <source address="10.17.1.3"/>
    <forward-port to-port="5514" protocol="udp" port="514"/>
  </rule>

添加了以下内容:

sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='10.17.1.3' forward-port protocol='udp' port='514' to-port=5514"

有没有什么办法可以用firewalld实现只针对特定源ip的端口转发?

答案1

与往常一样,当通过源地址选择流量时,您应该避免使用丰富的规则通过源地址进行选择,而是创建一个与来自相关源地址的流量匹配的新防火墙区域。

例如:

firewall-cmd --new-zone=syslogsources --permanent
firewall-cmd --reload
firewall-cmd --zone=syslogsources --add-source=10.17.1.3
firewall-cmd --zone=syslogsources --add-forward-port=port=514:proto=udp:toport=5514

确认其有效后,保存它:

firewall-cmd --runtime-to-permanent

相关内容