配置SELinux手册页
默认情况下,RHEL 7和CentOS 7上未安装SELinux策略的SELinux手册页。我们必须安装必要的工具并自己生成手册页。
在本教程中,我将带我们完成配置SELinux环境所需的所有步骤,并添加手册页以方便参考和轻松进行SELinux故障排除。
对于新安装的CentOS 7,我们可以查看:全新安装CentOS 7.x Minimum之后要做的主要事情
启用SELinux
如果要检查SELinux是否正在运行,请在终端上执行以下命令
[theitroad@localhost ~]# getenforce Enforcing
从上面的输出中,我们可以看到我的SELinux正在运行并且正在执行所有策略规则。 Ive通过编辑/etc/selinux/config永久设置selinux
[theitroad@localhost ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
如果要永久启用SELinux而无需手动编辑文件,只需以root用户身份打开终端窗口,然后输入以下命令:
[theitroad@localhost ~]# sed -i 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config
我们可以通过执行以下命令来在下次启动时启用自动重新标记:
[theitroad@localhost ~]# touch /.autorelabel
然后重新引导系统以使更改生效。
[theitroad@localhost ~]# reboot
成功重启后,检查SELlinux的状态,它应该以强制模式运行
[theitroad@localhost ~]# getenforce Enforcing
安装必要的SELinux软件包
由于SELinux现在可以执行策略规则,因此请安装可帮助我们有效管理selinux的软件包。安装setroubleshoot-server软件包。
该软件包提供了有助于诊断SELinux问题的工具。
生成AVC消息时,可以生成警报,该警报将提供有关问题的信息并帮助跟踪其解决方案
要安装它,请在下面执行命令
[theitroad@localhost ~]# yum install setroubleshoot-server -y
policycoreutils-python软件包包含用于管理SELinux环境的管理工具。
如果安装了setroubleshoot-server,它将安装policycoreutils-python作为依赖项,因此,如果安装了setroubleshoot-server软件包,则可以跳过此步骤。
[theitroad@localhost ~]# yum install policycoreutils-python
另一个要安装的软件包是policycoreutils-devel
Policycoreutils-devel软件包包含用于在SELinux环境中开发策略的管理工具。
该软件包可帮助我们生成selinux手册页
我们可以看一下提供分隔符的内容,它实际上是policycoreutils-devel软件包提供的SELinux手册页生成实用程序。
[theitroad@localhost ~]# yum provides */sepolicy [theitroad@localhost ~]# yum install policycoreutils-devel
现在,我们已经拥有了所有必需的软件包。让我们生成SELinux手册页。
生成SELinux手册页
命令sepolicy手册页用于根据已安装的SELinux策略生成手册页。
可用的常见选项有:
-a,所有生成所有域的手册页
-d,域生成指定域的手册页。 (支持多个命令)
-h,helpDisplay帮助消息
-p,path指定用于存储创建的手册页的目录。 (缺省为/tmp)
-r,root指定备用根目录以从中生成手册页。 (默认为/)
-w,为指定的域生成一个添加的HTML手册页。
通过执行以下内容来生成selinux手册页:
[theitroad@localhost ~]# sepolicy manpage -a -p /usr/share/man/man8/
通过上面使用的选项,我们告诉sepolicy手册页为所有域生成手册页,并且存储手册页的路径为/usr/share/man/man8 /
生成手册页之后,现在该更新手册页数据库了,以便我们可以利用sepolicy manpage命令生成的手册页。
现在,我们可以更新手册页数据库。我们将使用命令mandb,该命令用于初始化或者手动更新通常由man维护的索引数据库缓存
[theitroad@localhost ~]# mandb
如果现在搜索所有selinux手册页,则会得到一长串列表,请通过执行以下命令自行尝试:
[theitroad@localhost ~]# man -k _selinux
要简化搜索范围,将输出传递给grep命令,请看下面的示例man -k _selinux | grep httpd
>搜索与selinux httpd相关的手册页man -k _selinux | egrep samba | smb
>搜索与samba相关的selinux手册页man -k _selinux | egrep * nfs
>搜索与nfs守护程序相关的selinux手册页
我们已经了解了使用grep获取所需的SELinux手册页是多么容易。
[theitroad@localhost ~]# man -k _selinux | grep httpd apache_selinux (8) - Security Enhanced Linux Policy for the httpd processes httpd_helper_selinux (8) - Security Enhanced Linux Policy for the httpd_helper processes httpd_passwd_selinux (8) - Security Enhanced Linux Policy for the httpd_passwd processes httpd_php_selinux (8) - Security Enhanced Linux Policy for the httpd_php processes httpd_rotatelogs_selinux (8) - Security Enhanced Linux Policy for the httpd_rotatelogs processes httpd_selinux (8) - Security Enhanced Linux Policy for the httpd processes httpd_suexec_selinux (8) - Security Enhanced Linux Policy for the httpd_suexec processes httpd_sys_script_selinux (8) - Security Enhanced Linux Policy for the httpd_sys_script processes httpd_unconfined_script_selinux (8) - Security Enhanced Linux Policy for the httpd_unconfined_script processes httpd_user_script_selinux (8) - Security Enhanced Linux Policy for the httpd_user_script processes