安全上下文

安全上下文
1.selinux的disable和enforcing,以及永久设定
    mkdir /westos
    touch /westos/file

    vim /etc/vsftpd/vsftpd.conf
        anon_root=/westos
    
    lftp 172.25.254.119
    ls之后无法查看到/westos

    ls -Zd /westos        //查看/westos的安全上下文类型

    编辑文件:vim /etc/selinux/config

    将selinux中的enforcing变为disabled,重启,就可以查看到/westos下的文件

    chcon -t public_content_t /westos -R        //添加安全上下文类型
    可以查看到/westos下的file
    semanage fcontext -a -t public_content_t '/westos(/.*)?'    //semanage用来查询与修
    改selinux默认目录的安全上下文。-a表示可以增加一些默认安全上下文类型,-t表示指定类型
    semanage fcontext -l | grep westos        //表示查询
    restorecon -RvvF /westos        //R表示第归,两个v表示显示,F表示刷新

注意:(1)selinux会影响不同安全上下文的文件查看,也会影响 本地用户 某些功能的使用(上传),以及开启某些功能的方法
    getsebool -a | grep ftp            //查看ftp的功能开关状态
    setsebool -P ftp_home_dir on        //表示开启ftp功能,off表示关闭,-P表示永久有效

(2)selinux有两个级别,强制和警告,会在日志中显示错误原因和改错方法
    getenforce        //查看selinux状态
    setenforce 0         //修改级别为警告(permissive)
    setenforce 1        //修改级别为强制(enforcing)

(3)selinux本身日志存放在/var/audit/audit.log中,由这个软件(settroubleshoot)将其整理放进/var/log/messages


selinux管理工具semanage

Selinux极大的增强了Linux系统的安全性,能将用户权限关在笼子里,如httpd服务,apache默认只能访问/var/www目录,并只能监听80和443端口,因此能有效的防范0-day类的攻击。举例来说,系统上的 Apache 被发现存在一个漏洞,使得某远程用户可以访问系统上的敏感文件(比如 /etc/passwd 来获得系统已存在用户),而修复该安全漏洞的 Apache 更新补丁尚未释出。此时 SELinux 可以起到弥补该漏洞的缓和方案。因为 /etc/passwd 不具有 Apache 的访问标签,所以 Apache 对于 /etc/passwd 的访问会被 SELinux 阻止。

CentOS系统自带的chcon工具只能修改文件、目录等的文件类型和策略,无法对端口、消息接口和网络接口等进行管理,semanage能有效胜任SELinux的相关配置工作

3.restorecon命令

restorecon命令用来恢复SELinux文件属性即恢复文件的安全上下文。

假设CentOS安装了apache,网页默认的主目录是/var/www/html,我们经常遇到这样的问题,在其他目录中创建了一个网页文件,然后用mv移动到网页默认目录/var/www/html中,但是在浏览器中却打不开这个文件,这很可能是因为这个文件的SELinux配置信息是继承原来那个目录的,与/var/www/html目录不同,使用mv移动的时候,这个SELinux配置信息也一起移动过来了,从而导致无法打开页面,具体请看下面的实例:

来自: http://man.linuxde.net/restorecon
假设CentOS安装了apache,网页默认的主目录是/var/www/html,我们经常遇到这样的问题,在其他目录中创建了一个网页文件,然后用mv移动到网页默认目录/var/www/html中,但是在浏览器中却打不开这个文件,这很可能是因为这个文件的SELinux配置信息是继承原来那个目录的,与/var/www/html目录不同,使用mv移动的时候,这个SELinux配置信息也一起移动过来了,从而导致无法打开页面,具体请看下面的实例:

来自: http://man.linuxde.net/restorecon
假设CentOS安装了apache,网页默认的主目录是/var/www/html,我们经常遇到这样的问题,在其他目录中创建了一个网页文件,然后用mv移动到网页默认目录/var/www/html中,但是在浏览器中却打不开这个文件,这很可能是因为这个文件的SELinux配置信息是继承原来那个目录的,与/var/www/html目录不同,使用mv移动的时候,这个SELinux配置信息也一起移动过来了,从而导致无法打开页面,具体请看下面的实例:

来自: http://man.linuxde.net/restorecon
假设CentOS安装了apache,网页默认的主目录是

来自: http://man.linuxde.net/restorecon
假设desktop安装了apache,网页默认的主目录是/var/www/html,我们经常遇到这样的问题,在其他目录中创建了一个网页文件,然后用mv移动到网页默认目录/var/www/html中,但是在浏览器中却打不开这个文件,这很可能是因为这个文件的SELinux配置信息是继承原来那个目录的,与/var/www/html目录不同,使用mv移动的时候,这个SELinux配置信息也一起移动过来了,从而导致无法打开页面,具体请看下面的实例:


/*使用desktop举例,如果默认没有安装apache,确保网络连接,使用下面的命令安装*/
[root@apache ~]# yum install httpd
 
/*我们在root的家目录新建一个html文件*/
[root@apache~]# pwd
/root
[root@apache ~]# vim index.html
/*随便输入一段文字,保存退出*/
  welcome to westos
/*将这个文件mv到网页默认目录下*/

[root@apache~]# mv index.html /var/www/html/
注意:
* 这个时候我们使用firefox浏览器输入127.0.0.1/index.html发现打不开,
* 查看一下SELinux的日志文件,发现了下面这一段报错信息,从这个报错信息不难看出,
* 进程httpd访问网页主目录中的index.html时被SELinux阻止,原因是因为,SELinux配置信息不正确,
* 正确的SELinux配置信息应该是scontext=后面的部分,
* 而index.html文件的SELinux配置信息却是tcontext=后面的部分,
* 从tcontext=的第三段“admin_home_t”不难看出,这个文件的SELinux配置信息是root用户家目录的。
*/
type=AVC msg=audit(1378974214.610:465): avc: denied { open } for pid=2359 comm="httpd" path="/var/www/html/index.html" dev="sda1" ino=1317685 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file
 
/*使用ls -Z也可以看出,文件和目录的SELinux信息不匹配*/
[root@111cn.net html]# ls -Z /var/www/html/
.... unconfined_u:object_r:admin_home_t:s0 index.html
 
[root@111cn.net html]# ls -Zd /var/www/html/
.... system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
 
/*使用restorecon来恢复网页主目录中所有文件的SELinux配置信息(如果目标为一个目录,可以添加-R参数递归)*/
[root@111cn.net html]# restorecon -R /var/www/html/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值