服务器配置拒绝客户端

服务器配置拒绝客户端

我已经设置了一个 Apache 服务器,用于托管 gitolite。我已遵循本指南,但是当访问服务器时我得到 403,并且 apache 错误日志包含以下行:

[错误] [客户端 192.168.0.97] 服务器配置拒绝客户端:/var/www/bin/gitolite-suexec-wrapper.sh

据我所知,这意味着 apache 用户无法打开包装器脚本?大多数详细说明“服务器配置拒绝客户端”消息的页面都提到了需要 的目录Allow from all,但由于该/var/www/bin/目录甚至不应该被浏览,我想这应该不是问题吧?

vhost 配置的 suexec 部分如下所示:

    SuexecUserGroup git git
    ScriptAlias /git/ /var/www/bin/gitolite-suexec-wrapper.sh/
    ScriptAlias /gitmob/ /var/www/bin/gitolite-suexec-wrapper.sh/

我在 gentoo 3.10.7 服务器上运行 gitolite 3.5.2 和 apache 2.2.25。Apache 在用户 下运行apache,gitolite 在 下运行git。这些是 suexec 目录的访问权限:

# ls -la /var/www/bin/ /var/www/git/
/var/www/bin/:
total 12
drwxr-xr-x 2 git    git  4096 Dec  9 21:26 .
drwxr-xr-x 5 apache root 4096 Dec  9 21:25 ..
-rwx------ 1 git    git   249 Dec  9 21:27 gitolite-suexec-wrapper.sh

/var/www/git/:
total 8
drwxr-xr-x 2 apache apache 4096 Dec  9 21:25 .
drwxr-xr-x 5 apache root   4096 Dec  9 21:25 ..

我还应该检查什么?

答案1

我“修复”了它,尽管我觉得这像是一次黑客攻击。我添加了这个

    <Directory /var/www/bin>
            Order allow,deny
            Allow from all
    </Directory>

... 到 vhost 配置。我猜想这其实没有必要,因为打开此目录并不是一个实际的客户端请求?

我还必须重新映射我的 git 用户和组,因为 suexec 被编译为强制 uid/gid > 1000,但是 gentoo 安装程序使它们成为系统帐户,从而产生了一个低 id。

相关内容