Apache通过.htaccess如何对访问 IP 进行限制?

赞赏 2016-07-12

网站业务运行过程中会遇到一些恶意IP的攻击访问,或者非法盗链、恶意采集网站资源的情况。如果网站是使用 Apache 服务构建的,可以通过在根目录下的 .htaccess 文件中进行相关配置来限制某些 IP 对网站的访问。


1、禁止特定 IP 访问:

Order Allow,Deny
Allow from all
Deny from 123.46.7.89

以上设置表示禁止 123.46.7.89 访问,其他IP可以正常访问。 


2、禁止 IP 地址段访问:

Order Allow,Deny
Allow from all
Deny from 192.168.1.

以上设置表示禁止IP地址段 192.168.1.0/24,也就是禁止 192.168.1.1----192.168.1.254 的 IP 访问。


解释一下设置中出现的关键字:

1:Allow 和 Deny 可以用于 Apache 的 .htaccess 文件中,来控制目录和文件的访问授权。Allow 表示允许,Deny 表示拒绝。

2:Order 关键字可以决定 Allow 和 Deny 起作用的顺序,简单的说就是谁排在最后,谁就有最终的决定权具体如下: Order Deny,Allow 意思是先检查是否有 Deny 规则,不论有没有 Deny 规则都会继续检查是否有 Allow 规则,如果有 Allow,Allow 规则的内容可以覆盖掉 Deny 规则。Order Allow,Deny 恰好相反。 

例如:

Order Allow,Deny
Allow from IP1
Deny from all

这段规则实际是禁止了所有 IP 访问。按照谁在最后谁有最终决定权的原则,deny from all 就将 allow 的命令否决了。所以 IP1 也会被禁止,这个规则会禁止所有 IP 对网站的访问。

如果想只允许 IP1 访问,其他 IP 全部禁止,正确的写法应该是:

Order Deny,Allow    //先检查Deny,由Allow拥有决定权
Deny from all       //Deny规则要求禁止所有IP的访问
Allow from IP1      //Allow规则只允许IP1访问


按照这个原则,可以应用到网站中的常用规则有:

禁止特定 IP 的访问

Order Allow,Deny 
Allow from all 
Deny from IP1       //IP1替换成用户需要屏蔽的IP,比如123.46.7.89

禁止部分 IP(IP1,IP2,IP3),其他IP全部允许访问的两种写法

Order Deny,Allow
Deny from IP1 IP2 IP3

或者

Order Allow,Deny
Allow from all
Deny from IP1 IP2 IP3


登陆后阅读全文
阅读 1671 赞赏 0 有用 6 没用 0 收藏 0 分享

   


作者声明:本篇文章系本人原创,欢迎分享,但未经许可,谢绝转载。

0 条留言

linux分享的头像

linux分享

每个软件都有确定的用途

相关文章

Apache 如何关闭目录访问?

Linux Apache 运行配置参数的调优

tomcat报warinig Unable to add the resource at [] to the cache

Apache 出现 winnt_accept: Asynchronous AcceptEx faile?

linux下如何开启 Apache 伪静态模块?

如何隐藏 Apache 版本信息?

CentOS 6.5系统下 Apache 如何配置 https 服务?

Linux下Apache日志的常用分析方法和日志大小的优化方法

如何实现编译安装的 Apache 服务,随系统自动启动?

Linux下如何查看Nginx Apache MySQL PHP 的编译参数?

有料推荐

这世界欠我一个这样的老公!

高校学生模仿“世界名画”摆拍,可以说是戏精本精了

iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评

果然是高手!这次在日本,特朗普竹杠敲得不是一般狠

资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样

长一样的双胞胎也能识别?蚂蚁金服发布「眼纹识别」技术

苏联是怎么被阿富汗拖垮的?

美团或入局「分时租赁」共享汽车,王兴要大笔投入「泛出行」领域了? | 36氪独家

你或许被“一盘番茄炒蛋”刷屏了,但有人辛酸,有人质疑

iPhone X发售前夜,黄牛与苹果公司的不安

他的文章

我是如何执行 "rm -rf ~" 的

正态分布为什么常见?(财富的分布却不符合正态分布)

Linux下窗口管理器 xmonad 的使用教程

用披萨做比喻来解释 IaaS,PaaS,SaaS 的区别

如何制作CSR(证书私钥和证书请求文件)文件?

php RedisException with message read error on connection

Windows环境下ping丢包或不通时链路测试工具推荐

Linux下ping丢包或不通时链路测试工具推荐

链路测试结果分析说明及常见链路异常场景和测试报告

SSH 登录时出现如下错误:login: Module is unknown

手机扫一扫
分享文章