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 地址来控制访问。
通常,访问限制指令适用于所有访问方法(GET
,PUT
,POST
等)。在大多数情况下,这是期望的行为。但是,通过将指令括在<Limit>节中,可以限制某些方法,同时保持其他方法不受限制。
要求指令
在授权阶段使用 Apache 的要求指令,以确保允许或拒绝用户访问资源。 mod_authz_host 使用ip
,host
,forward-dns
和local
扩展授权类型。也可以使用其他授权类型,但可能需要加载其他授权模块。
这些授权提供程序会影响哪些主机可以访问服务器的某个区域。可以通过主机名,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。