Selinux基础学习

Selinux是强大的,复杂的。通过一段时间的学习应该说对Selinux的掌握情况不是很好,但是在实际搭建各种服务中遇到的关于Selinux的问题却已经基本上可以全部解决了。
现在特将Selinux的一些基本功能、设置、学习方法总结一下希望能给大家一点帮助。

1、Selinux的三种模式:
Enforcing强制模式:默认模式,按照Selinux的策略来进行验证和管理系统安全。如果发现和Selinux的规定不相符合则强制阻止程序的运行或者访问,同时给出提示。
Permissive允许模式:系统记录所有违反策略的行为并给与一定的提示,同时不中阻止程序的运行。
Disabled禁用模式:关闭Selinux
getenforce:查询当前的Selinux模式
setenforce 0 |1 0:允许模式 1:强制模式
禁用selinux: 修改/etc/sysconfig/selinux 然后重新引导系统。

2、selinux下的环境元素:不同的安全需要使用不同的元素
Ls -Z 查看目标文件或者目录的策略
Ps -Z 查看进程的策略
*目前有5种支持元素,但不一定出现在所有系统中。
User:role:type:sensitivity:category
User_u:object_r:tmp_t:s0:c0
************************************************************
[root@server ~]# ls -Z /home
drwx------ redhat redhat system_u:object_r:user_home_dir_t redhat
drwxrwxrwx root root root:object_r:public_content_rw_t share
**************************************************************
用户(user)
指登陆到系统的用户类型;根用户登陆,则用户类型就是root;其他用户类型是user_u,即便是使用su命令提高访问权限也还是user_u;进程类型是system_u。
角色(role)
定义某个文件、进程、或用户的目的。文件角色是object_r;进程角色是system_r;用户角色也是system_r;
类型(type)
“强制类型”用来指定文件或者进程中数据的性质。策略中的规则指定那个进程类型可以使用哪个文件类型。
敏感性(sensitivity)
被政府、军事等部门使用的安全级别。
类别(cagegory)
与组类似,但可以阻止root访问的保密数据。
备注:类型为unconfined_t得到进程是尚未被selinux限制的进程。

3、Selinux目标策略:
chcon –t tmp_t /path 修改目标对象的安全环境类型。
**********************************************************
[root@server ~]# ls -Z
-rw-r--r-- root root root:object_r:user_home_t test
[root@server ~]# chcon -t etc_t test
[root@server ~]# ls -Z
-rw-r--r-- root root root:object_r:etc_t test
************************************************************
Chcon –reference 对象1 对象2 把对象1的安全环境类型应用到对象2上
************************************************************
[root@server ~]# ls -Z
-rw-r--r-- root root root:object_r:user_home_t install.log
-rw-r--r-- root root root:object_r:etc_t test
[root@server ~]# chcon --reference ./install.log ./test
[root@server ~]# ls -Z
-rw-r--r-- root root root:object_r:user_home_t install.log
-rw-r--r-- root root root:object_r:user_home_t test
************************************************************
restorecon /path 自动判断并应用对象的默认环境策略。
************************************************************
[root@server ~]# ls -Z
-rw-r--r-- root root root:object_r:user_home_t install.log
-rw-r--r-- root root root:object_r:etc_t test
[root@server ~]# restorecon ./*
[root@server ~]# ls -Z
-rw-r--r-- root root root:object_r:user_home_t install.log
-rw-r--r-- root root root:object_r:user_home_t test
********************************************************

4、selinux策略的控制:策略文件位置/selinux/booleans
system-config-selinux 图形模式下修改各个项目的selinux的设置,要重新引导才能生效。
命令法:
1)getsebool 控制策略 :查看某个控制策略启用情况 on 启用 off关闭。
     getsebool –a |grep XXX 可以过滤所有XXX的策略的启用情况。
2)setsebool –P 控制策略 on|off
     setsebool –P 控制策略=1|0
     -P表示始终;开启或者关闭某个策略。
Selinux 总是针对服务和进程出现的,要学好Selinux就不要禁用它。这样在做练习时,才会遇上相关的问题,才能看到Selinux给你解决问题的提示,也只有这样才能学好Selinux。

 

更多精彩linux视频教程,尽在51CTO学院:

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。