linux初学者-SElinux篇

 

linux初学者-SElinux篇

        SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统。对于linux安全模块来讲,SElinux的功能是最全面的,测试也是最充分的,这是一种基于内核的安全系统。linux

 一、SElinux的状态安全

        命令"getenforce"能够查看SElinux的状态,SElinux的状态分为如下三种:post

                                  Enforcing    (1)           强制模式测试

                                  Permissive   (0)           警告模式spa

                                  Disabled                     关闭模式.net

         "setenforce"能够设置SElinux的状态,可是只能设置0和1两种,即警告模式或者强制模式。若是须要关闭,则在配置文件"/etc/sysconfig/selinux"下将"SELINUX=enforcing"改成"SELINUX=disabled",由于SElinux是基于内核的安全系统,因此在设置完成以后须要重启内核,即须要重启电脑才能够生效。rest

 二、SElinux对服务的影响日志

        SElinux是最全面的安全系统,因此会对文件和服务有必定的限制,如下服务以ftp为例。server

        SElinux会在文件上作出上下文标识,例以下图所示,在"/mnt"和"/var/ftp/pub"下分别创建文件"file",输入"ls -Z"能够查看文件标识。能够看出,"/mnt/file"为"mnt_t",而"/var/ftp/pub/file"标识为"public_content_t",这样会致使将"/mnt/file"移入"/var/ftp/pub"目录下,链接lftp没法看到这个文件。blog

        SElinux为了系统的安全,会禁止服务一些危险功能的使用,能够输入"getsebool -a | grep ftp"来查看禁止了ftp服务的哪些功能,以下图所示,输入"setsebool -P 功能 on|off"能够控制这些功能的开关。

 三、SElinux的上下文管理

        以前提到SElinux会在目录和文件上留下上下文标识,输入"ls -Z"能够查看。命令"chcon -t 上下文 文件"能够更改文件和目录的上下文标识,就能够解决上述中lftp没法看到其余上下文标识文件的问题。例以下图所示,现有两个不一样上下文标识的文件"txt"和"file"链接lftp后能够看到"file",输入"chcon -t public_content_t /var/ftp/pub/txt"后,从新链接lftp,就能够看到"file"和"txt"两个文件了。

         以下图所示,将匿名用户登录的家目录改成"/westos",并将标识改成"public_content_t",链接lftp能够看到这个家目录。可是将SElinux的状态改成"disabled"重启后再改回"enforcing",重启后从新链接lftp,发现没法看见家目录了。

        上述状况说明使用"chcon"命令改变目录的上下文标识只是临时的。永久改变目录的上下文标识,须要作以下步骤:

        a、使用命令"semanage fcontext -l | grep /westos"查看该目录是否有上下文规则。

        b、输入"semanage fcontext -a -t public_content_t '/westos(/.*)?'"为"/westos"添加上下文规则,并经过a步骤命令查看。

        c、查看到上下文规则后,输入命令"restorecon -RvvF /westos"将规则同步至目录及其子目录。

        上述步骤完成后就能够永久改变"/westos"目录的上下文标识了,从新链接lftp就能够看到目录了。

 四、SElinux的日志

        在SElinux的使用当中,会出现一些错误,例如链接lftp后没法看到里面的文件,或者在进行配置时某一步出现错误。这些错误出现后是能够查出来而且解决的,这就是SElinux日志的使用。

        SElinux的日志会记录在"/var/log/audit/audit.log"和文件"/var/log/messages"中,前者只会说明错误,可是不会提供解决办法,且阅读复杂。"/var/log/messages"文件能够详细的记录错误,而且提供解决方法,SElinux的记录软件是"setroubleshoot-server.x86_64"。下面将以lftp链接后没法看到里面的文件来具体介绍。

        前面已作叙述,若是不改变下图中的"file1"文件的上下文标识,是没法看到这个文件的。

        在没有"setroubleshoot-server.x86_64"这个软件的状况下,清空日志后,发现日志中并不会记录这个错误。

        而后安装这个软件后,从新链接,再查看日志,其中就会出现这个错误的具体日志。而且会提供解决方法,根据解决方法就能够解决这个问题了。

相关文章
相关标签/搜索