SELinux
是集成在内核2.6版本之后的上安全子系统,使用uname -r或uname -a可以查看内核版本
永久生效的SELinux配置文件位置/etc/selinux/config,需要重启电脑后生效,一般只设置SELINUX参数的启动状态,而对于SELINUXTYPE参数保持默认的targeted即可,意思是对于大部分著名的软件默认的设置是起到保护(限制)作用的
getenforce:查看设置的SELinux级别setenforce:设置临时的SElinux级别,0是permissive警告模式,1是enforcing强制模式,如果原本是disabled状态将无法使用该命令开启sestatus:查看SELinux详细信息v:更详细
SELinux运行原理
为每个文件(安全上下文)和进程(域限制)都添加一个标签,系统中运行的程序有访问文件或进程的操作时会经过SELinux,若SELinux中有设置访问该标签的策略就允许访问,否则不允许
文件的标签可以使用ls -Z查看,进程的标签可以使用ps -auxZ查看,系统默认会为每个文件都添加默认的标签,使用semanage fcontext -l可以查看默认的标签
标签的的格式是system_u:system_r:kernel_t:s0以分号分隔的4段内容,分别表示:
用户(以_u结尾) |
角色(以_r结尾) |
类型(以_t结尾) |
级别 |
|---|---|---|---|
创建者类型,如system_u=系统创建的、unconfined_u=用户自己创建的 |
该对象的用途,比如system_r=系统进程、unconfined_r=用户进程、object_r=文件 |
就是什么进程能访问什么类型文件中的类型,主要修改的字段,若设置为public_content_t=任意进程都可以读、public_content_rw_t=任何进程都可以读写 |
在targeted模式下都是s0 |
对于复制的文件会重新根据当前目录定义标签,对于移动的文件会保留原来的标签
修改SELinux标签类型
chcon:修改安全上下文t:修改类型字段R:递归修改reference:根据文件或目录更改安全上下文
restorecon:恢复到系统默认的标签R:递归恢复v:显示过程
semanage:SELinux管理器fcontext:文件安全上下文l:列出所有文件的默认标签a:向策略数据库中添加默认的SELinux策略d:从策略数据库中删除默认的SELinux策略t:指定标签的类型字段,后跟标签和目录,空格隔开,若想递归设置则需要为目录增加(/.*)?正则后缀表示目录和目录内的文件
port:端口安全上下文l:列出所有端口的默认标签a:向策略数据库中添加默认的SELinux策略d:从策略数据库中删除默认的SELinux策略m:从策略数据库中修改默认的SELinux策略,前提是有才能修改t:指定标签的类型字段p:指定端口号和协议,空格隔开
boolean:服务行为开关布尔值l:查看服务行为开关布尔值C:查看修改过的布尔值,配合l
getsebool:查看临时的服务行为开关布尔值setsebool:临时修改服务行为开关布尔值,后跟服务行为off是开,on是关P:永久修改服务行为开关布尔值
SELinux日志
yum install setroubleshoot,安装sealert命令grep 关键字 /var/log/messages,系统日志中搜索sealert -l UUID根据日志的提示运行相应的UUID即可查看sealert -a /var/log/audit/audit.log可查看所有有关SELinux的错误日志信息

Comments NOTHING