我正在运行 CentOS 5.5 和 Apache httpd-2.2.3。
我在位置 /server-status启用了mod_status。我想通过以下方式允许访问这个单一位置:
1 & 2 很简单。但是,由于我“允许来自 192.168.16.0/24”,是否可以拒绝来自 192.168.16.100?
我试图为 192.168.16.100 添加拒绝语句,但它不起作用。这是相关的配置:
<Location /server-status>
SetHandler server-status
Order Allow,Deny
Deny from all
Deny from 192.168.16.100 # This does not deny access from 192.168.16.100
Allow from 192.168.16.0/24
</Location>
Run Code Online (Sandbox Code Playgroud)
或者:
<Location /server-status>
SetHandler server-status
Order Allow,Deny
Deny from all
Deny from 192.168.16.100 # This does not deny access from 192.168.16.100
Allow from 192.168.16.0/24
</Location>
Run Code Online (Sandbox Code Playgroud)
但是,这不会阻止访问此特定页面,如访问日志中所示:
www.example.org 192.168.16.100 - …Run Code Online (Sandbox Code Playgroud) 如何使用 X-Forwarded-For 标头(我的代理 ip 10.1.1.x)来允许 HTTP 查询?
Subversion 信息:Collabnet Subversion Edge 3.2.2 SVN 版本:1.8.0 Apache HTTP Server 2.4.4 使用 mod_authz_svn,无 ldap
我想要做的是将 Subversion 项目的访问权限分配给团队中的所有开发人员,但具有只有某些开发人员才能访问的某些目录。而不是像这样创建几十个条目:
@superdevs = trusteddev, projman
@devs = @specdevs, user1, user2, user3
[/]
* = rw
[MyProj:/]
~@devs =
[MyProj:/trunk/AllDevs/SuperDevsOnly]
~@superdevs =
[MyProj:/trunk/ManyOtherDirs/SuperDevsOnly]
~@superdevs =
# the list goes on and on...
Run Code Online (Sandbox Code Playgroud)
是否可以配置基于路径的授权文件来定义文件模式,而不是为每个受限路径显式创建一个条目?我希望避免向授权文件添加 200 多个条目,因为我知道更多条目会影响服务器上托管的所有 SVN 操作的性能。这似乎也需要大量工作来保护构建最终解决方案所必需的敏感代码。
TL; 博士; 您可以在设置 Subversion 的基于路径的授权文件时定义通用文件模式,而不是为您需要限制的每个显式文件或目录定义规则吗?
还有一件事
我熟悉外部组件,但我们无法让它们与我们的持续集成系统一起工作,并且目前不想“浪费时间”更新或替换它的权力。
所以我在403: Forbidden我的 apache2.4 虚拟主机之一上遇到错误。
有趣的是,/var/log/apache2/error.log报告:
authz_core:error] [pid 4878:tid 140394394269440] [client 10.214.154.19:33009] AH01630: client denied by server configuration
而且....虽然我确实有其他使用 authz 的 Virtualhosts(主要用于 subversion 托管),但我禁用了所有这些,除了我遇到问题的那个,重新启动了 Apache,并且没有明显的区别。
这是我的 Apache2 站点可用文件,尽管我已禁用所有其他主机配置,并将我的配置降至最低,但仍然拒绝访问。
<VirtualHost *:443>
WSGIScriptAlias /example /data/example/example.wsgi
<Directory /data/example>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
Require all granted
</Directory>
LogLevel info
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.pem
SSLCertificateKeyFile /etc/ssl/private/example.key
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
此外,为了验证这不是我的 wsgi 脚本,我将脚本替换为:
def application(environ, start_response):
start_response('200 OK',[('Content-type','text/html')])
return ['<html><body>Hello World!</body></html>']
Run Code Online (Sandbox Code Playgroud)
而这并没有任何明显的区别。
有任何想法吗?
我希望/htdocs/reserved/仅允许从 192.168.1.193 到 192.168.1.254 (.193 --> .254) 的 IP 地址访问目录。
我已经在以下代码中编写了此代码httpd.conf:
<Directory /htdocs/reserved/>
Order Deny, Allow
Deny from all
Allow from 192.168.1.193/254
</Directory>
Run Code Online (Sandbox Code Playgroud)
停止后,Apache 不会重新启动并引发此异常:
名为 Apache 的服务报如下错误:指定的网络掩码无效。
问题似乎是面具192.168.1.193/254。
我也试过:
<Directory /htdocs/reserved/>
Order Deny, Allow
Deny from all
Allow from 192.168.1.193 192.168.1.254
</Directory>
Run Code Online (Sandbox Code Playgroud)
有用!apache 启动,但我不确定是否允许范围内的所有 IP 地址访问目录,或者只允许 192.168.1.193 和 192.168.1.254。
官方文档缺乏明确的信息(或者我太愚蠢而无法理解)。
问题是:允许 IP 地址范围在目录中访问的正确方法是什么?
旁注:我只使用了私人范围作为例子。
非常感谢并为我的英语感到抱歉。