SELinux

来源:互联网 发布:淘宝商务男装品牌 编辑:程序博客网 时间:2024/05/24 07:23

SELinux

三种状态:Disabled :关闭selinux的各项功能Permissive:0,警告Enforcing:1,强制这三种状态可以直接通过两种方式查看:a、vim /etc/sysconfig/selinux b、getenforce改变selinux状态的方法也是有两种:a、 step1 : vim /etc/sysconfig/selinux     step2 : rebootb、 setenforce 0      ##Permissive    setenforce 1      ##Enforcing       ##第二种修改方式重启后,会继续按照配置文件中的来加载
ls -Z :显示文件的安全属性及名称display security context so it fits on most displays

这里写图片描述

   为了对比效果更明显,在/mnt下建立一个文件westosfile和一个目录westos,然后,直接移到/var/ftp/pub   再次查看安全上下文如下图:

这里写图片描述

yum install lftp -y          ##通过lftp的默认发布目录来查看可以很清楚的看到westos目录是没有影响的,但是,westosfile文件是不能够显示的

这里写图片描述

如果要修改的话,修改安全上下文的规则如下:

1)临时修改(chcon:change context)

chcon -t :set type in the target security contextchcon -t public_content_t westosfile   ##不能修改系统文件(rw 读写)

这里写图片描述

2)永久修改

semanage fcontext可用于显示或修改:
使用扩展正则表达式来指定路径和文件名。
fcontext规则中最常用的扩展正则表达式是(/.*)?,表示随意地匹配/后跟任何数量的字符,递归地与表达式前面列出的目录以及该目录中的所有内容相匹配
eg.semanage fcontext -l | grep /westos

semanage fcontext -a -t public_content_t '/var/ftp/pub/westos(/.*)?'restorecon -RvvF /var/ftp/pub/westos   ##必须执行刷新

这里写图片描述
这里写图片描述

restorecon:用来恢复文件的安全上下文选项:-i:忽略不存在的文件-f:infilename文件 infilename中记录要处理的文件-e:directory排除目录-R/r:递归处理目录-n:不改变文件标签-o/outfilename:保存文件列表时到outfilename,在文件不正确的情况下-v:将过程显示到屏幕上-F:强制恢复文件安全语境
getsebool:权限是否开放的清单getsebool -a    ##列出目前系统上面所有布尔值条款设置为开启或关闭值的信息setsebool -P xxx on|off    ##直接将设置值写入配置文件,该设置数据将来会生效

这里写图片描述
以ftp_home_dir 为例,查看的结果是off,表示关闭了ftp本地用户的权限
这里写图片描述

如果在排错时出现了问题,解决问题最好的办法就是查看日志:1)vim /var/log/messages         ##查看详细信息,采集日志,并且可以分析(有软件要安装,此软件名为:setroubleshoot)2)vim /var/log/audit/audit.log  ##只提供错误

管理SELinux端口标签

SELinux中对于特定服务有内定的一些端口,如果我们自己随便修改配置文件可能会导致服务起不来,对此,我们要将端口添加进去~查看:semanage port -l | grep xxx添加:semanage port -a -t xxx -p tcp xxx当然,也可以直接关闭SELinux的功能(Disabled | permissive)

我们的实验以http为例:

vim /etc/httpd/conf/httpd.conf    ##将Listen改为:666

这里写图片描述

systemctl restart httpd            ##重启是失败的,因为端口不在SELinux允许的范围内

这里写图片描述

semanage port -a -t http_port_t -p tcp 666     ##添加

这里写图片描述
再次重启即可成功~

原创粉丝点击