分类: 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

分类: LINUX apache 访问设置配置的更多相关文章

  1. linux apache虚拟主机配置(基于ip,端口,域名)

    配置环境: linux版本:Centos6.4 httpd版本: [root@centos64Study init.d]# pwd/etc/init.d[root@centos64Study init ...

  2. Linux Apache虚拟主机配置方法

    apache 虚拟主机配置 注意: 虚拟主机可以开很多个 虚拟主机配置之后,原来的默认/etc/httpd/httpd.conf中的默认网站就不会生效了 练习: 主机server0 ip:172.25 ...

  3. linux+Apache开启伪静态配置

    linux+Apache伪静态配置 一.环境准备:CentOS Linux release 7.4.1708 (Core)1.配置源[root@localhost ~]#yum install -y ...

  4. linux Apache CGI 安装配置

    Apache 中的提交了一种利用扩展应用程序执行动态网页的机制. 称为Common Gateway Interface (通用网关接口)简称CGI. 本文假定已安装好linux(本文的linux版本为 ...

  5. linux Apache和php配置

    今天安装Apache httpd web服务器,安装过程分为三部分: (1)./configure (2)make (3)make install (需要root权限) 我的apache 安装在/ho ...

  6. Linux + Apache + MySql+ Php 配置虚拟主机

    win7:------------------------------------------------------------------------ NameVirtualHost *:80&l ...

  7. Linux+Apache+MySQL+PHP配置教程

    有时我们只想搭建LAMP环境做个测试,并不在意目录的和配置是否规范,本教程正是为此想法而写能简单的就不复杂实现最快地搭建LAMP:操作系统为CentOS6.5. 1.安装Apache yum inst ...

  8. Linux apache httpd virtual配置

    必须要关闭 selinux,否则无法访问目录

  9. linux apache添加多站点配置(Ubuntn和Centos)

     Linux Apache 多站点配置 Centos 配置方式: 找到 /etc/httpd/conf/http.conf 添加监听端口,eg: Listen 89 虚拟机配置,一个端口对应一个 &l ...

随机推荐

  1. hdu 4427 Math Magic

    一个长了一张数学脸的dp!!dp[ i ][ s ][ t ] 表示第 i 个数,sum为 s ,lcm下标为 t 时的个数.显然,一个数的因子的lcm还是这个数的因子,所以我们的第三维用因子下标代替 ...

  2. last与lastlog命令

    lastlog 列出所有用户最后登录的时间和登录终端的地址,如果此用户从来没有登录,则显示:**Never logged in**last 列出用户所有的登录时间和登录终端的地址

  3. JS中面向对象的,对象理解、构造函数、原型、原型链

    6.1 理解对象 6.1.1 对象属性类型 ECMS属性有两种类型:数据属性和访问器属性 1 数据属性 [[configurable]] 表示能否通过Delete 删除属性从而从新定义属性,能否修改属 ...

  4. Dapper simplecrud的使用

    为了方便Dapper操作可以使用Dapper的相关扩展dapper simplecrud. 1.首先点击管理NuGet

  5. hibernate中.hbm.xml和注解方式自动生成数据表的简单实例(由新手小白编写,仅适用新手小白)

    绝逼新手小白,so 请大神指点! 如果真的错的太多,错的太离谱,错的误导了其他小伙伴,还望大神请勿喷,大神请担待,大神请高抬贵嘴......谢谢. 好了,正题 刚接触ssh,今天在搞使用.hbm.xm ...

  6. SSH 5W学习

    what SSH的英文全称为Secure Shell,是IETF(Internet Engineering Task Force)的Network Working Group所制定的一族协议,其目的是 ...

  7. ExtJs 学习笔记

    1.显示中文  <script type="text/javascript" src="../../locale/ext-lang-zh_CN.js"&g ...

  8. js 事件小结

    1,事件对象   e || window.event //ie   2, 取鼠标点击坐标 带有滚动条的   var top = document.documentElement.scrollTop | ...

  9. Android 周报

    1. https://androidsweets.ongoodbits.com/ 2. https://www.androiddevdigest.com/ 3.http://us12.campaign ...

  10. python3.4+selenium爬58同城(一)

    爬取http://bj.58.com/pbdn/0/pn2/中除转转.推广商品以外的产品信息,因为转转和推广的详情信息不规范,需要另外写一个方法存放,后期补上,详情页如下 这周学习了爬虫,但是遇到一些 ...