SELinux
Security-Enhanced Linux (SELinux) is a mandatory access control security mechanism implemented in the kernel.
When enabled, SELinux has two modes: enforcing and permissive.
SELinux is pre-installed and pre-configured in permissive mode in RedHat Enterprise Linux and its clones (Oracle Linux, Rocky Linux, CentOS)
Follow this procedure to enable and configure SELiunx with LPAR2RRD and STOR2RRD.
LPAR2RRD, STOR2RRD and Xormon have not been fully tested with SELiunx enabled and may behave unexpectedly.
The following procedure is provided as is without guarantee or support.
Note that does not include using 3rd party software which might be needed for some device monitoring
Note: run all commands as root
Install SELinux tools
yum install -y setools-console policycoreutils-python-utils
Check SELinux status
It should be disabled
getenforce
Disabled
Enable SELinux in permissive mode and reboot
Enabling SELinux without rebooting is not possible.
If SELinux was previously disabled, the system needs to perform a full filesystem relabeling on the next boot.
Relabeling may take several minutes.
Set SELINUX=permissive in /etc/selinux/config and reboot
sed -i 's/^SELINUX=.*$/SELINUX=permissive/g' /etc/selinux/config
reboot
Configure SELiunx
SELinux booleans
setsebool -P httpd_execmem on
setsebool -P httpd_read_user_content on
setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_network_connect_db on
setsebool -P httpd_can_sendmail on
setsebool -P httpd_unified on
setsebool -P httpd_enable_homedirs on
SELinux Semanage ALLOW port
semanage port -l | grep http_port_t
semanage port -a -t http_port_t -p tcp 80
semanage port -a -t http_port_t -p tcp 8443
semanage port -a -t http_port_t -p tcp 443
LPAR2RRD
chcon -R -t httpd_sys_rw_content_t /home/lpar2rrd/lpar2rrd
chcon -R -t httpd_sys_content_t /home/lpar2rrd/lpar2rrd/www
chcon -R -t httpd_sys_content_t /home/lpar2rrd/lpar2rrd/data
chcon -R -t httpd_sys_script_exec_t /home/lpar2rrd/lpar2rrd/bin
chcon -R -t httpd_sys_script_exec_t /home/lpar2rrd/lpar2rrd/load_*.sh
chcon -R -t httpd_sys_script_exec_t /home/lpar2rrd/lpar2rrd/lpar2rrd-cgi
chcon -R -t httpd_sys_script_exec_t /home/lpar2rrd/lpar2rrd/bin/vmware_install_image.sh
STOR2RRD
chcon -R -t httpd_sys_rw_content_t /home/stor2rrd/stor2rrd
chcon -R -t httpd_sys_script_exec_t /home/stor2rrd/stor2rrd/stor2rrd-cgi/
chcon -R -t httpd_sys_content_t /home/stor2rrd/stor2rrd/data/
chcon -R -t httpd_sys_content_t /home/stor2rrd/stor2rrd/www
Set SELinux to enforcing
setenforce 1
sed -i 's/^SELINUX=.*$/SELINUX=enforcing/g' /etc/selinux/config
getenforce
Troubleshoot SELinux / Logs
tail -n 500 /var/log/audit/audit.log | grep -i avc
grep "AVC" /var/log/audit/audit.log
ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -i
ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent