首页 > 代码库 > 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(多级安全)机制的安全性

minimummls稳定性不足,未加以应用

查看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
扫描并分析日志


安装selinuxman文档

  记住所有的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的报错信息;不会的查询selinuxman文档。


本文出自 “老王linux旅程” 博客,请务必保留此出处http://oldking.blog.51cto.com/10402759/1880620

selinux