Настройка firewall в CentOS для Zabbix
Решал проблему с системой OpenVZ на безе CentOS7 и CentOS8, при которой с контейнера нельзя было подключиться к агенту на самом хосте. Причём проблема такая была именно внутри одного сервера: с контейнеров на других серверах с этой же ОС можно было сделать подключение, в а пределах одного сервера не работало.
Для начала на сервер надо выполнять вот такую команду:
iptables -vnL
По результату будет видно, что интерфейса venet0 настроено правило DROP для всех портов, кроме разрешённых.
Поэтому для этого интерфейса надо разрешить входящие соединения на порт 10050:
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 10 -p tcp --dport 10050 -i venet0 -j ACCEPT
При необходимости можно разрешить ping:
firewall-cmd —permanent —direct —add-rule ipv4 filter INPUT 0 -p icmp -i venet0 -j ACCEPT
Чтобы просто разрешить подключение к zabbix агенту с других серверов или контейнеров на других серверах, то достаточно выполнить команду:
firewall-cmd --permanent --zone=public --add-port=10050/tcp
После всех команд выше надо перезапускать firewall:
firewall-cmd --reload
Ещё нашёл такое решение конкретно для zabbix агента.
firewall-cmd --permanent --new-service=zabbix
firewall-cmd --permanent --service=zabbix --add-port=10050/tcp
firewall-cmd --permanent --service=zabbix --set-short="Zabbix Agent"
firewall-cmd --permanent --add-service=zabbix
firewall-cmd --reload
По аналогии можно сделать всё то же самое для других нужных сервисов.
Разрешить ping для всех ip адресов:
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p icmp -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
Или для конкретного ip адреса:
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 10 -p tcp -s 10.10.10.247 --dport 10050 -i venet0 -j ACCEPT
Все текущие правила можно вручную без команд отредактировать в файле:
nano /etc/firewalld/direct.xml
Использованный материал — https://shurshun.ru/knowledgebase/firewalld-zabbix-agent/