Linux中的SElinux
SElinux内核级加强型防火墙:
关于SElinux的概念,以下摘自于其他博客:
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。
SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了。
如果可以熟练掌握 SELinux 并正确运用,我觉得整个系统基本上可以到达"坚不可摧"的地步了(请永远记住没有绝对的安全)。
掌握 SELinux 的基本概念以及简单的配置方法是每个 Linux 系统管理员的必修课。
SElinux对于系统的作用与影响:
1.针对文件,会对系统中的每个文件添加安全上下文
(因此启用SElinux的话,会在开机时自动为每个文件打上标签系统启动较慢)
2.针对进程,会对系统中的每个进程添加安全上下文
3.会在系统服务上设定sebool开关,限制服务的功能
4.当进程安全上下文和文件的安全上下文不匹配时,那么进程无法访问此文件
5.sebool会限制服务的不安全功能,如果需要此功能,必须调整sebool的值
SElinux的管理:
配置文件:
/etc/sysconfig/selinux
SElinux的三种模式:
强制模式:SElinux=enforcing
警告模式:SElinux=permissive
禁用模式:SElinux=diabled
3个级别:
强制:在系统中使用安全上下文,系统功能均限制于安全上下文以及sebool开关
警告:当操作不符合SElinux安全上下文时,会提示用户这样的操作并不安全,但不会阻止操作
禁用:关闭SElinux,在系统中不加载也看不到安全上下文,系统功能也不受到SElinux的限制
getenforce 查看SElinux当前的运行模式
setenforce 0|1
更改SElinux的级别,0表示更改为警告模式(enforcing—>permissive),1表示更改为强制模式(permissive—>enforcing)
注意:
setenforce命令只有0,1两个参数,它也仅仅使用于上面的两种情况。
涉及到从diabled—>enable,以及enable—>diabled的情况,必须要更改其配置文件,并重启。
下图为例:
在SElinux下设定文件的安全上下文:
chcon
临时设定
(单纯地reboot重启后设定不会失效,要先由enforcing—>diabled,再由diabled—>enforcing,重启两次,才会看到设定失效)
chcon -t 安全上下文 文件
chcon -t public_content_t /var/ftp/file
semanage
永久更改文件安全上下文
semanage fcontext -l 查看系统中默认的安全上下文
semanage fcontext -a -t public_content_t '/westos(/.)?’
修改后使用下面的命令刷新
(加上(/.)?这个符号能将westos内部文件的安全上下文也修改,否则只会修改文件夹本身)
restorecon -RvvF /westos/(注意R,F之间是两个v)
在SElinux下设定sebool值:
sebool值是控制服务功能的开关
getsebool | grep 服务名称 查看服务的sebool值
setbool -P bool值 on|off 更改服务的sebool值
在SElinux下的排错:
由于SElinux的开启,可能会出现本来不该出现的错误结果。但是当我们不知道SElinux正在使用的时候。要怎么样找出错误的原因呢?
很简单,根据日志的提示信息。
vim /var/log/messages
日志中不但会给出错误的原因,还会给出改正方法