配置SELinux手册页

时间:2020-02-23 14:37:54  来源:igfitidea点击:

默认情况下,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