首页 > 代码库 > selinux
selinux
selinux是美国国家安全局对linux安全一种增强机制。linux是一切皆文件而selinux是一切皆对象,我们主要操作的对象,一般有文件,端口;selinux还有一个开启某个selinux特性的开关sebool。
一 selinux的开启与模式
selinux的模式是在/etc/selinux/conf文件中配置,同时这个文件也提供selinux的开启与关闭。配置文件的格式:
SELINUX=enforcing 设置开机启动 SELINUXTYPE=targeted 设置使用的工作类型
SELinux有四种工作类型:
strict: centos5,每个进程都受到selinux的控制
targeted: 用来保护常见的网络服务,仅有限进程受到selinux控制,只监控容易被入侵的进程, rhel4只保护13个服务,rhel5保护88个服务(tartgeted是以包容模式运行的,就是说没有定义的可以运行,定义才限制)
minimum: centos7,修改过的targeted,只对选择的网络服务
mls:提供MLS(多级安全)机制的安全性
minimum和mls稳定性不足,未加以应用
二查看selinux权限
查看文件的selinux权限
ls -Z b -rw-r--r--. root rootunconfined_u:object_r:admin_home_t:s0 b unconfined_u 定义的是user,这个文件针对哪个用户 object_r 定义用途 admin_home_t 指定数据类型 ps -efZ 查看进程的selinux标签
三设置selinux权限
指定文件的selinux权限
chcon[OPTION]... [-u USER] [-r ROLE] [-t TYPE] FILE... -R 递归 还原selinux权限 restorecon/dir/file -R 递归 semanage来自 policycoreutils-python包
查看默认的安全上下文
semanagefcontext –l
添加安全上下文
semanagefcontext -a –t httpd_sys_content_t ‘/testdir(/.*)?’ restorecon –Rv/testdir
删除安全上下文
semanagefcontext -d –t httpd_sys_content_t ‘/testdir(/.*)
查看端口标签
semanage port –l
添加端口
semanage port -a-t port_label -p tcp|udp PORT semanage port -a-t http_port_t -p tcp 9527
删除端口
semanage port -d-t port_label -p tcp|udp PORT semanage port -d-t http_port_t -p tcp 9527
修改现有端口为新标签(只能修改正在使用的端口)
semanage port -m-t port_label -p tcp|udp PORT semanage port -m-t http_port_t -p tcp 9527
四设置布尔型
布尔型规则:
getsebool setsebool
查看bool命令:
getsebool [-a][boolean] semanage boolean–l semanage boolean-l –C 查看修改过的布尔值
设置bool值命令:
setsebool [-P]boolean value( on,off) setsebool [-P]Boolean=value( 0, 1)
五SELinux日志管理
yum install setroublesshoot*(重启生效) 将错误的信息写入/var/log/message grep setroubleshoot /var/log/messages sealert -l UUID 查看安全事件日志说明 sealert -a /var/log/audit/audit.log 扫描并分析日志
六安装selinux的man文档
记住所有的selinux权限格式是很难的,我们需要selinux的帮助文档,服务的man文档不带selinux权限设置帮助,这里我们需要装selinux的帮助文档,
yum -y install selinux-policy-devel( centos7) yum –y install selinux-policy-doc ( centos6) mandb | makewhatis 构建man文档库 man -k _selinux 查询与selinux有关的man文档
总结
这一节内容不是很重要,服务出了问题我们一定要想着selinux对服务的影响。主要记住semanage添加目录selinux权限,并使用restorecon使selinux权限生效,或者打开sebool;出了问题使用sealert查看selinux的报错信息;不会的查询selinux的man文档。
本文出自 “老王linux旅程” 博客,请务必保留此出处http://oldking.blog.51cto.com/10402759/1880620
selinux