Политика SELinux Zabbix сервера

У меня есть Zabbix сервер, работающий на RHEL 7, и когда я использую веб-интерфейс (на той же коробке), он говорит, что Zabbix сервер не работает.

Если я отключаю SELinux и ничего не меняю, веб-интерфейс сообщает, что Zabbix-сервер успешно работает.

Любые идеи о том, как я могу пропустить Zabbix? Я уже добавил порты 10050 и 10051 в FirewallD, и SELinux не позволит мне добавить их во второй раз.

5 ответов

Решение

Я наконец-то понял. Zabbix Server имеет bool SELinux, позволяющий httpd взаимодействовать с портом 10051. Чтобы установить его, введите команду sudo setsebool httpd_can_connect_zabbix 1,

Это позволит веб-интерфейсу показывать, включен ли Zabbix сервер или нет, без необходимости отключать SELinux!

Ни один ответ не дал правильного совета о том, как обновить правило SELinux, а также как сохранить настройки после перезагрузки сервера, для этого сделайте следующее:

# setsebool -P httpd_can_network_connect on
# setsebool -P httpd_can_network_connect = true

Это было сделано на RHEL7.

Пытатьсяgetsebool -aчтобы показать все параметры, активные или нет для selinux:

httpd_can_network_connect=on

  1. SELinux

https://www.zabbix.com/forum/showthread.php?t=47375&highlight=selinux Вы отключили его - ОК

  1. Брандмауэр

Попробуйте также отключить брандмауэр

  1. Конфигурация PHP внешнего /zabbix сервера

Распространенная проблема - когда zabbix_server прослушивает только IP, а не localhost (netstat -tanp | grep:10051), но frontend настроен для localhost:10051, проверьте и настройте сервер frontend/zabbix должным образом

# grep ZBX_SERVER /etc/zabbix/web/zabbix.conf.php
$ZBX_SERVER = 'localhost';
$ZBX_SERVER_PORT = '10051';

# telnet localhost 10051
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused

Если сервер прослушивает все интерфейсы (включая localhost), я могу также использовать localhost в конфигурации внешнего интерфейса:

# netstat -tanp | grep :10051 | grep LISTEN
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      825/zabbix_server
tcp6       0      0 :::10051                :::*                    LISTEN      825/zabbix_server

Вам не нужноsudo setenforce 0

Не использоватьunreserved_port_tв противном случае/var/log/zabbix/zabbix_agentd.logвывод

       31542:20220614:214432.987 using configuration file: /etc/zabbix/zabbix_agentd.conf
 31542:20220614:214432.987 listener failed: bind() for [[-]:10050] failed: [13] Permission denied

Вместо этого переключитесь наzabbix_agent_port_t

      semanage port --add    --type zabbix_agent_port_t --proto tcp 10050 || \
semanage port --modify --type zabbix_agent_port_t --proto tcp 10050

тогда как для сервера zabbix используйтеzabbix_port_tдля порта 10051.

Другие вопросы по тегам