1.SElinux 是对于强制访问控制的实现,是 Linux上最杰出的新安全子系统,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到
2.SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统
3.Selinux的三种模式及启用关闭:
Enforcing强制模式:默认模式,按照Selinux的策略来进行验证和管理系统安全。如果发现和Selinux的规定不相符合则强制阻止程序的运行或者访问,同时给出提示。
Permissive允许模式:系统记录所有违反策略的行为并给与一定的提示,同时不中阻止程序的运行。
Disabled禁用模式:关闭Selinux
以上模式由 /etc/sysconfig/selinux 文件中 SELINUX="" 选项指定,重启生效。
命令:
getenforce:查询当前的Selinux模式
setenforce 0 |1 0:允许模式 1:强制模式(不必重启生效,若想永久使用该模式,需要改 /etc/sysconfig/selinux 配置文件)
4.SElinux 管理工具
安装适合你系统的相应SElinux管理工具(如果你的系统没装,但又不知怎么安装可以Google一下。呵呵)
------------------------------------------------------------------------
# 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保护的服务中,安全高很多。
------------------------------------------------------------------------
5.SElinux对服务的应用
selinux的设置分为两个部分,修改安全上下文以及策略,下面收集了一些应用的安全上下文,
供配置时使用,对于策略的设置,应根据服务应用的特点来修改相应的策略值。
5.1 SElinux与samba
5.1.1 samba共享的文件必须用正确的selinux安全上下文标记。
chcon -R -t samba_share_t /tmp/abc
如果共享/home/abc,需要设置整个主目录的安全上下文。
chcon -R -r samba_share_t /home
5.1.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 /*允许匿名访问并且可写*/
5.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
5.3 SElinux与ftp
5.3.1 如果ftp为匿名用户共享目录的话,应修改安全上下文。
chcon -R -t public_content_t /var/ftp
chcon -R -t public_content_rw_t /var/ftp/incoming
5.3.2策略的设置
setsebool -P allow_ftpd_anon_write =1
getsebool allow_ftpd_anon_write
allow_ftpd_anon_write--> on
5.4 SElinux与http
apache的主目录如果修改为其它位置,selinux就会限制客户的访问。
5.4.1 修改安全上下文:
chcon -R -t httpd_sys_content_t /home/html
由于网页都需要进行匿名访问,所以要允许匿名访问。
5.4.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
5.5 SElinux与公共目录共享
如果ftp,samba,web都访问共享目录的话,该文件的安全上下文应为:
public_content_t
public_content_rw_t
其它各服务的策略的bool值,应根据具体情况做相应的修改。
阅读(840) | 评论(1) | 转发(0) |