日期:2014-05-16  浏览次数:20909 次

apache层的账户权限控制,以及apache黑名单白名单过滤功能

1. 修改虚拟主机配置

<Directory /var/www>#目录路径

                ...
                AllowOverride All #允许.htaccess覆盖配置文件,使.htaccess生效

                ...
</Directory(允许)


2.在需要权限控制的目录下创建.htaccess

#比如要控制 /var/www/quanxian 目录,在/var/www/quanxian目录中创建.htaccess文件,填写如下内容

AuthUserFile /var/www/quanxian/.htpwd #[权限控制文件]
AuthType Basic
AuthName "[描述信息]"
ErrorDocument 401 /var/www/err_401.html #这句话是可以没有的
require valid-user #认证方式:用户认证(valid-user)或组认证(valid-group).


3.生成加密文件

sudo htpasswd -bc /var/www/quanxian/.htpwd wangdatestuser wangdatestpwd #

htpasswd的命令详解网上有好多,copy一个过来(http://hi.baidu.com/luoxiandong99/item/bd14b7462fe61ef7bdf45140)

##################################################################################################

apache htpasswd命令选项参数说明

  -c 创建一个加密文件

  -n 不更新加密文件,只将apache htpasswd命令加密后的用户名密码显示在屏幕上

  -m 默认apache htpassswd命令采用MD5算法对密码进行加密

  -d apache htpassswd命令采用CRYPT算法对密码进行加密

  -p apache htpassswd命令不对密码进行进行加密,即明文密码

  -s apache htpassswd命令采用SHA算法对密码进行加密

  -b 在apache htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码

  -D 删除指定的用户

apache htpasswd命令用法实例

1、利用htpasswd命令添加用户

  htpasswd -bc D:\licang\passwd yingzi 1234

2、在原有密码文件中增加下一个用户

  htpasswd -b D:\licang\passwd ludi 1234

3、如何不更新密码文件,只显示加密后的用户名和密码

  htpasswd -nb yingzi 1234

4、利用htpasswd命令删除用户名和密码

  htpasswd -D D:\licang\passwd yingzi

5、利用htpasswd命令修改密码

  htpasswd -D D:\licang\passwd yingzi

  htpasswd -b D:\licang\passwd yingzi 5678

##################################################################################################


4.以上就配置完整体的基于apache层的账户访问权限控制,

a.创建白名单,只有(192.168.1.1, 和 192.168.1.2)能访问这个目录

在.htaccess中加入下面的内容

Order Deny,Allow#(1)
Allow from 192.168.1.1 192.168.1.2#(2)
Deny from All#(3)

#注意(1)的顺序,它很重要,(2),(3)的顺序不重要,意思是先拒绝所有的访问,再看看是否在Allow的明白里,如果在的话,就通过

b.创建黑名单,(192.168.1.1, 和 192.168.1.2)不能能访问这个目录

在.htaccess中加入下面的内容

Order Allow,Deny #(1)
Allow from all#(2)
Deny from 192.168.1.1 192.168.1.2#(3)

#注意(1)的顺序,它很重要,道理同白名单