热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

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

说明:控制哪些主机能够访问服务器的一个区域语法:Allowfromall|host|envenv-variable[host|envenv-variable]上下文:目

 

说明: 控制哪些主机能够访问服务器的一个区域

语法: Allow from all|host|env=env-variable [host|env=env-variable] ...

上下文: 目录, .htaccess

覆盖项: Limit

状态: Base

模块: mod_access

Allow指令影响哪些主机可以访问服务器的一个区域。可以用主机名、IP地址、 IP地址范围或者其他环境变量中捕获的客户端请求特性来对访问进行控制。
 
这个指令的第一个参数总是from。随后的参数可以有三种不同形式。 如果指定Allow from all,则允许所有主机访问,需要 Deny和Order指令像下面讨论的那样配置。 要只允许特定一部分主机或主机群访问服务器,host可以用下面任何一种格式来指定:

一个域名(部分)

例子:Allow from apache.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个高位字节构成。

注意以上后三个例子完全匹配同一组主机。
 
IPv6地址和IPv6子网可以像下面这样指定:

Allow from fe80::a00:20ff:fea7:ccea

Allow from fe80::a00:20ff:fea7:ccea/10

Allow指令的第三种参数格式允许对服务器的访问由 环境变量的一个扩展指定。指定 Allow from env=env-variable时,如果环境变量env-variable存在则访问请求被允许。 使用由mod_setenvif提供的指令,服务器用一种基于客户端请求的弹性方式提供了设置环境变量的能力。 因此,这条指令可以用于允许基于像User-Agent(浏览器类型)、Referer或者其他Http请求头字段 的访问。例子:

  1. SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in  
  2.  
  3. Order Deny,Allow  
  4. Deny from all  
  5. Allow from env=let_me_in  
  6.  

这种情况下,发送以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域中所有主机都允许访问,而其他任何主机访问都被拒绝。

  1. Order Deny,Allow  
  2. Deny from all  
  3. Allow from apache.org 

下面例子中,apache.org域中所有主机,除了foo.apache.org子域包含的主机被拒绝访问以外,都允许访问。 而所有不在apache.org域中的主机都不允许访问,因为缺省状态是拒绝对服务器的访问。

  1. Order Allow,Deny  
  2. Allow from apache.org  
  3. Deny from foo.apache.org 

另一方面,如果上个例子中的Order指令改变为Deny,Allow, 将允许所有主机的访问。这是因为,不管配置文件中指令的实际顺序如何, Allow from apache.org指令会最后被评估到并覆盖之前的 Deny from foo.apache.org。所有不在apache.org 域中的主机也允许访问是因为缺省状态被改变到了允许。
 
即使没有伴随Allow和Deny指令,一个Order 指令的存在也会影响到服务器上某一个部分的访问, 这是由于他对缺省访问状态的影响。例如,

  1.  
  2. Order Allow,Deny  
  3.  

这样将会禁止所有对/www目录的访问,因为缺省状态将被设置为拒绝.

Order指令只在服务器配置的每个段内部控制访问指令的处理。 这暗示着,例如,一个在段出现的 Allow或者Deny指令总是将会在一个段或者 .htaccess文件中出现的 Allow或Deny 指令之后被评估,而不管Order指令中的设置为何。要了解配置段落合并的详细信息, 参看How Directory, Location and Files sections work相关文档。


推荐阅读
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • 在尝试通过自定义端口部署Spring Cloud Eureka时遇到了连接失败的问题。本文详细描述了问题的现象,并提供了有效的解决方案,以帮助遇到类似情况的开发者。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 在尝试启动Java应用服务器Tomcat时,遇到了org.apache.catalina.LifecycleException异常。本文详细记录了异常的具体表现形式,并提供了有效的解决方案。 ... [详细]
  • mysql 授权!!
    为什么80%的码农都做不了架构师?MySQL的权限系统围绕着两个概念:认证-确定用户是否允许连接数据库服务器授权-确定用户是否拥有足够的权限执 ... [详细]
  • 本文详细介绍了如何使用Heartbeat构建一个高可用性的Apache集群,包括安装、配置和测试步骤。 ... [详细]
  • Centos7 Tomcat9 安装笔记
    centos7,tom ... [详细]
  • 本文介绍了 PHP 的基本概念、服务器与客户端的工作原理,以及 PHP 如何与数据库交互。同时,还涵盖了常见的数据库操作和安全性问题。 ... [详细]
  • DNS服务一、概述1.全称:Domainnamesystem(域名系统)2.作用:1)正向解析: ... [详细]
  • Ubuntu 环境下配置 LAMP 服务器
    本文详细介绍了如何在 Ubuntu 系统上安装和配置 LAMP(Linux、Apache、MySQL 和 PHP)服务器。包括 Apache 的安装、PHP 的配置以及 MySQL 数据库的设置,确保读者能够顺利搭建完整的 Web 开发环境。 ... [详细]
  • Tomcat SSL 配置指南
    本文详细介绍了如何在 Tomcat 中配置 SSL,以确保 Web 应用的安全性。通过正确的配置,可以启用 HTTPS 协议并保护数据传输的安全。 ... [详细]
  • 本文详细介绍了 `org.apache.hadoop.hdfs.server.namenode.FSNamesystem.shouldUseDelegationTokens()` 方法的用途和实际应用场景,并提供了多个代码示例以帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文介绍了如何在Linux系统中将命令添加到PATH环境变量中,以便在任何位置都能直接运行这些命令。PATH是一个包含多个目录路径的字符串变量,当输入不带路径的命令时,系统会在这些路径中查找并执行相应的命令。 ... [详细]
  • 本文介绍了如何在 MapReduce 作业中使用 SequenceFileOutputFormat 生成 SequenceFile 文件,并详细解释了 SequenceFile 的结构和用途。 ... [详细]
author-avatar
f永远喜爱捉迷藏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有