分类: 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 ,如果不支持,重新编译安装以支持这个模块。

[[email protected] 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

时间: 2024-10-13 00:45:11

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

Linux Apache web服务器 配置详细教程

3 Linux Apache web服务器 v2.4.29学习要点: 1.apache用途,工作模式,httpd.conf的配置重要参数2.虚拟主机 工作模式的参数优化 3.1 Apache 概述: 3.1.1 Apache 概述Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速.可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中.同时Apache音译为

Linux Apache PHP编译配置

1.下载Apache Web服务器源码及相关依赖库 进入http://www.apache.org,选择一个服务器下载相关的源码.这里请注意:apache其实是一个基金会名称,旗下有很多开源项目,apache web服务器只是apache基金会其中一个项目而已,所以很多朋友在进入apache主页后,很难找到apache web server下载的地方,apache web server在其源码库中名称为httpd-xxx(xxx为版本).基本步骤是:首页点击download,进入下载页后,选择一

Linux+Apache+MySQL+PHP配置教程

有时我们只想搭建LAMP环境做个测试,并不在意目录的和配置是否规范,本教程正是为此想法而写能简单的就不复杂实现最快地搭建LAMP:操作系统为CentOS6.5. 1.安装Apache yum install -y httpd 2.安装MySQL yum install -y mysql-devel mysql-libs mysql mysql-server 3.安装PHP yum install -y PHP 4.配置Apache支持解析PHP 编缉/etc/httpd/conf/httpd.c

YUM安装 Linux+Apache+MySQL+PHP

YUM安装 Linux+Apache+MySQL+PHP 配置YUM源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum -y install epel-release rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm rpm -Uvh https://mirror.webtatic.com/

Linux运维实战之Apache的基本配置(全局配置、主服务器配置):

上次博文我们具体讨论了http协议(参见:http://sweetpotato.blog.51cto.com/533893/1656137),本次博文我们来具体配置一台Apache(httpd)服务器. 本次博文的主要内容: httpd相关包信息 httpd的安装及主页面 httpd的配置文件 httpd的全局配置 httpd的主服务器配置 一.httpd的RPM包介绍及其相关信息: RHEL5和RHEL6略有不同: 下图是RHEL5上httpd相关包的信息: 下图是RHEL6上httpd相关包

CentOS 6.3安装配置LAMP服务器(Linux+Apache+MySQL+PHP5)

服务器系统环境:CentOS 6.3 客户端系统环境:Windows 7 ultimate(x86)sp1 简体中文旗舰版 ※  本文档描述了如何在Linux服务器配置Apache.Mysql.PHP5 LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和

CentOS下安装配置LAMP(Linux+Apache+MySQL+PHP)

关于LAMP的各种知识,今天主要是介绍一下在CentOS下安装,搭建一个Web服务器的过程.(本文是使用安装包安装) 一.简介 什么是LAMP     LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代表的方面功能非常强大的组件.     LAMP这个词的由来最早始于德国杂志“c't Magazine”,Michael  Kunze在1990年最先把这些项目组合在一起创造了LAM

Apache(httpd)配置--用户认证,域名跳转和访问日志配置

一.用户认证 用户认证功能就是在用户访问网站的时候,需要输入用户名密码才能进行访问.一些比较好总要的站点和网站后台都会加上用户认证,以保证安全.实例:下面对zlinux.com站点来做一个全站的用户认证: 步骤1:编辑虚拟主机配置文件 [[email protected] ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf //在linuxtest.com虚拟主机下编辑添加以下内容 <VirtualHost *:80> Documen

apache本地和局域网访问设置

apache本地和局域网访问设置 最近做项目需要同事ajax发项目给我,因为是测试环境,所以需要能访问我的服务器.我服务器直接用的wampserver.因为没有接触过,所以百度了一下,都是没有成功,后来看了手册.理解了原理,自己就调试出来了.现在分享一下.(估计知识比较老了,毕竟现在用的nginx比较多.公司用的还是iis服务器 - -!) 外网访问设置 如果没有开启vhosts模块的话,一般的访问目录指向的是你的 www目录.httpd.conf里面可以看到 你会看到 类似这样的一段 <Dir