Selinux的配置与管理
Selinux的设置
1.概念:
selinux :内核级加强型火墙(Security-Enhanced Linux)是美国国家安全局(NAS)对于强制访问控 制的实现,
在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。最大限度的保证了linux系统的安全
2.设定模式
1)开启状态
enforing #强制模式(警告并且拒绝)
permissive #警告模式(警告但不拒绝)
2)关闭状态
disabled ##关闭模式(禁用模式)
3).临时性修改
getenforce #查看selinux的状态
setenforce 0 #设置selinux的状态为警告模式(permissive)
setenforce 1 #设置selinux的状态为强制模式(Enforcing)
注意:此方法只能实现 permissive 状态 和 Enforcing 状态之间的转换
即当selinux的状态为 Disabled 时,用此方法不能更改selinux的状态
2).永久性修改:通过修改配置文件/etc/sysconfig/selinux的参数来更改selinux的状态,更改后需要reboot
2.selinux安全上下文的管理
ls -Z filename #查看文件的安全上下文(若selinux为关闭状态时,则无法查看安全文)
chcon -t public_content_t filename #临时更改文件的安全上下文的类型
semanage fcontext -a -t public_content_t '/westos(/.)?’
#永久更改文件的安全上下文的类型; -a 添加,-t 类型,(/ 本身内容;. 所有隐藏文件;)
.当selinux的状态为Disabled时,lftp连接后可以查看到外来文件
将文件移动到共享目录
此时可看见外来文件:
.当selinux的状态更改为enforcing时,此时lftp连接便无法访问外来文件,并且有警告信息,并且本地用户不能删除,上传,下载,建立目录
实验:
在服务端:
在客户端:无外来文件
先清空日志,再查看日志,发现有警告信息:
/var/log/messages
cat /var/log/messages
本地用户:
.当selinux的状态为Permissive时,可以访问外来文件但有警告
3临时更改安全上下文
chcon -t public_content_t filename
此时即使在selinux打开状态,外来文件也可以看见。
4.永久性更改安全上下文
ls -Zd /linux/
ls -Zd /var/ftp/
semanage fcontext -l | grep /var/ftp
semanage fcontext -l | grep /linux/
管理linux布尔值
getsebool -a |grep ftp #查看目前系统上面ftp服务的所有布尔值条款
setsebool -P ftp_home_dir on #打开ftp的布尔值
当selinux处于强制模式时,本地用户将无法put上传文件。直接将selinux的状态更改为警告模式即可,但用在这种模式下上传文件不安全
- 解决方案:
- [ getsebool -a | grep ftp] #查看ftp服务的布尔值条款
- setsebool -P ftp_home_dir on ##打开ftp家目录的布尔值
getsebool -a | grep ftp
测试:
selinux日志的管理
/var/log/audit/audit.log #记录selinux的日志,只会说明错误,但不会提供解决方法,且阅读复杂
/var/log/messages #记录selinux的日志,会详细的记录错误,并且可提供解决方法
安全文上下不一致:
查看日志:
cat /var/log/messages
cat /var/log/audit/audit.log ###没有解决方案
restorecon -v /var/ftp/* ### 此时便可以查看到westosfile3,因为这时它的安全上文与/var/ftp的安全上文一样
此解决方案来自 setroubleshoot-server-3.2.17-2.el7.x86_64,若卸载此软件
测试:无法再查看到解决方案