Я пытался найти способ перенаправить трафик с определенного IP-адреса, например 10.17.1.3 на порт 514 на порт 5514 с firewalld на 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"
Есть ли способ добиться переадресации портов только для определенного IP-адреса источника с помощью firewalld?
Как всегда, при выборе трафика по исходному адресу вам следует избегать использования расширенных правил для выбора по исходному адресу, а вместо этого создавать новую зону firewalld, которая соответствует трафику с соответствующих исходных адресов.
Например:
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