Chinaunix首页 | 论坛 | 博客
  • 博客访问: 146372
  • 博文数量: 23
  • 博客积分: 1996
  • 博客等级: 上尉
  • 技术积分: 269
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-08 20:46
文章分类

全部博文(23)

文章存档

2010年(23)

我的朋友

分类: LINUX

2010-03-26 18:09:45

在一次面试的时候被问到apache访问控制的问题。由于以前对apache的访问控制都是通过iptalbes来实现的,没有实际在apache上操作过访问控制。所以只知道个大概: 在主配置文件里的directory段里通过allow、deny等指令来实现。虽然答的也算对,但毕竟没有操作过,心理没底。所以今天就将apache 的访问控制详细操作记录下。以便以后使用。
 
apache2.2是通过模块mod_authz_host来实现访问控制的。在2.0版本中此模块叫做mod_access
 
下面以apache2.2版本来做介绍:
 
原理篇
 
Apache模块 mod_authz_host
 
提供基于主机名、IP地址、请求特征的访问控制
基本(B)
authz_host_module
mod_authz_host.c (2.0版本中为mod_access.c)
仅在 Apache 2.1 及以后的版本中可用
 
mod_authz_host模块的指令用于 段以及.htaccess文件中来控制对服务器特定部分的访问。allow和deny指令指出允许那些客户以及不允许那些客户访问服务器。而指令设置默认的访问状态并配置指令怎样相互作用。
 
操作篇
 
首先,检查apache是否支持模块mod_authz_host ,如果不支持,重新编译安装以支持这个模块。
 
[root@localhost conf]# /usr/local/EDSV/apache/bin/apachectl -l | grep mod_authz_host.c
  mod_authz_host.c
 
然后设置apache的访问控制。下面以主配置文件里的为例:
 
比如要对默认网站进行访问控制。默认网站的DocumentRoot为/usr/local/EDSV/apache/htdocs
 
要允许所有人访问,只拒绝一个IP或者IP段访问:
 
   Order allow,deny
   Allow from all
   deny from 10.112.5.137
 
 
 
要拒绝所有人访问,只允许一个IP或者段访问。
 
 
 
    Order deny,allow
    deny from all
    allow from 10.112.5.195
 
 
 
设置网站的默认访问状态:
 

Order Allow,Deny

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

 
 

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

以上设置apache.org域中所有主机,除了foo.apache.org子域包含的主机被拒绝以外,其他都允许访问。而所有不在apache.org域中的主机都不允许访问,因为默认状态是拒绝对服务器的访问。

 

参考资料:

 

 

阅读(4158) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~