13.3. 布尔值
SELinux 基于服务运行所需的最低访问权限级别。服务可以以多种方式运行;因此,您需要指定如何运行您的服务。这可以通过布尔值来实现,这些布尔值允许在运行时更改 SELinux 策略的部分,而无需了解 SELinux 策略的编写。这允许更改,例如允许服务访问 NFS 卷,而无需重新加载或重新编译 SELinux 策略。
若要修改布尔值的状态,可使用 setsebool 命令。例如,要启用
httpd_anon_write
布尔值,以 root 用户身份输入以下命令:
~]# setsebool -P httpd_anon_write on
要禁用布尔值,使用同一个示例,只需 在 命令中切换到 off 即可,如下所示:
~]# setsebool -P httpd_anon_write off
注意
如果您不希望 setsebool 更改在重新引导后保留,则不要使用
-P
选项。
以下是可用常见布尔值的描述,可满足
httpd
的运行方式:
httpd_anon_write
- 禁用后,此布尔值仅允许
httpd
对标记为public_content_rw_t
类型的文件具有读取访问权限。启用此布尔值可允许httpd
写入标有public_content_rw_t
类型的文件,例如包含公共文件传输服务文件的公共目录。 httpd_mod_auth_ntlm_winbind
- 启用此布尔值允许使用
httpd
中的mod_auth_ntlm_winbind 模块访问 NTLM 和 Winbind
身份验证机制。 httpd_mod_auth_pam
- 启用此布尔值允许使用
httpd
中的mod_auth_pam
模块访问 PAM 身份验证机制。 httpd_sys_script_anon_write
- 此布尔值定义是否允许 HTTP 脚本对标记为
public_content_rw_t
类型的文件进行写入访问,这在公共文件传输服务中使用。 httpd_builtin_scripting
- 此布尔值定义对
httpd
脚本的访问。PHP 内容通常需要启用此布尔值。 httpd_can_network_connect
- 禁用后,这个布尔值可防止 HTTP 脚本和模块启动与网络或远程端口的连接。启用此布尔值以允许此访问。
httpd_can_network_connect_db
- 禁用后,此布尔值可防止 HTTP 脚本和模块启动与数据库服务器的连接。启用此布尔值以允许此访问。
httpd_can_network_relay
- 当
httpd
用作正向或反向代理时,启用此布尔值。 httpd_can_sendmail
- 禁用后,此布尔值可防止 HTTP 模块发送邮件。如果
httpd
中找到漏洞,这可以防止垃圾邮件攻击。启用此布尔值以允许 HTTP 模块发送邮件。 httpd_dbus_avahi
- 禁用后,此布尔值拒绝
httpd
通过D-Bus
访问avahi
服务。启用此布尔值以允许此访问。 httpd_enable_cgi
- 禁用后,此布尔值会阻止
httpd
执行 CGI 脚本。启用此布尔值以允许httpd
执行 CGI 脚本(CGI 脚本必须使用httpd_sys_script_exec_t
类型标记)。 httpd_enable_ftp_server
- 启用此布尔值允许
httpd
侦听 FTP 端口并充当 FTP 服务器。 httpd_enable_homedirs
- 禁用后,此布尔值阻止
httpd
访问用户主目录。启用此布尔值以允许httpd
访问用户主目录;例如,/home/*/ 中的内容
。 httpd_execmem
- 启用后,此布尔值允许
httpd
执行需要内存地址可执行和可写入的程序。不建议从安全角度启用此布尔值,因为它可减少对缓冲区溢出的保护,但某些模块和应用程序(如 Java 和 Mono 应用)需要此特权。 httpd_ssi_exec
- 此布尔值定义服务器端是否可以在网页中包含(SSI)元素。
httpd_tty_comm
- 此布尔值定义是否允许
httpd
访问控制终端。通常不需要这种访问,但在配置 SSL 证书文件等情形中,需要进行终端访问来显示和处理密码提示符。 httpd_unified
- 启用后,此布尔值允许
httpd_t
完全访问所有httpd
类型(即执行、读取或写入 sys_content_t)。禁用后,将区分只读、可写入或可执行的 Web 内容。禁用此布尔值可确保额外的安全级别,但增加了管理开销,即必须根据每个布尔值应具有的文件访问权限单独标记脚本和其他 Web 内容。 httpd_use_cifs
- 启用此布尔值,以允许
httpd
访问使用thecifs_t
类型标记的 CIFS 卷上的文件,例如使用 Samba 挂载的文件系统。 httpd_use_nfs
- 启用此布尔值,以允许
httpd
访问使用nfs_t
类型标记的 NFS 卷上的文件,例如使用 NFS 挂载的文件系统。
注意
由于 SELinux 策略的持续开发,以上列表可能不包含与 服务相关的所有布尔值。要列出它们,请输入以下命令:
~]$ getsebool -a | grep service_name
输入以下命令查看特定布尔值的描述:
~]$ sepolicy booleans -b boolean_name
请注意,需要额外的 policycoreutils-devel 软件包来提供 sepolicy
实用程序,这个命令才能正常工作。