一、selinux的基本概念
1、什么是selinux ?
SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNIX权限更好的访问控制。
2、selinux工作模式:
1)、enforcing:如果违反selinux策略则无法继续执行操作。
2)、permissive:如果违反selinux策略则给予警告,但操作任然可以继续。
3)、disable:selinux安全访问策略不生效。
二、selinux上下文访问规则
1、selinux临时修改文件标签
ps -auxZ | grep ftp 查看ftp服务的访问规则
ls -Z /var/ftp 查看该目录的标签
ls -i file 查看文件的id和标签
restorecon -vR /var/ftp/ 刷新此目录下的所有文件标签
chcon -t public_content_t file 临时更改file的标签为public_contemt_file
操作如下:
ps -auxZ | grep ftp 查看ftp服务的访问规则
ls -Z /var/ftp 查看该目录的标签
ls -i file 查看文件的id和标签
restorecon -vR /var/ftp/ 刷新此目录下的所有文件标签
chcon -t public_content_t file 临时更改file的标签为public_contemt_file
2、更改ftp共享目录,并且永久设定其标签
mkdir /ftpdir/pub -p 创建目录
vim /etc/vsftpd/vsftpd.conf
anon_root=/ftpdir
ls -Zd /var/ftp 查看此目录标签
ls -Zd /ftpdir 查看此目录标签
restorecon -vR /var/ftp/ 刷新此目录下的所有文件标签
chcon -t public_content_t /ftpdir -R 临时修改此目录和下边文件的标签
semanage fcontext -l | grep ftp 查看ftp标签信息
semanage fcontext -a -t public_content_t '/ftpdir(/.*)?' 系统永久修改标签
操作如下:
restorecon -vR /var/ftp/ 刷新此目录下的所有文件标签
chcon -t public_content_t /ftpdir -R 临时修改此目录和下边文件的标签
semanage fcontext -l | grep ftp 查看ftp标签信息
3、selinux的bool模型
getsebool -a | grep ftp 查看selinux设置ftp服务的bool列表
setsebool ftpd_anon_write on/1 临时开启匿名用户的上传功能
setsebool -P ftpd_anon_write on/1 永久开启匿名用户的上传功能
getenforce 查看selinux的工作模式状态
setenforce 1 设置selinux工作模式是enforcing
setenforce 0 设置selinux工作模式是Permissive
chcon -t public_content_rw_t /var/ftp/pub
ls -Zd /var/ftp/pub
getsebool -a | grep ftp 查看selinux设置ftp服务的bool列表
setsebool ftpd_anon_write on/1 临时开启匿名用户的上传功能
setsebool -P ftpd_anon_write on/1 永久开启匿名用户的上传功能
4、selinux报错日志和改错日志
yum install setroubleshoot-server.x86_64 -y 下载selinux错误处理服务
/var/log/messages 改错日志
/var/log/audit/audit.log 记录日志
/var/log/messages 告诉我们问题发生的原因
/var/log/audit/audit.log 正常记录操作行为