1. 了解selinux
(1)什么是selinux
Selinux,内核级加强型防火墙。SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统。对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的,这是一种基于内核的安全系统。
(2)selinux的三个模式
Enforcing 强制(强制模式)— SELinux 策略强制执行,基于 SELinux 策略规则授予或拒绝主体对目标的访问
Permissive 宽容(警告模式)— SELinux 策略不强制执行,不实际拒绝访问,但会有拒绝信息写入日志
Disabled 禁用(关闭模式)— 完全禁用SELinux
2. selinux的开启及模式调整
编辑selinux的配置文件:
vim /etc/sysconfig/selinux
注意:设置后必须要重启才能生效。
调整模式
##警告模式
setenforce 0
##强制模式
setenforce 1
##状态查看
getenforce
注意:不能通过模式调整将从开启状态(警告模式或者强制模式)调整到关闭状态,要调整必须通过配置文件来修改。
3.修改文件安全上下文
(1)查看文件和目录的安全上下文
注意:以下实验是在selinux开启的情况下(enforcing)操作的。
#查看安全上下文
ls -Z # 文件
ls -Zd # 目录
注意:selinux要开启。
(2)修改安全上下文
#临时修改文件的安全上下文
chcon -t 安全上下文 文件
#列出内核安全上下文列表内容
semanage fcontext -l
#将目录本身及里面文件的加载到安全上下文里面
semanage fcontext -a -t public_content_t '/westos(/.*)?'
注意:真实的目录的安全上下文并没有变。(ls -Zd /westos)
要想改变目录及里面文件的安全上下文:
(1)reboot
(2)restorecon -FvvR /westos
4. selinux的bool值的设定
##查看文件的bool值
getsebool -a | grep 服务名称
##开启或者关闭
setsebool -P 功能bool值 on|off
(1)系统用户上传文件
上传的功能是关闭的,所以不能上传。
开启功能:
(2)匿名用户上传文件
###登录lftp
lftp 172.25.254.120
#上传文件
put /etc/group (会报错)
#查看bool值
getsebool -a | grep ftp
ftpd_anon_write=off (功能是关闭的)
##开启功能
stsebool -P ftpd_anon_write on
注意:但是还是不能上传,原因是目录没有可写的权限
##设置安全上下文,使目录的可写权限
semanage fcontext -a -t public_content_rw_t "/var/ftp/pub(/.*)?"
##刷新
restorecon -FvvR /var/ftp/pub
5.selinux 系统排错
#查看selinux的报错日志
/var/log/audit/audit.log
#提供selinux的解决方法的日志
/var/log/messages
提供系统selinux排错的软件为:setroubleshoot-server,如果删除该软件,在messages中将不会提供解决方法。
在/var/log/messages 中寻求解决方法:
执行找到的帮助: