Answers:
首先,我假设您的意思是Apache 2.4,尽管带有“ apache-2.2”标签,因为您发布的语法来自2.4。
从Apache文档中:
ip.address是IP地址,部分IP地址,网络/网络掩码对或网络/ nnn CIDR规范。
我假设您的意思是您希望允许/ 24,因为D类是多播地址,而有类网络在90年代就死了。要允许/ 24,可以使用以下任意一种:
Require ip 123.123.123
Require ip 123.123.123.0/255.255.255.0
Require ip 123.123.123.0/24
就个人而言,我发现最后一个没有第一个模糊,并且比第二个更易于阅读。
您可能会发现文档的这一部分很有用:http : //httpd.apache.org/docs/2.4/howto/access.html#host
Require
在Apache 2.2中支持有限,但是Apache 2.2不支持Require ip
或<RequireAny>
。如Apache HTTP Server 2.4的新功能概述中所述,“现在可以使用Require
指令和相关的容器指令(例如)来指定高级授权逻辑<RequireAll>
。” 前者是对Apache 2.4进行的改进。
在Apache 2.2及更低版本中,您可以使用:
Order deny,allow
Deny from all
Allow from 24.18 # allow access from home
Allow from 162.12 # allow access from work
在您的.htacess中,直接在基本级别上(不在任何内<directive>
)。
从Apache 2.4及更高版本开始,您可以执行以下操作:
<RequireAny>
#IPv4 range at my work
Require ip 207.100
#IPv4 range I usually get through my mobile provider
Require ip 29.11
#IPv6 from home
Require ip 2a02:4126:2aa4::/48
</RequireAny>
(所有数字都是虚构的,不用担心;-)。
我已经使用了很多年,以保护我的后端文件夹免受99%的潜在用户的侵害。(工作得很好,除非您在旅行时是一个狂热的博客作者。如果您是Gmail用户:“上次帐户活动”,最底部的链接是找出您自己的“ IP习惯”的便捷方法)。
Require ip 2a02:4126:2aa4::/48
和之间有什么区别Require ip 2a02:4126:2aa4::
?两者都不会为我产生语法错误,而只有前者可以。
注意到您现在已经确认使用Apache 2.2,Apache 2.2不支持Require ip
或<RequireAny>
。如Apache HTTP Server 2.4的新功能概述中所述,“现在可以使用Require
指令和相关的容器指令(例如)来指定高级授权逻辑<RequireAll>
。” 前者是对Apache 2.4进行的改进。
要在Apache 2.2中处理此问题,您可能需要执行以下操作:
Order allow,deny
Allow from 123.123.123
这将获得指定的整个范围。
注意:我将其保留在此处,因为其他人可能会从中受益。这不是问题的直接答案。
例如:
要求IP 192.168.100.0/22
工作,而
要求IP 192.168.100.0/22 #localnetwork
失败!
重新启动httpd输出:
由于控制进程退出并显示错误代码,因此httpd.service的作业失败。有关详细信息,请参见“ systemctl状态httpd.service”和“ journalctl -xe”。
因此,似乎该行上没有评论。
在授权阶段使用Apache的Require指令来确保允许或拒绝用户访问资源。mod_authz_host使用ip,host,forward-dns和local扩展授权类型。也可以使用其他授权类型,但可能需要加载其他授权模块。
这些授权提供者影响哪些主机可以访问服务器的区域。可以通过主机名,IP地址或IP地址范围控制访问。
从v2.4.8开始,主机require指令支持表达式。需要ip
ip提供程序允许根据远程客户端的IP地址来控制对服务器的访问。当指定Require ip ip-address时,如果IP地址匹配,则允许访问请求。
完整的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地址是在启动时解析的,因此表达式不会在请求时求值。
来源:https : //httpd.apache.org/docs/trunk/mod/mod_authz_host.html