Chinaunix首页 | 论坛 | 博客
  • 博客访问: 486809
  • 博文数量: 100
  • 博客积分: 7010
  • 博客等级: 少将
  • 技术积分: 995
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-22 15:44
文章分类

全部博文(100)

文章存档

2006年(90)

2005年(10)

我的朋友

分类: 系统运维

2006-03-05 20:58:59

我做的关于red hat linux学习方面的小站,有我的一些学习笔记,和学习资料下载
欢迎大家访问


我的qq: 253222170

虽然关于“Apache服务器实现用户验证”的文章很多,但本文是站长整理,修改的。绝对没问题,你照着操作就可以了。再在本站下载book-Apache服务器配置全攻略(chm)研读,你将受益非浅!---------------站长:阿泰

1。单用户验证

2。用户组验证

3。其他验证方式,ip地址,ip地址段,域



1.单用户验证

Apache服务器已经内置用户验证机制,大家只要适当的加以设置,便可以控制网站的某

些部分要用户验证。大家只要跟着我一步步做下来就应该能轻松实现用户验证。

前期准备,必须已经安装Apache,如果还没安装,或者对安装很模糊的话,请先预习

第1步

我们在/var/www(apache的主页根目录)下建立一个test目录
mkdir /var/www/test

第2步

然后我们编辑httpd.conf

添加

Alias /test"/var/www/test" #目录映射


Options Indexes MultiViews
AllowOverride AuthConfig #表示进行身份验证
Order allow,deny
Allow from all




#AllowOverride AuthConfig 表示进行身份验证 这是关键的设置

第3步

在/var/www/test创建.htaccess文件

vi /var/www/test/.htaccess

AuthName "frank share web"
AuthType Basic
AuthUserFile /var/www/test/.htpasswd
require valid-user



#AuthName 描述,随便写
#AuthUserFile /var/www/test/.htpasswd
#require valid-user允许所有合法用户访问 或者 require user frank 限制还是指定用户 ,如果要限制多个用户,可以用空格隔开多个用户名,例 require user usr1 usr2 urs3 ......

#密码文件推荐使用.htpasswd,因为apache默认系统对“.ht”开头的文件默认不允许外部读取,安全系数会高一点哦。

第4步

就是创建apache的验证用户

#htpasswd -c /var/www/test/.htpasswd frank
New password: mypassword
Re-type new password: mypassword
Adding password for user frank

#第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数

如果你们想修改密码,可以如下

htpasswd -m .htpasswd frank

第5步

ok,重启Apache服务,然后访问 http://你的网站地址/test 如果顺利的话,应该能看到一个用户验证的弹出窗口,只要填入第4步创建的用户名和密码就行

后话,为了服务器的性能,一般不推荐使用AllowOverride AuthConfig或者AllowOverride ALL,因为这会使服务器会不断的去寻找.htaccess,从而影响服务器的效能,一般我们把一些后台管理界面或者其他特殊目录可能需要加验证这个需求。



请注意的是: 如果你没有配置DNS的话。请把/etc/httpd/conf/httpd.conf中的Servername后面的值修改成你的服务器ip,如:

#Servername 192.168.0.1



2。用户组验证

其他同上面所说,注意两点即可:

1》需要建立一个组文件以确定组中的用户。 其格式很简单,可以用你喜欢的编辑器建立testgroup,例如:

GroupName: usr1 usr2 usr3 usr4 ...

它只是每组一行的一个用空格分隔的组成员列表。用.htpassws在.htpasswd里为每个用户建立密码。


2》需要修改.htaccess文件如这样:

AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/apache/passwd/.htpasswd
AuthGroupFile /usr/local/apache/passwd/testgroup
Require group GroupName

如此,GroupName组中的成员都在密码文件中有一个相应的记录, 从而允许他们输入正确的密码以进入。

除了建立组文件,还有另一种途径允许多人访问,即使用如下指令:

Require valid-user

使用上述指令,而不是require user rbowen, 可以允许密码文件中的所有用户以正确的密码进行访问。 这里甚至允许列举各个组,而为每个组建立密码文件, 其优点是,Apache只需要校验一个文件,而缺点是,必须维护众多密码文件, 而且要确保AuthUserFile指令指定了一个正确的密码文件。


3。其他验证方式,ip地址,ip地址段,域

基于用户名和密码的认证只是方法之一,时常会有不需要知道来访者是谁, 只需要知道来自哪里的情况。

Allow和Deny指令可以允许或拒绝来自特定主机名或主机地址的访问, 同时,Order指令告诉Apache处理这两个指令的顺序, 以改变过滤器。

这些指令的用法:

Allow from address

这里的address可以是一个IP地址(或者IP地址的一部分), 也可以是一个完整的域名(或者域名的一部分),还可以同时指定多个IP地址和域名。

比如,要拒绝兜售垃圾的站点:

Deny from 205.252.46.165

如此,这个指令所管辖的区域将拒绝来自该地址的访问。 除了指定IP地址,也可以指定域名,如:

Deny from host.example.com

另外,还可以指定地址或域名的一部分来阻止一个群体:

Deny from 192.101.205
Deny from cyberthugs.com moreidiots.com
Deny from ke

Order可以组合Deny和Allow指令, 以保证在允许一个群体访问的同时,对其中的一些又加以限制:

Order deny,allow
Deny from all
Allow from dev.example.com

上例首先拒绝任何人,然后允许来自特定主机的访问
阅读(750) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~