zoukankan      html  css  js  c++  java
  • 分类: LINUX apache 访问设置配置

    分类: LINUX

    在一次面试的时候被问到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模块的指令用于<Directory> <Files> <Location>段以及.htaccess文件中来控制对服务器特定部分的访问。allow和deny指令指出允许那些客户以及不允许那些客户访问服务器。而Order指令设置默认的访问状态并配置AllowDeny指令怎样相互作用。
     
    操作篇
     
    首先,检查apache是否支持模块mod_authz_host ,如果不支持,重新编译安装以支持这个模块。
     
    [root@localhost conf]# /usr/local/EDSV/apache/bin/apachectl -l | grep mod_authz_host.c
      mod_authz_host.c
     
    然后设置apache的访问控制。下面以主配置文件里的<Directory>为例:
     
    比如要对默认网站进行访问控制。默认网站的DocumentRoot为/usr/local/EDSV/apache/htdocs
     
    要允许所有人访问,只拒绝一个IP或者IP段访问:
     
    <Directory "/usr/local/EDSV/apache/htdocs">
     
       Order allow,deny
       Allow from all
       deny from 10.112.5.137
     
    </Directory>
     
     
    要拒绝所有人访问,只允许一个IP或者段访问。
     
     
    <Directory "/usr/local/EDSV/apache/htdocs">
     
        Order deny,allow
        deny from all
        allow from 10.112.5.195
     
    </Directory>
     
     
    设置网站的默认访问状态:
     
    <Directory /www>
    Order Allow,Deny
    </Directory>

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

     
     

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

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

     

    参考资料:http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/mod/mod_authz_host.html

    浪漫家园,没事就来逛逛
  • 相关阅读:
    德才真值表
    Linaro公司基于GCC推出的的ARM交叉编译工具
    荣耀4CROOT 成功!附本人ROOT过程——KINGROOT
    batman-adv——B.A.T.M.A.N. Advanced quick start guide
    linux内核外部驱动模块编译报错ERROR—drivers/*.ko] undefined
    Linux Kernel and Driver Development Training——linux-kernel-slides
    华为手机——解锁步骤
    编译Linux内核—浅谈EABI和OABI
    Linux Kernel and Driver Development Training
    Android—Step by step
  • 原文地址:https://www.cnblogs.com/lovezbs/p/4417095.html
Copyright © 2011-2022 走看看