linux中的内核级防火墙(SElinux)

SElinux是基于内核开发出来的一种安全机制,被称之为内核级加强型防火墙,有力的提升了系统的安全性。

SElinux的作用分为两方面:1.在服务上面加上标签; 2.在功能上面限制功能

在linux系统中使用getenforce命令可以查看selinux的状态:

Disabled为关闭状态,对服务和功能都没有限制

Enforcing为强制状态,对服务和功能都进行限制

Permissive为警告状态,服务和功能可以使用,但会收到警告信息,可视为对安全的提示

在selinux开启状态时,可使用setenforce 0|1 来调整selinux的状态,0为警告状态,1为强制状态,如下图所示:


selinux的状态在配置文件/etc/sysconfig/selinux中也可以设置:


由于selinux是基于内核开发的,所以改变状态以后,需要重启内核,也就是关机以后才能够生效

在selinux开启的状态下,可以看到文件的安全上下文的标签:

输入ls -Z 可以看到目录下的文件和目录的安全上下文标签:


输入 ls -dZ 可以看到目录的上下文标签:

这个时候,匿名用户登陆本机的ftp,是可以看到目录中的文件的:

如果修改了目录的安全上下文,匿名用户在访问的时候便不能看到其中的内容:

将目录/pub的安全上下文修改:

匿名用户访问时的状态:

所有说只有通过selinux认证的标签才能够让匿名用户访问

上面用chcon命令修改的标签,在系统重启之后,又会变会原来可见的标签,这说明这个命令对标签的修改只是暂时的

想要永久修改文件或者目录的标签就要用到 semanage命令:

semanage fcontext -a -t public_content_t '/var/ftp/pub(/.*)?' 

restorecon -FvvR /var/ftp/pub/   将标签修改进行刷新,即同步

可以将/pub目录和目录中的文件都修改为public_content_t标签,也就是匿名用户访问ftp时可见的标签:

再用匿名用户访问时,便可看见/pub目录中的内容:


selinux对功能的限制:

输入命令 getsebool -a | grep ftp  可以看到selinux对服务的限制状态:

命令setsebool -P 可以开启和关闭指定功能:

比如开启匿名用户上传功能:ftpd_anon_write

然后配置文件中也设置了可以让匿名用户又上传权限:

然后匿名用户上传却被拒绝了:

这个时候不要忘记修改目录的安全上下文,除了可见之外,还要加上rw权限:

然后再用匿名用户上传,上传成功:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章