调试SELinux

       SELinux(Security-Enhanced Linux):美国NSA国家安全局提供的一套基于内核的增强的强制保护机制,主要针对用户、进程、文档做了一些安全标签及相关限制。其主要作用就是最大程度的减少系统中服务进程可访问的资源。

下面我们先进行前导知识的学习:

        1)SELinux的运行模式:enforcing(强制)、permissive(宽松)、disabled(禁用)

        2)查看SELinux模式:getenforce

              切换SELinux模式:setenforce  1|0  //只能在强制、宽松之间进行切换

        3)开机自动选择SELinux模式:

                #vim /etc/selinux/config

                SELINUX=enforcing

                #reboot

相信大家对SELinux都有一定的了解了,下面将通过一道例题来加深对SELinux的理解:

        调试SELinux_第1张图片

        a.输入命令:systemctl restart httpd,可以看到httpd服务无法启动,报错。进入/etc/httpd/conf/httpd.conf中查看其监听的端口试82。

其实就是SELinux在捣鬼!

        

        b.接下来我们需要进行SELinux排错:

        具体的命令如下:

                #yum  -y install setroubleshoot-server  //装了这个服务后,当SELinux出现错误的时候会记录在日志里。

                #grep setrouble /var/log/messages //会提示如何查看详细信息

                #sealert -l ······ //查看详细警告(根据提示排错)

                或者

                journalctl -xe //查错:利用系统日志控制工具 

         调试SELinux_第2张图片

         如上图所示,装好setroubleshoot-server这个包以后,之后再次启动httpd服务时,会将报错信息写入日志里。这时候我们再次启动httpd服务,并在日志里搜索包含setrouble关键字的信息。

       调试SELinux_第3张图片

       c.复制上图倒数第二行的命令并执行。将命令“semanage port -a -t PORT_TYPE -p tcp 82”中的改成http_port_t执行。这时候就可以顺利启动httpd服务了。

        调试SELinux_第4张图片

         d.或者也可以输入在b中执行httpd服务时报错信息里面“journalctl -xe”这一命令行执行。

        e.现在执行systemctl restart httpd就可以成功执行了,这个时候我们在/var/www/html创建三个文件file1、file2、file3。

         f.现在打开firefox浏览器,输入http://red.net0.example.com:82,来拿刚进去看到的是测试页面,这个时候我们要删除/etc/httpd/conf.d/目录中welcome.conf这个欢迎页,然后再次重启httpd服务。并在浏览器中刷新页面,就可以看到上一步创建的三个文件的界面了。

        ​​​​​​​调试SELinux_第5张图片

有关于SELinux的内容到这里就结束啦,各位小伙伴记得一定啊哟动手实验哦!!

你可能感兴趣的:(linux,运维,服务器)