This is SElinux StudyNote.
selinux 的全称是Security Enhance Linux,即为安全加强的Linux
1. selinux状态查看与配置
selinux的配置文件位置:
/etc/selinux/config,它还有个链接在`/etc/sysconfig/selinuxselinux三种状态:
enforcing-是强制模式系统,它受selinux保护。就是违反了策略你就无法继续操作下去。permissive-是提示模式系统不会受到selinux保护,只是收到警告信息。permissive就是selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你违反的内容记录下来(警告信息)disabled-禁用selinux
查询selinux工作状态:①
sestatus显示有关详细信息②根据selinuxenabled命令回传值判断是否开启,0表示开启,1表示关闭(可以使用echo $?)③使用getenforce查看变更selinux工作状态(临时):
setenforce命令设定selinux运行状态,1开启(Enforce),0关闭(Permissive),同时可以使用getenforce查看已修改的状态信息
2. 查看文件安全上下文以及相关命令
- 查看文件上下文:
ls -lZ FILENAME - 查看进程上下文:
ps auxZ | grep PROGRESS - 查看用户上下文:
id -Z
3. SElinux日志查看及相关工具
selinux的日志文件位置:
/var/log/audit/audit.log查看工具:
audit2why和audit2allow:所属软件包为policycoreutils-python.x86_64
使用方法:
audit2why </var/log/audit/audit.logsetroubleshoot:所属软件包为setroubleshoot-server.x86_64
使用方法:
tail /var/log/messages | grep setroubleshoot
4. 解决SElinux资源类别错误导致文件无法访问(httpd)
根据日志记录的错误可以使用
sealert -l ERR_CODE来查看详情可以用sesearch【--allow】【-s 主体类别】【-t 目标类别】【-b】查询详细规则
sesearch命令由下列软件包提供
setools-console.x86_64找出目标资源类别为httpd_sys_content_t的相关信息:
sesearch --allow -t httpd_sys_content_t找出主体类别为httpd_t可以访问的那些资源相关信息:
sesearch -s httpd_t --allow
修改文件上下文
一种是通过restorerecon( restore context) 修复继承当前目录默认的上下文;一种是通过chcon(change context) 修改当前的上下文
(1)使用restorerecon( restore context) 修复继承当前目录默认的上下文
分两步实现:
首先为/var/www/html 这个目录下的所有文件添加默认标签类型:
semanage fcontext -a -thttpd_sys_content_t '/var/www/html(/.*)?'因为html目录的默认标签类型就是httpd_sys_content_t,所以此步可以省略
然后用新的标签类型标注已有文件:
restorecon -Rv /var/www/html/, 之后httpd就可以访问该目录下的文件了(2)使用chcon (change context) 修改当前的上下文
chcon -t httpd_sys_content_t /var/html/index.html其他
chcon参数:-t type 类型 -R recursive 递归 -u user 用户 -r role 角色
或者使用
chcon --reference /var/html/hello.html /var/html/index.html
5. 查看修改有哪些SElinux布尔值
- 查看当前系统所有的布尔值:
getsebool -a - 修改某一个布尔值:
setsebool [-P] value on|off,其中-P表示永久有效
