专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »web服务器 » apachehttpd.conf:Apache中禁止IP段 在httpd.conf中的写法 »正文

apachehttpd.conf:Apache中禁止IP段 在httpd.conf中的写法

来源: 发布时间:星期日, 2009年1月4日 浏览:8次 评论:0
介绍说明: 控制哪些主机能够访问服务器个区域
语法: Allow from all|host|env=env-variable [host|env=env-variable] ...
上下文: 目录, .htaccess
覆盖项: Limit
状态: Base
模块: mod_access
Allow指令影响哪些主机可以访问服务器个区域可以用主机名、IP地址、 IP地址范围或者其他环境变量中捕获客户端请求特性来对访问进行控制

这个指令个参数总是from随后参数可以有 3种区别形式 如果指定Allow from all则允许所有主机访问需要 Deny和Order指令像下面讨论那样配置 要只允许特定部分主机或主机群访问服务器host可以用下面任何种格式来指定:

个域名(部分)
例子:Allow fromapache.org
允许名字和给定串匹配或者以该串结尾主机访问只有完整名字组成部分才被匹配因此上述例子将匹配foo.apache.org而不能匹配fooapache.org这样配置将引起服务器执行个对客户IP地址反查域名操作而不管HostnameLookups指令是否设置
完整IP地址
例子:Allow from 10.1.2.3
允许个主机个IP地址访问
部分IP地址
例子:Allow from 10.1
IP地址开始1到3个字节用于子网限制
网络/掩码对
例子:Allow from 10.1.0.0/255.255.0.0
个网络a.b.c.d个掩码w.x.y.z用于更精确子网限制
网络/nnn 无内别域间路由规格
例子:Allow from 10.1.0.0/16
同前种情况相似除了掩码由nnn个高位字节构成
注意以上后 3个例子完全匹配同组主机

IPv6地址和IPv6子网可以像下面这样指定:
Allow from fe80::a00:20ff:fea7:ccea
Allow from fe80::a00:20ff:fea7:ccea/10
Allow指令第 3种参数格式允许对服务器访问由 环境变量个扩展指定指定 Allow from env=env-variable时如果环境变量env-variable存在则访问请求被允许使用由mod_env提供指令服务器用种基于客户端请求弹性方式提供了设置环境变量能力因此这条指令可以用于允许基于像User-Agent(浏览器类型)、Referer或者其他Http请求头字段 访问
例子:
SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
<Directory /docroot>
Order Deny,Allow
Deny from all
Allow from env=let_me_in
</Directory>
这种情况下发送以KnockKnock/2.0开头用户代理标示浏览器将被允许访问而所有其他浏览器将被禁止访问

Deny 指令
介绍说明: 控制哪些主机被禁止访问服务器
语法: Deny from all|host|env=env-variable [host|env=env-variable] ...
上下文: 目录, .htaccess
覆盖项: Limit
状态: Base
模块: mod_access
这条指令允许基于主机名、IP地址或者环境变量限制对服务器访问 Deny指令参数设置和Allow指令完全相同

Order 指令
介绍说明: 控制缺省访问状态和Allow和Deny指令被评估顺序
语法: Order ordering
默认值: Order Deny,Allow
上下文: 目录, .htaccess
覆盖项: Limit
状态: Base
模块: mod_access

Order指令控制缺省访问状态和 Allow和Deny指令被评估顺序 Ordering是以下几种范例的:
Deny,Allow
Deny指令在 Allow指令的前被评估缺省允许所有访问 任何不匹配Deny指令或者匹配 Allow指令客户都被允许访问服务器
Allow,Deny
Allow指令在 Deny指令的前被评估缺省禁止所有访问 任何不匹配Allow指令或者匹配 Deny指令客户都将被禁止访问服务器
Mutual-failure
只有出现在Allow列表并且不出现在 Deny列表中主机才被允许访问 这种顺序和Order Allow,Deny具有同样效果不赞成使用它包括了哪种配置
关键字只能用逗号分隔;它们的间不能有空格注意在所有情况下每个Allow和Deny指令语句都将被评估
在下面例子中apache.org域中所有主机都允许访问而其他任何主机访问都被拒绝
Order Deny,Allow
Deny from all
Allow from apache.org
下面例子中apache.org域中所有主机除了foo.apache.org子域包含主机被拒绝访问以外都允许访问 而所有不在apache.org域中主机都不允许访问缺省状态是拒绝对服务器访问

Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org

方面如果上个例子中Order指令改变为Deny,Allow将允许所有主机访问这是不管配置文件中指令实际顺序如何 Allow from apache.org指令会最后被评估到并覆盖的前 Deny from foo.apache.org所有不在apache.org 域中主机也允许访问是缺省状态被改变到了允许

即使没有伴随Allow和Deny指令个Order 指令存在也会影响到服务器上某个部分访问 这是由于他对缺省访问状态影响例如
<Directory /www>
Order Allow,Deny
</Directory>
这样将会禁止所有对/www目录访问缺省状态将被设置为拒绝.
Order指令只在服务器配置每个段内部控制访问指令处理 这暗示着例如个在<Location>段出现 Allow或者Deny指令总是将会在个<Directory>段或者 .htaccess文件中出现 Allow或Deny 指令的后被评估而不管Order指令中设置为何要了解配置段落合并详细信息 参看How Directory, Location and Files sections work相关文档


0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: