我一直在尝试找到一种方法来转发来自特定 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