SELinux的安全防护措施主要集中在各种网络服务的访问控制。对于像Apache、Samba、NFS、vsftp、MySQL、Binddns等服务来说,SELinux仅仅了最基本的运行需求。至于连接外部网络、运行脚本、访问用户目录、共享文件等,必须经过一定的SELinux策略调整才能充分发挥网络服务请看如下
SELinux的安全防护措施主要集中在各种网络服务的访问控制。对于像Apache、Samba、NFS、vsftp、MySQL、Binddns等服务来说,SELinux仅仅了最基本的运行需求。至于连接外部网络、运行脚本、访问用户目录、共享文件等,必须经过一定的SELinux策略调整才能充分发挥网络服务器的作用,在安全和性能直接获取平衡。
AD:
SELinux的安全防护措施主要集中在各种网络服务的访问控制。对于像Apache、Samba、NFS、vsftp、MySQL、Binddns等服务来说,SELinux仅仅了最基本的运行需求。至于连接外部网络、运行脚本、访问用户目录、共享文件等,必须经过一定的SELinux策略调整才能充分发挥网络服务器的作用,在安全和性能直接获取平衡。
Apache的SELinux的文件类型
当启用SELinux是,ApacheHTTP服务器(httpd)默认情况下在受限的httpd_t域中运行,并和其他受的网络服务分开。即使一个网络服务被者,者的资源和可能造成的损害是有限的。下面的示例演示的是SELinux下的httpd进程。
httpd_sys_content_t主要用于提供静态内容服务的文件,如HTML静态网站使用的文件。这种类型的标记文件可以访问(只读)httpd和执行脚本httpd。默认情况下,这种类型的文件和目录标记不能被写入或修改httpd或其他进程。注意:默认情况下,创建的文件或复制到的/var/www/html/httpd_sys_content_t类型的标记。
Apache的SELinux的布尔变量
对于网络服务而言,SElinux仅仅了最低运行需求,为了发挥Apache服务器的功能还必须把布尔值必须打开,以允许某些行为包括允许httpd脚本网络访问,允许httpd访问NFS和CIFS文件系统,允许执行通用网关接口(CGI)脚本。可以使用命令getsebool查询当前布尔变量。然后可以使用下面的setsebool命令布尔变量:
httpd_execmem启用时这个布尔变量允许httpd的执行程序需要的内192.168.1.10存地址。不要启用这个布尔变量从安全角度来看,因为它减少了对缓冲区溢出,但是某些模块和应用程序(如Java和Mono应用)的需要这种。
按照SELinux策略和继承原则,/mywebsite目录和其中的文件会具有deult_t类型,,包括以后创建的文件或者子目录也会继承和拥有这种类型,这样受限的httpd进程是不能访问的,可以使用chcon和restorecon命令修改/mywebsite的文件类型属性,确保之后建立的文件和复制的文件具有相同httpd_sys_content_t的类型,从而使受限的httpd进程能够访问。
(2)共享NFS和CIFS文件系统
默认情况下,在客户端的NFS挂载NFS文件系统的政策定义一个默认的上下文标记这个默认的上下文使用nfs_t类型。此外默认情况下,Samba共享客户端上安装有策略的定义一个默认的上下文标记。这个默认的上下文使用cifs_t类型。根据SELinux策略配置,Apache服务可能无法读取nfs_t或cifs_t类型。通过设置布尔值或关闭来控制哪个服务被允许访问nfs_t和cifs_t类型。
例如使用setsebool命令打开httpd_use_nfs布尔变量后,httpd即可访问nfs-t类型的nfs共享资源了:
(2)共享一个网页
如果要共享一个网页文件目录如Apache服务器的/var/www/html,是不能使用文件类型的。此时可以使用samba_export_all_ro和samba_export_all_rw两个布尔值变量,达到共享目录和文件的目的。步骤如下:
修改samba配置文件,添加如下行:
NFS的SELinux的文件类型
SELinux中,nfs服务器的守护进程都是在受限的nfs_t域中运行。并且和其他受限的网络服务相互隔离。SELinux策略不允许使用NFS共享远程文件。如果一定要共享远程文件,可以使用nfs_export_all_ro和nfs_export_all_rw等布尔值变量调整SELinux的策略。按照SELinux的策略客户端安装NFS文件系统采用的默认文件系统是nfs_t,此外SELinux还针对nfsd定义了一些文件类型:
var_lib_nfs_t这种类型用于现有的和新的文件复制或在创建的/var/lib/nfs目录中。在正常运行这种类型应该不需要改变。要恢复到默认设置,可以使用超级用户权限运行命令:restorecon-R-v/var/lib/nfs。
NFS的SELinux的布尔变量
SELinux提供了几个布尔变量用来调整NFS,你可以在系统安全和NFS功能之间取得平衡。例如:
将本机的NFS共享设置成可读可写,需要相关布尔值变量:
一个例子
这个例子中NFS服务器的IP地址192.168.1.1,NFS客户端的IP地址为192.168.1.10,两台主机在同一子网(192.168.1.0/24)。
首先在NFS服务器端使用setsebool命令确保nfs_export_all_rw布尔变量已经打开,使得NFS客户端能够以只读的方式安装NFS文件系统。然后创建一个目录,作为共享资源,然后在目录中建立一个文件提供给客户端访问,命令如下:
tags:192.168.1.10