“SELinux”的版本间差异

来自Shiyin's note
跳到导航 跳到搜索
(以“Selinux 的安全防护措施主要集中在各种网络服务的访问控制。 对于 Apache 、Samba、NFS 数据库来说,Selinux 仅仅开放了最基本的...”为内容创建页面)
 
无编辑摘要
第18行: 第18行:
和 SELinux 上下文相关的 httpd 进程是 system_u:system_r:httpd_t:s0。 httpd 进程都运行在 httpd_t 域中。文件类型必须正确设置才能让 httpd 访问 。例如 httpd 可以读取文件类型是 httpd_sys_content_t,但不能写和修改。此外 httpd 不能访问 samba_share_t 类型的文件(Samba 访问控制的文件),也不能访问用户主目录中被标记为与 user_home_t 文件类型,主要是防止 httpd 读写用户主目录中的文件并且继承其访问权限。httpd 可以读写的文件类型是 httpd_sys_content_rw_t。
和 SELinux 上下文相关的 httpd 进程是 system_u:system_r:httpd_t:s0。 httpd 进程都运行在 httpd_t 域中。文件类型必须正确设置才能让 httpd 访问 。例如 httpd 可以读取文件类型是 httpd_sys_content_t,但不能写和修改。此外 httpd 不能访问 samba_share_t 类型的文件(Samba 访问控制的文件),也不能访问用户主目录中被标记为与 user_home_t 文件类型,主要是防止 httpd 读写用户主目录中的文件并且继承其访问权限。httpd 可以读写的文件类型是 httpd_sys_content_rw_t。


Apache 默认的文档根目录类型是 httpd_sys_content_t。
Apache 默认的文档根目录类型是 httpd_sys_content_t。除非另外设置 httpd 只能访问/var/www/html/目录中的 httpd_sys_content_t 类型的文件和子目录



除非另外设置 httpd 只能访问/var/www/html/目录中的 httpd_sys_content_t 类型的文件和子目录。
此外,SELinux 还针对 httpd 定义了一些文件类型:
*httpd_sys_content_t 主要用于提供静态内容服务的文件,如 HTML 静态网站使用的文件。这种类型的标记文件可以访问(只读)httpd 和执行脚本 httpd。默认情况下,这种类型的文件和目录标记不能被写入或修改 httpd 或其他进程。 注意:默认情况下,创建的文件或复制到的 /var/www/html/httpd_sys_content_t 类型的标记。
*httpd_sys_script_exec_t 主要用于设置 /var/www/cgi-bin/ 目录下的 cgi 脚本。默认情况下 SELinux 策略防止 httpd 执行 CGI 脚本。
*httpd_sys_content_rw_t 使用 httpd_sys_content_rw_t 的类型标签读取和写脚本标记文件 httpd_sys_script_exec_t 的类型。
*httpd_sys_content_ra_t 使用 httpd_sys_content_ra_t 的类型标签将读取和附加标记的脚本文件 httpd_sys_script_exec_t 类型。

如果需要修改文件和目录的 SELinux 类型属性时可以使用三个命令:chcon、 semanage fcontext 和 restorecon 命令 。

说明:使用 chcon 命令来对文件的类型进行重新标识。然而,这样的标识不是永久性的修改,一旦系统重启,该标识就会改变回去。对于文件类型的永久性改变,需要采用 semanage 命令。chcon、 semanage fcontext 和 restorecon 三个命令是本文的重点下面首先介绍一下使用方法:

#chcon 命令

作用:chcon 命令用来改变 SELinux 文件属性即修改文件的安全上下文

用法:chcon [ 选项 ] CONTEXT 文件

主要选项 :

-R:递归改变文件和目录的上下文。
--reference:从源文件向目标文件复制安全上下文
-h, --no-dereference:影响目标链接。
-v, --verbose:输出对每个检查文件的诊断。
-u, --user=USER:设置在目标用户的安全上下文。
-r,--role=ROLE:设置目标安全领域的作用。
-t, --type=TYPE:在目标设定的安全上下文类型。
-l, --range=RANGE:设置 set role ROLE in the target security context 目标安全领域的范围。
-f:显示少量错误信息。

2013年2月22日 (五) 01:06的版本

Selinux 的安全防护措施主要集中在各种网络服务的访问控制。

对于 Apache 、Samba、NFS 数据库来说,Selinux 仅仅开放了最基本的运行需求。至于连接外部网络、运行脚本、访问用户目录、共享文件等,必须经过一定的 Selinux 策略调整才能充分发挥网络服务器的作用,在安全和性能直接获取平衡。

SELinux 环境下的 Apache 配置

Apache 的 SELinux 的文件类型

当启用 SELinux 是,Apache HTTP 服务器(httpd)默认情况下在受限的 httpd_t 域中运行,并和其他受限制的网络服务分开。即使一个网络服务被攻击者破坏,攻击者的资源和可能造成的损害是有限的。

下面的示例演示的是 SELinux 下的 httpd 进程。

   $ ps -eZ | grep httpd
    unconfined_u:system_r:httpd_t:s0 2850 ?        00:00:00 httpd
    unconfined_u:system_r:httpd_t:s0 2852 ?        00:00:00 httpd
   ……

和 SELinux 上下文相关的 httpd 进程是 system_u:system_r:httpd_t:s0。 httpd 进程都运行在 httpd_t 域中。文件类型必须正确设置才能让 httpd 访问 。例如 httpd 可以读取文件类型是 httpd_sys_content_t,但不能写和修改。此外 httpd 不能访问 samba_share_t 类型的文件(Samba 访问控制的文件),也不能访问用户主目录中被标记为与 user_home_t 文件类型,主要是防止 httpd 读写用户主目录中的文件并且继承其访问权限。httpd 可以读写的文件类型是 httpd_sys_content_rw_t。

Apache 默认的文档根目录类型是 httpd_sys_content_t。除非另外设置 httpd 只能访问/var/www/html/目录中的 httpd_sys_content_t 类型的文件和子目录。


此外,SELinux 还针对 httpd 定义了一些文件类型:

  • httpd_sys_content_t 主要用于提供静态内容服务的文件,如 HTML 静态网站使用的文件。这种类型的标记文件可以访问(只读)httpd 和执行脚本 httpd。默认情况下,这种类型的文件和目录标记不能被写入或修改 httpd 或其他进程。 注意:默认情况下,创建的文件或复制到的 /var/www/html/httpd_sys_content_t 类型的标记。
  • httpd_sys_script_exec_t 主要用于设置 /var/www/cgi-bin/ 目录下的 cgi 脚本。默认情况下 SELinux 策略防止 httpd 执行 CGI 脚本。
  • httpd_sys_content_rw_t 使用 httpd_sys_content_rw_t 的类型标签读取和写脚本标记文件 httpd_sys_script_exec_t 的类型。
  • httpd_sys_content_ra_t 使用 httpd_sys_content_ra_t 的类型标签将读取和附加标记的脚本文件 httpd_sys_script_exec_t 类型。

如果需要修改文件和目录的 SELinux 类型属性时可以使用三个命令:chcon、 semanage fcontext 和 restorecon 命令 。

说明:使用 chcon 命令来对文件的类型进行重新标识。然而,这样的标识不是永久性的修改,一旦系统重启,该标识就会改变回去。对于文件类型的永久性改变,需要采用 semanage 命令。chcon、 semanage fcontext 和 restorecon 三个命令是本文的重点下面首先介绍一下使用方法:

  1. chcon 命令

作用:chcon 命令用来改变 SELinux 文件属性即修改文件的安全上下文

用法:chcon [ 选项 ] CONTEXT 文件

主要选项 :

   -R:递归改变文件和目录的上下文。
   --reference:从源文件向目标文件复制安全上下文
   -h, --no-dereference:影响目标链接。
   -v, --verbose:输出对每个检查文件的诊断。
   -u, --user=USER:设置在目标用户的安全上下文。
   -r,--role=ROLE:设置目标安全领域的作用。
   -t, --type=TYPE:在目标设定的安全上下文类型。
   -l, --range=RANGE:设置 set role ROLE in the target security context 目标安全领域的范围。
   -f:显示少量错误信息。