描述: | 基于主机(名称或IP地址)的组授权 |
---|---|
状态: | 基础 |
模块标识符: | authz_host_module |
源文件: | mod_authz_host.c |
兼容性: | 该forward-dns 提供程序已在2.4.19中添加 |
由实施的授权提供者mod_authz_host
使用Require
指令注册。可以在,,或部分以及文件中引用该伪指令
<Directory>
,
以控制对服务器特定部分的访问。可以根据客户端主机名或IP地址来控制访问。<Files>
<Location>
.htaccess
一般来说,访问限制指令适用于所有接入方式(GET
,PUT
,
POST
等)。在大多数情况下,这是所需的行为。但是,可以通过将指令括在一<Limit>
节中来限制某些方法,而使其他方法不受限制。
Require
在授权阶段使用Apache 指令,以确保允许或拒绝用户访问资源。mod_authz_host延长授权类型的ip
,host
,
forward-dns
和local
。也可以使用其他授权类型,但可能需要加载其他授权模块。
这些授权提供者影响哪些主机可以访问服务器的区域。可以通过主机名,IP地址或IP地址范围控制访问。
从v2.4.8开始,主机require指令支持表达式。
该ip
供应商允许基于远程客户端的IP地址来控制对服务器的访问。当指定,则请求被允许,如果IP地址匹配的访问。Require ip ip-address
完整的IP地址:
Require ip 10.1.2.3 Require ip 192.168.1.104 192.168.1.205
主机允许访问的IP地址
部分IP地址:
Require ip 10.1 Require ip 10 172.20 192.168.2
IP地址的前1至3个字节,用于子网限制。
网络/网络掩码对:
Require ip 10.1.0.0/255.255.0.0
网络abcd和网络掩码wxyz用于更细粒度的子网限制。
网络/ nnn CIDR规范:
Require ip 10.1.0.0/16
与前面的情况类似,除了网络掩码由nnn个高1位组成。
请注意,以上最后三个示例完全匹配同一组主机。
可以如下所示指定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地址是在启动时解析的,因此表达式不会在请求时求值。
该host
供应商允许基于远程客户端的主机名来控制对服务器的访问。当指定的,那么如果主机名匹配的请求被允许访问。Require host host-name
一个(部分)域名
Require host example.org Require host .net example.edu
名称匹配或以该字符串结尾的主机被允许访问。仅匹配完整的组件,因此上面的示例将匹配,foo.example.org
但不匹配fooexample.org
。无论HostnameLookups
指令的设置如何,此配置都将导致Apache对客户端IP地址执行双向反向DNS查找。它将对IP地址进行反向DNS查找,以找到关联的主机名,然后对主机名进行正向查找,以确保其与原始IP地址匹配。仅当正向和反向DNS一致且主机名匹配时,才允许访问。
该forward-dns
供应商可以访问基于简单的主机名被控制的服务器。当
指定,对应于所有的IP地址
允许访问。Require forward-dns host-name
host-name
与host
提供程序相比,此提供程序不依赖于反向DNS查找:它只是查询DNS的主机名,并允许客户端查找其IP是否匹配。因此,它仅适用于主机名,不适用于域名。但是,由于不使用反向DNS,因此它将与使用动态DNS服务的客户端一起使用。
Require forward-dns bla.example.org
从名称解析IP的客户端
bla.example.org
将被授予访问权限。
该forward-dns
供应商在2.4.19添加。
该local
供应商可以访问服务器,如果任何下列条件为真:
这提供了一种便捷的方式来匹配源自本地主机的连接:
Require local
如果要将内容代理到服务器,则需要注意,客户端地址将是代理服务器的地址,而不是客户端的地址,因此Require
在此上下文中使用伪指令可能无法实现您的意思。请参阅参考资料
mod_remoteip
,以找到该问题的一种可能的解决方案。