selinux
1.selinux的功能
selinux:内核加强型火墙
selinux的功能:当selinux开启时会给系统的每个文件及每个程序加载安全上下文,特定安全上下文的程序只能访问特定上下文的文件
当selinux开启会对服务本身相对不安全的功能加载开关sebool并且设定开关为关闭状态以保证服务安全性,当需要此功能时需要超级用手动调节
在/mnt 下建立安全上下文为空文件file移动到ftp默认发布目录中可以被访问,ftp安全上下文为空,用户可以上传文件
当selinux功能没有开启时
当selinux功能开启时
# getsebool -a | grep ftp
selinux的状态
状态类型:
disabled 关闭
enforcing 开启
permissive 警告
setenforce 0 警告模式
setenforce 1 强制模式
getenforce 查看selinux 的状态
vim /etc/sysconfig/selinux 编辑文件改变selinux的状态 (修改文件后必须reboot才能改变状态)
setenforce 0 改变selinux的状态为警告模式
查看linux时的警告信息
安全上下文
1.临时更改安全上下文
ls -Z /var/ftp 查看ftp默认路径下文件的安全上下文
在selinux开启时file文件可以访问 linux文件不可以访问
修改linux文件的安全上下文后linux文件可以访问
2.永久更改安全上下文
1> 在selinux开启状态下建立一个目录,在目录中建立文件
2> 设定westos用户登录时候的家目录为 /ftpuserdir
# vim /etc/vsftpd/vsftpd.conf 编辑文件
# systemctl restart vsftpd 重启服务
测试:
当用westos用户登录ftp服务时无法访问家目录中的文件,因为selinux安全上下文不匹配
查看内核安全上下文列表中的信息
# semanage fcontext -l | grep /ftpuserdir 查看安全上下文列表中的信息
# semanage fcontext -a -t public_content_t /ftpuserdir'(/.*)?' 添加列表信息(当前不生效)
# restorecon -RvvF /ftpuserdir 刷新安全上下文
再次查看
用户westos登录ftp访问
4. sebool
SEBOOL
selinux 对服务功能的开关
1.在selinux功能为Enforcing时开启匿名用户传输文件的功能,发现其不能传输文件.
# vim /etc/vsftpd/vsftpd.conf 编辑文件
# systemctl restart vsftpd 重启服务
2.修改/var/ftp/pub 文件内的安全上下文为r w,发现匿名用户还是不能传输文件
# semanage fcontext -a -t public_content_rw_t /var/ftp/pub'(/.*)?' 将安全上下文列表中的信息改为可读可写
# restorecon -RvvF /var/ftp/pub/ 刷新安全上下文列表
3.开启selinux对匿名用户写的功能,发现匿名用户可以正常上传文件
# getsebool -a | grep ftp 查看ftp服务功能开关
# setsebool -P ftpd_-anon_write=1 开启功能 (-P为永久,否则为临时)
5.setrouble
selinux功能为开启状态
安装 setroubleshoot-server.x86_64
# /sbin/restorecon -v /var/ftp/linux5 分析日志并提供解决办法
# /sbin/restorecon -v /var/ftp/linux5