SELinux个人学习[1]解决web网站无法访问

收集自互联网  发表于 2014/5/14 9:59:00   游戏/数码, 互联网 , 技巧经验

确认好httpd开启后,确认,文件权限都没有问题,网络也都没有问题后,页面依然无法访问。

就有可能是SELinux造成页面无法访问。

工具/原料

centos 6.5系统

httpd web服务器

SELinux 设置为enforcing:强制模式,代表 SELinux 运作中

方法/步骤

    1

    setroubleshoot

    用于把SELinux 的错误讯息与克服方法记录到 /var/log/messages 与 /var/log/setroubleshoot/* 里头,所以一定要启动该服务。

    所以我们先来安装。

    输入一下命令安装。

    # yum install setroubleshoot setroubleshoot-server

    (点小图可查看大图)
    SELinux个人学习[1]解决web网站无法访问 步骤阅读 2

    安装之后,要重新启动 auditd,否则 setroubleshootd 的功能不会被启动的

    输入以下命令

    # service auditd restart

    (点小图可查看大图)
    SELinux个人学习[1]解决web网站无法访问 步骤阅读 3

    在浏览器输入网页地址。

    显示一下信息,这个时候错误的信息就被记录了。

    Forbidden

    You don't have permission to access /index.html on this server.

    (点小图可查看大图)
    SELinux个人学习[1]解决web网站无法访问 步骤阅读 4

    输入一下命令。来查看错误信息

    # cat /var/log/messages | grep setroubleshoot

    Apr 21 23:34:37 centos setroubleshoot: SELinux is preventing /usr/sbin/httpd from getattr access on the file /var/www/html/index.html. For complete SELinux messages. run sealert -l 47d2c8e2-308b-4931-ae63-88bb4f518155

    最重要的是

    sealert -l 47d2c8e2-308b-4931-ae63-88bb4f518155

    (点小图可查看大图)
    SELinux个人学习[1]解决web网站无法访问 步骤阅读 5

    输入之前找到的信息

    sealert -l 47d2c8e2-308b-4931-ae63-88bb4f518155

    显示以下内容

    SELinux is preventing /usr/sbin/httpd from getattr access on the 文件 /var/www/html/index.html.

    *****  插件 restorecon (99.5 置信度) 建议  ******************************************

    If 您想要修复标签。

    /var/www/html/index.html 默认标签应为 httpd_sys_content_t。

    Then 您可以运行 restorecon。

    Do

    # /sbin/restorecon -v /var/www/html/index.html

    *****  插件 catchall (1.49 置信度) 建议  ********************************************

    If 您确定应默认允许 httpd getattr 访问 index.html file。

    Then 您应该将这个情况作为 bug 报告。

    您可以生成本地策略模块允许这个访问。

    Do

    请执行以下命令此时允许这个访问:

    # grep httpd /var/log/audit/audit.log | audit2allow -M mypol

    # semodule -i mypol.pp

    (点小图可查看大图)
    SELinux个人学习[1]解决web网站无法访问 步骤阅读 6

    从上面的内容,就已经提示你解决的方法。

    If 您想要修复标签。

    /var/www/html/index.html 默认标签应为 httpd_sys_content_t。

    Then 您可以运行 restorecon。

    Do

    # /sbin/restorecon -v /var/www/html/index.html

    所以输入# /sbin/restorecon -v /var/www/html/index.html

    网站可以正常浏览了。

返回顶部