• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • mod_authz_host

    描述:基于 host(name 或 IP 地址)的组授权
    状态:Base
    模块标识符:authzhost_module
    源文件:mod_authz_host.c
    兼容性:forward-dns提供者在 2.4.19 中添加

    摘要

    mod_authz_host实现的授权提供程序使用要求指令注册。该指令可以在<Directory>,<Files>或<Location>部分以及.htaccess files 中引用,以控制对服务器特定部分的访问。可以根据客户端主机名或 IP 地址来控制访问。

    通常,访问限制指令适用于所有访问方法(GETPUTPOST等)。在大多数情况下,这是期望的行为。但是,通过将指令括在<Limit>节中,可以限制某些方法,同时保持其他方法不受限制。

    要求指令

    在授权阶段使用 Apache 的要求指令,以确保允许或拒绝用户访问资源。 mod_authz_host 使用iphostforward-dnslocal扩展授权类型。也可以使用其他授权类型,但可能需要加载其他授权模块。

    这些授权提供程序会影响哪些主机可以访问服务器的某个区域。可以通过主机名,IP 地址或 IP 地址范围来控制访问。

    由于 v2.4.8,在 host require 指令中受支持。

    需要 ip

    ip提供程序允许根据 remote client 的 IP 地址控制对服务器的访问。指定Require ip ip-address时,如果 IP 地址匹配,则允许访问该请求。

    完整的 IP 地址:

    Require ip 10.1.2.3
    Require ip 192.168.1.104 192.168.1.205
    

    允许访问 host 的 IP 地址

    部分 IP 地址:

    Require ip 10.1
    Require ip 10 172.20 192.168.2
    

    用于子网限制的 IP 地址的前 1 到 3 个字节。

    一对 network/netmask 对:

    Require ip 10.1.0.0/255.255.0.0
    

    网络 a.b.c.d 和网络掩码 w.x.y.z。更多 fine-grained 子网限制。

    network/nnn CIDR 规范:

    Require ip 10.1.0.0/16
    

    与前一种情况类似,除了网络掩码由 nnn high-order 1 位组成。

    请注意,上面的最后三个示例 match 完全相同的主机集。

    可以指定 IPv6 地址和 IPv6 子网,如下所示:

    Require ip 2001:db8::a00:20ff:fea7:ccea
    Require ip 2001:db8:1:1::a
    Require ip 2001:db8:2:1::/64
    Require ip 2001:db8:3::/48
    

    注意:由于在启动时解析 IP 地址,因此不会在请求 time 时评估表达式。

    要求 host

    host提供程序允许基于 remote client 的 host name 控制对服务器的访问。指定Require host host-name时,如果 host name 匹配,则允许请求访问。

    A(部分)domain-name

    Require host example.org
    Require host .net example.edu
    

    名为 match 或以此 string 结尾的主机是允许访问的。只匹配完整的组件,因此上面的 example 将 match foo.example.org但它不会 match fooexample.org。无论HostnameLookups指令的设置如何,此 configuration 将使 Apache 对 client IP 地址执行 double 反向 DNS 查找。它将对 IP 地址执行反向 DNS 查找以查找关联的主机名,然后对主机名执行正向查找以确保它与原始 IP 地址匹配。仅当前向和反向 DNS 一致并且主机名匹配时才允许访问。

    要求 forward-dns

    forward-dns提供程序允许基于简单的 host 名称来控制对服务器的访问。指定Require forward-dns host-name时,允许访问与host-name对应的所有 IP 地址。

    host提供程序相比,此提供程序不依赖于反向 DNS 查找:它只是在 DNS 中查询 host name,如果其 IP 匹配则允许 client。因此,它只适用于 host 名称,而不适用于域名。但是,由于未使用反向 DNS,因此它将与使用动态 DNS 服务的 clients 一起使用。

    Require forward-dns bla.example.org
    

    从 name bla.example.org解析 IP 的 client 将被授予访问权限。

    forward-dns提供程序已添加到 2.4.19 中。

    需要本地

    如果满足以下任何条件,则local提供程序允许访问服务器:

    • client 地址匹配 127.0.0.0/8
    • client 地址是::1
    • 连接的 client 和服务器地址都是相同

    这允许以方便的方式 match 来自本地 host 的连接:

    Require local
    

    安全说明

    如果要将内容代理到服务器,则需要注意 client 地址将是代理服务器的地址,而不是 client 的地址,因此在此 context 中使用Require指令可能不符合您的意思。有关此问题的一种可能解决方案,请参阅mod_remoteip。