Zabbix server under Selinux (CentOS 7)
When running zabbix server under Selinux out of the box when you
start
systemctl start zabbix-server
you will get an error like
this into /var/log/zabbix/zabbix_server.log
using configuration file: /etc/zabbix/zabbix_server.conf cannot set resource limit: [13] Permission denied cannot disable core dump, exiting... Starting Zabbix Server. Zabbix 3.0.12 (revision 73586).
The problem is related to zabbix policy under Selinux.
How to Fix it
First as the message says zabbix server needs to set some resource limits.
To do so will need to have permissions from selinux. Run the following to see
the error and transform it into a format that selinux can load later.
cat /var/log/audit/audit.log | grep zabbix_server | grep denied | audit2allow -M zabbix_server.limits
Two files are created a .pp and a .pe. The .pe file should have content similar to
module zabbi_server.limits 1.0; require { type zabbix_t; class process setrlimit; } #============= zabbix_t ============== allow zabbix_t self:process setrlimit;
Load this policy with semodule -i zabbix_server.limits.pp
At this point zabbix server can be started systemctl start zabbix-server
If you need to connect to a database such as mysql/postgress you will need to allow zabbix server again ... (note: I used mysql/mariadb)
cat /var/log/audit/audit.log | grep zabbix_server | grep denied | audit2allow -M zabbix_server.ports
This will create again two files, the .pe file should look like
module zabbix_server_ports 1.0; require { type mysqld_port_t; type zabbix_t; class process setrlimit; class tcp_socket name_connect; } #============= zabbix_t ============== #!!!! This avc can be allowed using the boolean 'zabbix_can_network' allow zabbix_t mysqld_port_t:tcp_socket name_connect; #!!!! This avc is allowed in the current policy allow zabbix_t self:process setrlimit;As you can see the setrlimits is already present and you will need to allow the socket access.
To do so
semodule -i zabbix_server.ports.pp
At this point you have two policies loaded and you should restart zabbix server systemctl restart zabbix-server
Note: This may apply to any other version of Linux distros/versions that use Selinux though I only tried on CentOS 7.
1 comments:
Thanks a lot, man. This post help me solve the problem.
Post a Comment