centos 7 上配置SELinux允许nginx指定/home/www作为网站根目录

原创 2014年11月19日 23:19:34

现象:

1 启动nginx成功,使用wget 127.0.0.1得到内容,但是提示是禁止访问(403);

2 查看/var/log/nginx/error.log,提示访问/home/www/l.com/i.html禁止;

3 查看SELinux 是否运行: sestatus -v,enable就是运行了

4查看/var/log/Audit/Audit.log日志,发现有提示到nginx被拒绝了;但是看不明白怎么处理...

它是类似这样的内容

type=AVC msg=audit(1416406823.013:3137): avc:  denied  { search } for  pid=15488 comm="nginx" name="www" dev="dm-3" ino=146 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_dir_t:s0 tclass=dir
5 安装人类能看得懂的转化工具:yum install setroubleshoot

6 echo >audit.log来清空这个日志,再刷新浏览器,访问一下这个url,让只生成一个出错日志

7 把出错内容转成可以看得懂的:sealert -a ./audit.log >qq.txt

8查看内容:cat qq.txt:

[root@l audit]# cat qq.txt
string index out of range
'list' object has no attribute 'split'

found 1 alerts in ./audit.log
--------------------------------------------------------------------------------

SELinux is preventing /usr/sbin/nginx from search access on the directory .

*****  Plugin catchall_boolean (47.5 confidence) suggests   ******************

If 您要 allow httpd to read user content
Then 您必须启用 'httpd_read_user_content' 布尔值告知 SELinux 此情况。

Do
setsebool -P httpd_read_user_content 1

*****  Plugin catchall_boolean (47.5 confidence) suggests   ******************

If 您要 allow httpd to enable homedirs
Then 您必须启用 'httpd_enable_homedirs' 布尔值告知 SELinux 此情况。

Do
setsebool -P httpd_enable_homedirs 1

*****  Plugin catchall (6.38 confidence) suggests   **************************

If 您确定应默认允许 nginx search 访问  directory。
Then 您应该将这个情况作为 bug 报告。
您可以生成本地策略模块允许这个访问。
Do
请执行以下命令此时允许这个访问:
# grep nginx /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp


Additional Information:
Source Context                system_u:system_r:httpd_t:s0
Target Context                unconfined_u:object_r:user_home_dir_t:s0
Target Objects                 [ dir ]
Source                        nginx
Source Path                   /usr/sbin/nginx
Port                          <Unknown>
Host                          <Unknown>
Source RPM Packages           nginx-1.6.2-4.el7.x86_64
Target RPM Packages
Policy RPM                    selinux-policy-3.12.1-153.el7_0.11.noarch
Selinux Enabled               True
Policy Type                   targeted
Enforcing Mode                Enforcing
Host Name                     l.com
Platform                      Linux l.com 3.10.0-123.9.3.el7.x86_64 #1 SMP Thu
                              Nov 6 15:06:03 UTC 2014 x86_64 x86_64
Alert Count                   13
First Seen                    2014-11-19 22:32:40 CST
Last Seen                     2014-11-19 22:24:28 CST
Local ID                      bb55eec2-48bf-44eb-9722-7ca6f1045a59

Raw Audit Messages
type=AVC msg=audit(1416407068.287:3141): avc:  denied  { search } for  pid=15488 comm="nginx" name="www" dev="dm-3" ino=146 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_dir_t:s0 tclass=dir


type=SYSCALL msg=audit(1416407068.287:3141): arch=x86_64 syscall=open success=no exit=EACCES a0=7f0661e65bc0 a1=800 a2=0 a3=0 items=0 ppid=15487 pid=15488 auid=4294967295 uid=997 gid=996 euid=997 suid=997 fsuid=997 egid=996 sgid=996 fsgid=996 tty=(none) ses=4294967295 comm=nginx exe=/usr/sbin/nginx subj=system_u:system_r:httpd_t:s0 key=(null)

Hash: nginx,httpd_t,user_home_dir_t,dir,search

[root@l audit]#

9 按提示一步一步处理成功了就可以了.

版权声明:本文为博主原创文章,未经博主允许不得转载。

yum安装的nginx以及解决selinux导致无法访问的问题

配置捷利免费进销存测试服务器时在nginx 安装配置遇到502错误,通过查询错误日志定位错误原因解决问题...
  • babys
  • babys
  • 2017年01月06日 11:07
  • 1467

解决CentOs下SeLinux拦截nginx读取文件的问题

先看问题: 在Oracle VM VirtualBox上安装centos 共享Windows上的文件夹做nginx的站点根目录 发现nginx报403错误,读取不到文件 在Ubuntu上直接...
  • wv_feng
  • wv_feng
  • 2017年09月09日 19:31
  • 276

nginx权限403 500问题 及Selinux

现象安装完php-fpm、nginx之后,网站访问 静态资源 403,访问PHP 500。php-fpm 报错 mkdir() 无权限。解决mkdir() 无权限先检查selinux,一般的VPS都是...
  • default7
  • default7
  • 2017年04月25日 11:43
  • 638

nginx访问selinux权限问题

今天在服务器上面安装phpcms,安装过程中提示不可写,于是设置了权限,但是依然是不可写的状态,想了下可能是selinux的问题 设置了下sudo chcon -R -t httpd_sys_con...
  • scchary
  • scchary
  • 2015年06月18日 09:57
  • 388

CentOS: 将NGINX加到SELinux的允许名单

用NGINX经常出现502 Bad gateway错误。一般来说是由于SELinux阻挡造成的。运行下面语句,把NGINX加入SELinux的允许名单,就会少些麻烦。 yum install pol...
  • dogfish
  • dogfish
  • 2016年09月21日 01:32
  • 1046

nginx的403 Forbidden解决的办法(权限文件和文件不存在、SElinux 开启)

nginx配置好了,出现403 Forbidden主要有两种原因:1、nginx没有访问目录的权限;2、nginx的目录里面没有默认文档,并且没有列出目录的权限。 启动了nginx,访问网站...
  • dahuzix
  • dahuzix
  • 2017年06月12日 14:49
  • 1035

Nginx因Selinux服务导致无法远程访问

本文暂且叫这个名吧,因为不是很理解 Selinux ,也许你有更好的办法请告知我! 一、问题现象 Nginx 启动后本机可以正常访问,使用Curl 命令可以获取默认 index.html,其他界面...
  • lsm135
  • lsm135
  • 2016年07月08日 18:56
  • 463

selinux

Contents 引言 部份问题所在解决方案 SELinux 模式SELinux 政策SELinux 访问控制排除 SELinux 疑难 重新标签文件撤消缺省的安全性脉络重新标签整...
  • flcandclf
  • flcandclf
  • 2013年11月12日 16:33
  • 6857

Nginx 因 Selinux 服务导致无法远程访问

本文暂且叫这个名吧,因为不是很理解 Selinux ,也许你有更好的办法请告知我! 一、问题现象 Nginx 启动后本机可以正常访问,使用Curl 命令可以获取默认 index.html,其他界面均不...
  • johnnycode
  • johnnycode
  • 2014年12月15日 20:36
  • 5229

linux httpd 启动错误问题解决

本文引用地址: http://free.yes81.net/yes81/view-11396.html 搭建了无数lamp环境今天碰到了新问题,apache说文件不存在,可是文件明明存在,又可以...
  • shanliangliuxing
  • shanliangliuxing
  • 2013年03月25日 14:04
  • 6546
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:centos 7 上配置SELinux允许nginx指定/home/www作为网站根目录
举报原因:
原因补充:

(最多只允许输入30个字)