用apache禁止IP地址访问
问题:
网站用的是apache服务器,支持php页面。现在想解决的问题是:
设置禁止IP或IP段访问网站
或者换句话说
只允许某IP或某段IP访问网站
应该如何做到呢:
回答:
总体思路:使用allow或deny指令来设置apache的httpd.conf
一、Allow 指令:
其作用是控制哪些主机能够访问服务器的一个区域。
可以用主机名、IP地址、 IP地址范围或者其他环境变量中捕获的客户端请求特性来对访问进行控制。
这个指令的第一个参数总是from。
随后的参数可以有三种不同形式。
如果指定Allow from all,则允许所有主机访问,需要 Deny和Order指令像下面讨论的那样配置。
要只允许特定一部分主机或主机群访问服务器,host可以用下面任何一种格式来指定:
举例说明:
1、只允许一个域名(部分) 访问
例子:Allow from apache.org
允许名字与给定字符串匹配或者以该字符串结尾的主机访问。
只有完整的名字组成部分才被匹配,因此上述例子将匹配foo.apache.org而不能匹配fooapache.org。 这样的配置将引起服务器执行一个对客户IP地址的反查域名操作而不管HostnameLookups指令是否设置。
2、允许一个完整的IP地址访问
Allow from 10.1.2.3
其作用是只允许一个主机的一个IP地址访问。
3、部分(某些)IP地址访问
Allow from 10.1
4、用于子网限制(IP地址的开始1到3个字节)。
网络/掩码
Allow from 10.1.0.0/255.255.0.0
一个网络a.b.c.d,和一个掩码w.x.y.z。用于更精确的子网限制。
5、网络/nnn 无内别域间路由规格
Allow from 10.1.0.0/16
同前一种情况相似,除了掩码由nnn个高位字节构成。
6、Pv6地址和IPv6子网可以像下面这样指定:
Allow from fe80::a00:20ff:fea7:ccea
Allow from fe80::a00:20ff:fea7:ccea/10