------------------------------------------------------------------------
#SElinux 管理工具
yum -y install policycoreutils-newrole # Usage: System -> Management -> SElinux
------------------------------------------------------------------------
# SElinux信息与开启
ls -Z   ps -Z   id -Z  # 分别可以看到文件,进程和用户的SELinux属性
sestatus seinfo selinuxenabled getenforce  # 查看SElinux信息
setenforce [ Enforcing | Permissive | 1 | 0 ]
/etc/selinux/config    # 需要重启系统来启动SELinux新的工作模式
------------------------------------------------------------------------
#chcon 改变SELinux安全上下文
chcon -u [user]  对象
      -r [role]
      -t [type]
      -R 递归
      --reference 源文件 目标文件
示例:
chcon -R -t samba_share_t /tmp/abc
---------------------
# restorecon    # 恢复安全上下文
---------------------
# SElinux查看与设置策略
getsebool  # 获取本机selinux策略值,也称为bool值
    # selinux的设置一般通过两个部分完成的,一个是安全上下文,另一个是策略,策略值是对安全上下文的补充
setsebool -P allow_ftpd_anon_write=1  # -P 是永久性设置,否则重启之后又恢复预设值。
示例:
[root@redhat files]# setsebool -P allow_ftpd_anon_write=1
[root@redhat files]# getsebool allow_ftpd_anon_write
allow_ftpd_anon_write --> on
--------------------
注意:如果仅仅是安全上下文中设置了vsftpd进程对某一个目录的访问,配置文件中也允许可写,
但是selinux中策略中不允许可写,仍然不可写。所以基于selinux保护的服务中,安全高很多。
------------------------------------------------------------------------
# SElinux对服务的应用
selinux的设置分为两个部分,修改安全上下文以及策略,下面收集了一些应用的安全上下文,
供配置时使用,对于策略的设置,应根据服务应用的特点来修改相应的策略值。
1.3.1 SElinux与samba
1.samba共享的文件必须用正确的selinux安全上下文标记。
chcon -R -t samba_share_t /tmp/abc
如果共享/home/abc,需要设置整个主目录的安全上下文。
chcon -R -r samba_share_t /home
2.修改策略(只对主目录的策略的修改)
setsebool -P samba_enable_home_dirs=1
setsebool -P allow_smbd_anon_write=1
getsebool 查看
samba_enable_home_dirs -->on
allow_smbd_anon_write --> on /*允许匿名访问并且可写*/
1.3.2 SElinux与nfs
selinux对nfs的限制好像不是很严格,默认状态下,不对nfs的安全上下文进行标记,而且在默认状态的策略下,nfs的目标策略允许nfs_export_all_ro
nfs_export_all_ro
nfs_export_all_rw值为0
所以说默认是允许访问的。
但是如果共享的是/home/abc的话,需要打开相关策略对home的访问。
setsebool -P use_nfs_home_dirs boolean 1
getsebool use_nfs_home_dirs
1.3.3 SElinux与ftp
1.如果ftp为匿名用户共享目录的话,应修改安全上下文。
chcon -R -t public_content_t /var/ftp
chcon -R -t public_content_rw_t /var/ftp/incoming
2.策略的设置
setsebool -P allow_ftpd_anon_write =1
getsebool allow_ftpd_anon_write
allow_ftpd_anon_write--> on
1.3.4 SElinux与http
apache的主目录如果修改为其它位置,selinux就会限制客户的访问。
1.修改安全上下文:
chcon -R -t httpd_sys_content_t /home/html
由于网页都需要进行匿名访问,所以要允许匿名访问。
2.修改策略:
setsebool -P allow_ftpd_anon_write = 1
setsebool -P allow_httpd_anon_write = 1
setsebool -P allow_<协议名>_anon_write = 1
关闭selinux对httpd的保护
httpd_disable_trans=0
1.3.5 SElinux与公共目录共享
如果ftp,samba,web都访问共享目录的话,该文件的安全上下文应为:
public_content_t
public_content_rw_t
其它各服务的策略的bool值,应根据具体情况做相应的修改