Apache2.4使用require指令进行访问控制–允许或限制IP访问/通过User-Agent禁止不友好网络爬虫

从Apache2.2升级到Apache2.4后,发现原来用来限制部分IP和垃圾网络爬虫的访问控制规则不起作用,查询后才发现,Apache2.4中开始使用mod_authz_host这个新的模块来进行访问控制和其他的授权检查。原来在Apache2.2版本下用以实现网站访问控制的Order,Allow,Deny指令需要替换为新的Require访问控制指令。

注意:使用require指令时,需要在指令外添加<RequireAll></RequireAll>标签对,否则重启Apache2.4加载规则时将出现错误:” negative Require directive has no effect in <RequireAny> directive “。

下面直接给出一些实例对Require指令的使用进行说明:

例1:允许所有访问请求

Apache2.4下的配置:

<Directory xxx/www/yoursite>

    <RequireAll>
        Require all granted
    </RequireAll>

</Directory>

例2:拒绝所有访问请求

Apache2.4下的配置:

<Directory xxx/www/yoursite>

    <RequireAll>
        Require all denied
    </RequireAll>

</Directory>

例3:只允许来自特定域名主机的访问请求,其他请求将被拒绝

Apache2.4下的配置:

<Directory xxx/www/yoursite>

    <RequireAll>
        Require host google.com
    </RequireAll>

</Directory>

例4:只允许来自特定IP或IP段的访问请求,其他请求将被拒绝

Apache2.4下的配置:

<Directory xxx/www/yoursite>

    <RequireAll>
        Require ip 192.120 192.168.100 192.168.1.1
    </RequireAll>

</Directory>

例5:允许所有访问请求,但拒绝来自特定IP或IP段的访问请求(阻止恶意IP或恶意爬虫网段的访问)

Apache2.4下的配置:

<Directory xxx/www/yoursite>

    <RequireAll>
        Require all granted
        Require not ip 192.168.1.1
        Require not ip 192.120 192.168.100
    </RequireAll>

</Directory>

例6:允许所有访问请求,但拒绝某些User-Agent的访问请求(通过User-Agent屏蔽垃圾网络爬虫)

使用mod_setenvif通过正则表达式匹配来访请求的User-Agent,并设置内部环境变量BADBOT,最后拒绝BADBOT的访问请求。

Apache2.4下的配置:

<Directory xxx/www/yoursite>

    SetEnvIfNoCase User-Agent ".*(FeedDemon|JikeSpider|AskTbFXTV|CrawlDaddy|Feedly|Swiftbot|ZmEu|oBot).*" BADBOT
    SetEnvIfNoCase User-Agent "brandwatch" BADBOT
    SetEnvIfNoCase User-Agent "rogerbot" BADBOT
    <RequireAll>
        Require all granted
        Require not env BADBOT
        Require not ip 192.168.100.1
    </RequireAll>

</Directory>

其它require访问控制指令用法如下:

Require all granted #允许所有
Require all denied #拒绝所有
Require env env-var [env-var] ... #允许匹配环境变量中任意一个
Require method http-method [http-method] ... #允许特定的HTTP方法(GET/POST/HEAD/OPTIONS)
Require expr expression #允许,表达式为true
Require user userid [ userid ] ... #允许特定用户
Require group group-name [group-name] ... #允许特定用户组
Require valid-user # #允许,有效用户
Require ip 192.100 192.168.100 192.168.100.5 #允许特定IP或IP段,多个IP或IP段间使用空格分隔
时间: 2024-10-06 22:03:51

Apache2.4使用require指令进行访问控制–允许或限制IP访问/通过User-Agent禁止不友好网络爬虫的相关文章

Apache2.4使用require指令进行访问控制--允许或限制IP访问/通过User-Agent禁止不友好网络爬虫

从Apache2.2.X到Apache2.4.X,在配置上稍微有点不同,需要特别注意.现在记录下关于访问控制的配置. 经过苦苦搜索,终于配置成功.参考了这篇文章:http://www.cnblogs.com/leoyu/p/apache24_use_require_for_access_control_by_ip_and_useragent.html 关于Location配置的灵感,是从这篇文章看到的:http://www.bubuko.com/infodetail-336400.html 上文

Apache2.4使用require指令进行访问控制

从Apache2.2升级到Apache2.4后,发现原来用来限制部分IP和垃圾网络爬虫的访问控制规则不起作用,查询后才发现,Apache2.4中开始使用mod_authz_host这个新的模块来进行访问控制和其他的授权检查.原来在Apache2.2版本下用以实现网站访问控制的Order,Allow,Deny指令需要替换为新的Require访问控制指令. 注意:使用require指令时,需要在指令外添加<RequireAll></RequireAll>标签对,否则重启Apache2.

在apache2.4版本之前做客户端访问控制,是用Allow Deny Order指令做访问控制的,

在apache2.4版本之前做客户端访问控制,是用Allow Deny Order指令做访问控制的,而在2.4的版本上是用的用法跟之前的版本大不相同,如下 ################################################ 2.2上的配置 Order deny,allow Deny from all 2.4上的配置 Require all denied ################################################ 2.2上的配置

ACL访问控制列表——标准IP访问列表(理论+实验)

ACL访问控制列表的功能 1.限制网络流量.提高网络性能2.提供对通信流量的控制手段3.提供网络访问的基本安全手段4.在网络设备接口处,决定哪种类型的通信流量被转发.哪种类型的通信流量被阻塞 ACL的工作原理 1.访问控制列表在接口应用的方向出方向:已经过路由器的处理,正离开路由器接口的数据包入方向:已达到路由器接口的数据包,将被路由器处理列表应用到接口方向与数据方向有关 ACL规则 1. 从上到下依次匹配 2. 一旦被某条ACL匹配,则停止查找 3. 依照上两条规则,ACL的精确或者严格规则写

Apache 2.4 访问控制;

2.2当中的访问控制: AllowOveried    None    //是否禁用控制功能: Order Allow Deny    //不允许的都拒绝,Deny Allow表示不拒绝都允许: Allow IPADDR    //允许的IP列表: Deny IPADDR    //拒绝的IP列表: PS:列表的IP可以使用IP段或者IP地址: Apache 2.4访问控制: 通过<RequireAll></RequireAll>来进行控制,一下给出示例: <Dricetor

2-Apache服务的访问控制

目录 2-Apache服务的访问控制 1.开启基本认证(用户密码) 2.网络访问控制 2-Apache服务的访问控制 1.开启基本认证(用户密码) 查看Apache文档-->认证 AuthType Basic AuthName "Restricted Files" #(下面这一行是可选的) AuthBasicProvider file AuthUserFile /usr/local/apache2/passwd/passwords Require user rbowen 需求1:

LAMP之apache2.4

http2.4系列相对于http2.2系列新增的功能有 1) MPM支持在运行时装载 2)支持event 3)异步读写 4)在每模块及每目录上指定日志级别 5)每请求配置 6)增强版的表达式分析器 7)毫秒级的keepalive timeout 8)支持主机名的虚拟主机不在需要NameVirtualHost指令 9)支持使用自定义变量 新增的模块由mod_proxy_fcgi,mod_ratelimit,mod_request,mod_remoteip 对应IP的访问做了修改,不在使用order

Apache的IP访问控制

Apache防盗链主要是防止本网站的链接被别人盗用 使用Apache访问控制,禁用来源IP访问 1.修改网站的虚拟主机配置文件 从主配置文件中拷贝模板: [[email protected] logs]# vim /usr/local/apache2/conf/httpd.conf [[email protected] logs]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf <VirtualHost *:80> ........ &

Linux运维实战之Apache的基本配置(全局配置、主服务器配置):

上次博文我们具体讨论了http协议(参见:http://sweetpotato.blog.51cto.com/533893/1656137),本次博文我们来具体配置一台Apache(httpd)服务器. 本次博文的主要内容: httpd相关包信息 httpd的安装及主页面 httpd的配置文件 httpd的全局配置 httpd的主服务器配置 一.httpd的RPM包介绍及其相关信息: RHEL5和RHEL6略有不同: 下图是RHEL5上httpd相关包的信息: 下图是RHEL6上httpd相关包