一、内核级防火墙 selinux
1.三种级别
1 (Enforcing)强制:警告,并拒绝访问
0 (Permissive)警告:不被拒绝,但会产生警告日志
(Disabled)关闭:不被拒绝,可正常访问
2.安全标签:安全上下文
当selinux插件处于关闭状态,vsftp服务无安全标签
当selinux插件处于强制/警告状态,重启时给所有服务添加安全标签(例 ps auxZ | grep vsftpd)
二、selinux 级别管理
1.selinux配置文件 /etc/sysconfig/selinux
2.selinux级别信息
查看selinux级别 getenforce
设置selinux级别 setenforce 0 | 1
注意:强制和警告级别可相互切换,但若关闭selinux插件,修改配置文件后必须reboot;
若打开selinux插件,同样必须reboot;
3.selinux 不同级别的文件管理
disable ##客户端可看到移动到pub目录的文件
服务端建立文件,并移动到默认发布目录下:
客户端登陆,可正常显示
Enforcing ##客户端不能看到移动到pub目录的文件
服务端建立文件,并移动到默认发布目录下:
客户端登陆,只能显示之前的文件,不能显示新建的hahaha文件
Permissive ##客户端可看到移动到pub目录的文件,但会产生警告日志
服务端建立文件,并移动到默认发布目录下:
客户端登陆,可看到所有文件,但浏览hi文件时会产生警告日志
服务端警告日志:
三、文件的安全上下文设置
1.实验环境(修改ftp的默认发布目录)
配置文件 /etc/vsftpd/vsftpd.conf
注意:需要新建相关目录和文件
2.查看文件安全上下文 ls -Z 文件绝对路径
查看目录安全上下文 ls -Zd 目录绝对路径
3.临时修改上下文,重启后失效 ##命令行chcon
chcon -t 安全上下文类型 目录绝对路径 -R(递归)
修改前,安全上下文类型为default_t,用户登陆后无法查看:
修改后,安全上下文类型为public_content_t,登陆后:
4.永久修改上下文 ##安全上下文列表
查看安全上下文列表 semanage fcontext
![](https://i-blog.csdnimg.cn/blog_migrate/af8420b3d49c1047d77ce93f977e1b6b.png)
将指定目录加入安全上下文列表
重新加载安全上下文列表 restorecon - RvvF
5.此时匿名用户登陆时,可正常访问
四、selinux 的bool值
1.查看selinux中服务的bool值 getsebool -a
2.当ftp_home_dir 功能关闭时,本地用户登陆不能后操作
3.修改sebool值,打开服务
setsebool -P ftp_home_dir 1
-P ##永久修改 0 ##关闭服务 1 ##开启服务
4.打开ftp_home_dir功能时,本地用户登陆后具备相应权限
5.当客户端登陆报错时,/var/log/messages日志中
客户端登陆:
日志信息:
注意:日志给出的解决方案,安全性不好!!
##该功能由setroubleshoot软件提供,若没有该软件,则系统不会给出解决方案
而selinux服务本身产生的日志存放在/var/log/audit/audit.log中:
![](https://i-blog.csdnimg.cn/blog_migrate/8fdb30a48cf941496eda200c9f58aed9.png)