Linux学习16 SELINUX

概念:安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
作用:SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。
工作状态: 命令"getenforce"可以查看SElinux的状态,SElinux的状态分为以下三种:
Enforcing :强制模式
Permissive:警告模式
Disabled :关闭模式
SELinux 工作模式在 /etc/selinux/config 中设定。如果想从 disabled 切换到 enforcing 或者 permissive 的话,需要重启系统。而在enforcing 和 permissive 模式下,可以通过 setenforce 1|0 命令快速切换。Linux学习16 SELINUXLinux学习16 SELINUX
1.SElinux对服务的影响(以ftp为例)
SElinux会在文件上做出上下文标识,例如在"/mnt"和"/var/ftp/pub"下分别建立文件的文件,输入"ls -Z"可以查看文件安全上下文。由于安全上下文不同,将"/mnt/file"移入"/var/ftp/pub"目录下,连接lftp无法看到这个文件。Linux学习16 SELINUX
强制状态时,匿名用户无法上传文件;警告状态时,发出警告,但上传成功。
Linux学习16 SELINUX
本地student用户警告状态时,上传文件成功,强制状态时,上传文件失败。
Linux学习16 SELINUX
查看与ftp服务有关的布尔型规则。
Linux学习16 SELINUX
开启ftp的上传功能。
Linux学习16 SELINUXLinux学习16 SELINUX
安全上下文。
查看安全上下文:SElinux会在目录和文件上留下上下文标识,命令"ls -Z"可以查看。
修改安全上下文:命令"chcon -t 上下文 文件"可以更改文件和目录的上下文标识,就可以解决上述中lftp无法看到其他上下文标识文件的问题。注意,此修改为临时。
Linux学习16 SELINUX
将匿名用户登陆的家目录改为"/var/yan",并将/yan的目录及其子文件安全上下文使用chcon命令改为"public_content_t",连接lftp可以看到这个家目录。但是将SElinux的状态改为"disabled"重启后再改回"enforcing",重启后重新连接lftp,发现/yan的目录及其子文件安全上下文恢复原样。Linux学习16 SELINUXLinux学习16 SELINUXLinux学习16 SELINUXLinux学习16 SELINUX
永久改变目录的上下文标识,需要做如下步骤:
Linux学习16 SELINUXLinux学习16 SELINUX
SELinux 日志。
在SElinux的使用当中,会出现一些错误,例如因为文件的安全上下文不同,连接lftp后无法看到里面的文件,SElinux就会记录日志。
SElinux的日志会记录在"/var/log/audit/audit.log"和文件"/var/log/messages"中,前者只会说明错误,但是不会提供解决办法。"/var/log/messages"文件可以详细的记录错误,并且提供解决方法。
SElinux的记录软件是"setroubleshoot-server.x86_64",可以yum search selinux 查找到该软件。
在没有"setroubleshoot-server.x86_64"这个软件的情况下,清空日志后,发现日志中并不会记录这个错误。
下面以因为文件的安全上下文不同,连接lftp后无法看到里面的文件为例。
Linux学习16 SELINUXLinux学习16 SELINUXLinux学习16 SELINUXLinux学习16 SELINUXLinux学习16 SELINUX