使用sesearch审核SELinux策略
时间:2020-03-21 11:42:39 来源:igfitidea点击:
我们将审核SELinux策略,以解释mysqld进程的上下文。
安装
sesearch命令是setools-console软件包的一部分:
# yum install -y setools-console
该软件包提供以下内容:
- seinfo允许用户查询SELinux策略的组件。
- sesearch允许用户搜索SELinux策略中的规则。
SELinux和MySQL守护程序
当systemd启动服务时,使用SELinux策略工具来预测mysqld守护程序的SELinux域类型。
# yum install -y mariadb-server # systemctl start mariadb
我们首先检索systemd守护程序的SELinux域类型:
# ps -Z -C systemd LABEL PID TTY TIME CMD system_u:system_r:init_t:s0 1 ? 00:00:06 systemd
systemd守护程序通过执行“ mysqld_safe”二进制文件来启动服务。
检索“ mysqld_safe”可执行文件的SELinux上下文类型:
# which mysqld_safe| xargs ls -Z -rwxr-xr-x. root root system_u:object_r:mysqld_safe_exec_t:s0 /usr/bin/mysqld_safe
现在,当类型为'init_t'的守护程序执行类型为'mysqld_safe_exec_t'的程序时,我们现在可以使用sesearch命令检索SELinux域转换规则:
# sesearch -T -s init_t -t mysqld_safe_exec_t Found 1 semantic te rules: type_transition init_t mysqld_safe_exec_t : process mysqld_safe_t;
生成的进程的SELinux域类型为'mysqld_safe_t'。
SELinux和MySQL配置文件my.cnf
让我们找到允许mysqld守护程序读取配置文件'/etc/my.cnf'的规则。
检索mysqld守护程序的SELinux域类型:
# ps -Z -C mysqld LABEL PID TTY TIME CMD system_u:system_r:mysqld_t:s0 9114 ? 00:00:00 mysqld
检索“ /etc/my.cnf”文件的SELinux域类型:
# ls -Z /etc/my.cnf -rw-r--r--. root root system_u:object_r:mysqld_etc_t:s0 /etc/my.cnf
检索允许“ mysqld_t”域类型读取具有“ mysqld_etc_t”类型的文件的规则:
# sesearch -A -s mysqld_t -t mysqld_etc_t -c file Found 1 semantic av rules: allow mysqld_t mysqld_etc_t : file { ioctl read getattr lock open } ;
SELinux和MySQL端口3306
让我们找到允许mysqld守护程序绑定到TCP端口3306的规则。
检索与TCP端口3306关联的SELinux类型:
# semanage port -l|grep 3306 mysqld_port_t tcp 1186, 3306, 63132-63164
找到允许规则并显示条件规则的条件表达式:
# sesearch -A -s mysqld_t -t mysqld_port_t -c tcp_socket -C Found 5 semantic av rules: allow mysqld_t mysqld_port_t : tcp_socket { name_bind name_connect } ; allow mysqld_t port_type : tcp_socket { recv_msg send_msg } ; DT allow mysqld_t port_type : tcp_socket { recv_msg send_msg } ; [ nis_enabled ] DT allow mysqld_t port_type : tcp_socket name_connect ; [ mysql_connect_any ] DT allow nsswitch_domain port_type : tcp_socket { recv_msg send_msg } ; [ nis_enabled ]