centos selinux_Selinux详解1上下文的理解

selinux介绍

在windows下如果安装了一些安全软件的话,当我们执行某个命令之后,如果此安全软件认为这个命令对系统是一种危害,则会阻止这个命令继续运行。比如在powershell里创建一个用户 net user tom /add,安全软件会认为这个操作是不安全的,然后会阻止:332f2d98678957626d6ff00fbfb676f1.png
同理,在rhel/centos里的selinux实现的是类似的功能,selinux全称是Security-Enhanced Linux,目的是提高系统的安全性。当我们执行某个操作的时候如果selinux认为此操作有危险,则会拒绝进一步的访问。

了解上下文

在开启了selinux的情况下,selinux会为每个文件、每个进程都分配一个标签,这个标签我们称之为上下文(context),后续说标签和上下文是同一个概念,查看上下文时需要加上Z选项。比如查看进程的上下文:389088ac9c70e884258d4a0f0f9408d9.png
这里可以看到httpd的上下文为httpd_t。
查看文件的上下文:9f4b4105847ccf4b33da42fe53ce58bd.png
这里可以到/var/www/html/的上下文为httpd_sys_content_t。
特定上下文的进程,只能访问特点上下文的文件,如下图:2861ab30bc4053cdc8be070f5f6dbc30.png
假设一个进程xx的标签是aa-p,它能访问标签为aa-f的文件,所以xx进程访问文件aa是没问题的,因为标签匹配了。但是进程xx访问文件bb的时候却是访问不了的,即使bb文件的权限为777也是访问不了的,因为文件bb的标签是bb-f。

下面我们来做一个测试:
在server上创建目录/web/www,并写一些测试数据到/web/www/index.html里:1fbf3ed78b4487b0a63aff5ea574b75f.png
查看/web/www的上下文:3df4b5e4bac9a88b5c27ddcec71dafb8.png
可以看到上下文为default_t。

把/web/www软连接到/var/www/html/www,如下:7f8940ed2ea32284e6bb52fd40e4c447.png
当我们在地址栏里输入192.168.26.100/www时,其实访问的是/web/www里的内容。
确保httpd服务是运行的:e4f7a64f06600440749aafb349a8b45c.png
并确保防火墙放行了http服务:f69fdd9bf228aee2801edb9fbf4ec717.png
现在客户端上访问此内容:c1061a1e922e1d7f6ca6412608c56ea3.png
发现是访问是被拒绝的,我们来分析一下原因:
当客户端在浏览器地址栏输入192.168.26.100/www连接到服务器的时候,服务器会有一个httpd进程来“接待”这个客户端的连接请求,然后httpd根据用户的请求去访问目录/web/www,如下图:06da7fbe823d09dc771415e294e8f979.png
前面已经看到httpd进程的上下文是httpd_t,/web/www的上下文是default_t,这两个是不匹配的,所以进程httpd访问目录/web/www时被拒绝。但是httpd进程是可以正常访问/var/www/html的(上下文为httpd_sys_content_t),考虑如果把/web/www的上下文改成httpd_sys_content_t是不是就可以使得进程httpd能访问了呢?
改变上下文的命令:   chcon -R -t 上下文 目录,这里选项R的意思是递归。
把/web/www上下文改成httpd_sys_content_t:f6fa120f798505fa64319f36eb1cdf16.png
在浏览器里再次方式试试:b1db62f47e2303ec9197ca2e605b9b3c.png
是可以正常访问的了。如果要恢复目录的默认上下文可以用92aa58af75c2872c6fda4f6fc53a10d8.png
此时浏览器里又是被拒绝。
如果想修改默认上下文:6775e412b5620adf732ee84c7b60b7d2.png
请思考一下最后的"/web/www(/.)?" ,这里正则是什么意思呢。1ab06749f6bb5de89a8ed25dc4610c16.png可以看到此时已经修改了默认的上下文。如果要是想删除默认上下文的话,把上面命令的-a换成-d即可:
semanage fcontext -d -t httpd_sys_content_t "/web/www(/.)?"

课程培训咨询,微信扫码:

4a9bbcdf7be887c933cfff1699b6b012.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值