基础知识篇
1. SELinux(Security Enhanced Linux)的三种模式
a. Enforcing (强制模式):默认的模式,按照Selinux的策略来进行验证和管理系统安全。如果发现和Selinux的规定不
相符合则强制阻止程序的运行或者访问,同时给出提示。
b. Permissive (允许模式):系统记录所有违反策略的行为并给与一定的提示,同时不中阻止程序的运行。
c. Disabled (禁用模式):关闭SELinux。
1.1 针对模式的操作
a) getenforce: 得到SELinux的当前模式。
b) setenforce X: 设置SELinux的模式,X: 0~Permissive;1~Enforcing。
2. 安全环境
2.1 所有文件和进程都具备“安全环境”(security context)
对于SELinux来说,任何事都是一个对象,且对它们的访问由保存在节点扩展属性区域的安全因素控制的。总的来说,这些因素就是安全环境。目前有五种安全因素。
2.2 环境根据安全需要有几种元素
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
user:role:type:sensitivity:category
a) user:登录在系统上的用户的类型。root的用户类型就是root;其他用户的类型是user_u。
b) role: 定义某个文件、进程、或用户的作用。文件的角色是object_r,进程的角色是system_r,用户的角色也是system_r。
c) type:被“类型强制”用来指定文件或进程中的数据的性质。策略中的规则表明哪个进程类型可以使用哪个文件类型。
d) sensitivity: 有时被政府机关使用的安全级别。
e) category: 和组群相似,但是能够阻止root存取机密数据。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.3 查看文件的安全环境
<Fodora 9.0>
[root@patrick ~]# ls -Zd /etc /etc/hosts
drwxr-xr-x root root system_u:object_r:etc_t:s0 /etc
-rw-r--r-- root root system_u:object_r:etc_t:s0 /etc/hosts
注意:这里user的值为system_u,也就是root。一般,文件继承目录的安全环境(security context)。
也有例外,有些文件会因附加的安全性而获得独特的安全环境,如:
[root@patrick ~]# ls -Z /etc/shadow /etc/aliases
-rw-r--r-- root root system_u:object_r:etc_aliases_t:s0 /etc/aliases
-r-------- root root system_u:object_r:shadow_t:s0 /etc/shadow
2.4 查看进程的安全环境
<Fedora 9>
[root@patrick ~]# ps -ZC bash,rsyslogd
LABEL PID TTY TIME CMD
system_u:system_r:syslogd_t:s0 1745 ? 00:00:00 rsyslogd
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 2620 pts/0 00:00:00 bash
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 2829 pts/1 00:00:00 bash
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 2882 pts/1 00:00:00 bash
查看整个进程栈,ps -eZ或ps -Zax。