为了更好的控制对网站资源的访问,可以为特定的网站目录添加访问授权。配置客户机地址限制,用户授权限制,这两种访问控制方式都应用于httpd.conf配置文件中的目录区域<Directory 目录位置>......</Directory> 范围内

1.客户机地址限制

通过配置项 Order,Deny from ,Allow from ,可以根据客户机的主机名或IP地址来决定是否允许客户端访问。其中Order 用于设置限制顺序,Deny from 和 Allow from 用于设置具体限制内容。

使用Order 配置项时,可以设置为 allow,deny 或者 deny,allow. 以决定主机一个用 允许,拒绝 策略的先后顺序。

allow , deny:先允许后拒绝,默认拒绝所有未明确允许的客户机地址。

deny,allow:先拒绝后允许,默认允许所有未明确拒绝的客户机地址。

使用Allow 和 Deny 配置项时,需要设置客户机地址以构成完整的限制策略,地址的xingshi可以使IP地址,网络地址,主机名,域名,使用名称 all 时表示任意地址,限制策略的格式如下所示:

Deny from address1 address2

Allow from address1 address2

通常情况下,网站服务器是对所有客户机开放的,网页文档目录并未做任何限制。因此使用的是Allow from all 的策略,表示允许任何客户机访问。

例子:

<Directory "/usr/local/httpd/htdocs">

    ......    //省略部分

    Order allow,deny

    Allow from all

</Directory>

需要使用“仅允许“的限制策略时,应将处理顺序改为”allow,deny“,并且明确设置允许策略,只永续一部分主机访问。例如,只希望IP地址为192.168.1.195 工作用机能访问AWStats 系统(一个管理网站的系统),则针对AWStats 系统的目录区域做一下设置:

<Directory "/usr/local/awstats/wwwroot">

    ......     //省略部分内容

    Order allow,deny

    Allow from 192.168.1.195

</Directory>


反之,需要使用”仅拒绝“的限制策略时,应将处理顺序改为”deny,allow“,并明确设置拒绝策略,只禁止一部分主机访问。例如希望一下两个网段,不能访问。其他网段都可以访问的配置:

<Directory "/usr/local/awstats/wwwroot">

    ......    //省略部分内容

    Order deny,allow

    Deny from 192.168.0.0/24 192.168.1.0/24

</Directory>

当从未被授权的客户机访问网站目录时,将被拒绝访问。在不同的浏览器中拒绝的信息可能略有差异

2.用户授权限制

httpd 服务器支持使用摘要认证(Digest)和基本认证(Basic)两种方式。使用摘要认证需要在编译httpd之前添加 ”--enable-auth-digest“选项,但并不是所有的浏览器都支持 摘要认证;而基本认证是httpd服务的基本功能,不需要预先设置特别的选项。

基本用户的访问控制包含认证和授权两个过程,认证(Authentication)是指识别用户身份的过程,授权(Authorization)是允许特定用户访问特定目录区域的过程。下面将以基本认证方式为例,对AWStats日志分析系统添加用户授权限制。

1.创建用户认证数据文件

    httpd的基本认证通过校验用户名,密码组合来判断是否允许用户访问。授权访问的用户账号需要事先建立,并保存在固定的数据文件中。使用专门的htpasswd工具程序,可以创建授权用户数据文件,并维护其中的用户账号。

    使用htpsswd工具时,必须制定用户数据文件的位置,添加”-c“选项表示新建立此文件。例如,执行以下操作可以新建数据文件/usr/local/conf/.awspwd,其中包含一个名为webadmin的用户信息。