标签: mod-authz-host

Apache httpd:我如何拒绝所有人,允许来自子网,但拒绝来自该子网内的 IP?

我正在运行 CentOS 5.5 和 Apache httpd-2.2.3。

我在位置 /server-status启用了mod_status。我想通过以下方式允许访问这个单一位置:

  1. 拒绝所有人
  2. 允许来自子网 192.168.16.0/24
  3. 拒绝来自 192.168.16.0/24 子网内的 IP 192.168.16.100。

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)

mod-authz-host apache-2.2

26
推荐指数
1
解决办法
11万
查看次数

Apache,使用 X-Forwarded-For 允许

如何使用 X-Forwarded-For 标头(我的代理 ip 10.1.1.x)来允许 HTTP 查询?

mod-authz-host apache-2.2

13
推荐指数
1
解决办法
3万
查看次数

您可以在 Subversion 的基于路径的授权中使用通配符吗?

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 的基于路径的授权文件时定义通用文件模式,而不是为您需要限制的每个显式文件或目录定义规则吗?

还有一件事

我熟悉外部组件,但我们无法让它们与我们的持续集成系统一起工作,并且目前不想“浪费时间”更新或替换它的权力。

svn subversion-edge mod-authz-host

4
推荐指数
1
解决办法
4382
查看次数

apache2.4 虚拟主机阻止访问 authz_core 日志,即使未配置 authz

所以我在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)

而这并没有任何明显的区别。

有任何想法吗?

mod-wsgi mod-authz-host apache-2.4

3
推荐指数
1
解决办法
3万
查看次数

Apache 2.4:仅允许访问 ip 地址范围的目录

我希望/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 地址范围在目录中访问的正确方法是什么?

旁注:我只使用了私人范围作为例子。

非常感谢并为我的英语感到抱歉。

mod-auth mod-authz-host apache-2.2 apache-2.4

2
推荐指数
1
解决办法
1万
查看次数