为了弥补安全性的缺点,可以将AuthType设置为Digest,这样就会使用Digest鉴别方式进行认证,此时认证口令文件要使用AuthDigestFile来规定,而口令文件必须使用另一个加密程序htdigest 产生和维护,而hdigest的使用方法和htpasswd相同。
在Digest认证方式下,浏览器不会直接发送口令的明文信息,而是在传输口令之前先使用MD5算法进行编码处理。注意,不是所有类型的浏览器都支持Digest类型的鉴别方式的,只有在浏览器和服务器同时都支持Digest方式时,这种认证才可行。AuthType为Basic时,是使用系统加密方法,一般是使用DES算法,但在FreeBSD下有可能是使用的MD5算法,但除非管理员希望在不同系统间共享口令文件,否则不必考虑他们使用的到底是何种算法。需要与其他系统兼容时,可以重新安装DES算法。但在系统使用时重新安装加密算法,就无法重建整个口令文件,因此不推荐在系统使用过程中更换认证算法,而应该在系统安装时就确定使用的认证算法。
为了减少用户数量较多时服务器的处理开销,就必须使用数据库技术,这是因为数据库使用了索引技术,对数据的查找就比较快速。Unix下最简单的数据库为使用系统提供的DB(或DBM)库进行创建数据库文件的技术,Apache 服务器中使用模块mod_auth_db.so对这种数据库口令文件提供支持。htpasswd产生的文本文件在有几百个用户时就会花费相当大的服务器开销,而DBM格式的认证方式可以高效的支持上万个用户。
BSD风格的Unix系统通常使用DB库,而其他Unix通常使用DBM库。因此其他Unix使用的命令和设置中应该为dbm而非db。
为了支持这种认证方式,应载入mod_auth_db.so模块,使用Ports Collection安装的Apache服务器缺省情况就支持这个模块而不需要改动。可以让Apache同时支持多种认证方式,而不会发生冲突。
此外,配置文件中的认证方式也需要改变,首先要创建数据库文件,这会在通过使用dbmmanage命令第一次增加用户时创建。
# dbmmanage /usr/local/etc/users adduser user1 pass123这个命令将创建/usr/local/etc/usersdbm数据库文件,并使用pass123为口令在数据库中增加用户user1。然后就可以针对现有的数据库文件,增加、删除和查看用户信息了:
# dbmmanage /usr/local/etc/httpd/usersdbm delete user2
# dbmmanage /usr/local/etc/httpd/usersdbm view在拥有了数据库文件和用户数据之后,就可以使用这种认证方式了:
AuthName DBMTest
AuthType Basic
AuthDBUserFile /usr/local/etc/usersdbm
require valid-user可以使用dbmmanage命令也可以用来管理组,例如将user1加入group1组,但必须添加用户的同时进行设置,需要使用dhmmanage的另一个参数:
观看地址: http://www.qqread.com/freebsd/s348201.html相关专题
- 访问控制列表(ACL)介绍 (181篇文章)
- 访问控制列表 (124篇文章)
- FreeBSD系统安全管理 (8828篇文章)
- FreeBSD使用教程 (6592篇文章)
- Freebsd频道 (698篇文章)
- FreeBSD系统安装与配置之准备篇 (1753次浏览)
- FreeBSD入门安装及汉化 (1472次浏览)
- FreeBSD下安装GNOME桌面 (971次浏览)
- FreeBSD 5.0硬盘安装指南 (707次浏览)
- freebsd5.2.1上安装vmware 3.2.1 (610次浏览)
- FreeBSD 5.1安装VMware全部过程 (571次浏览)
- FreeBSD连载(72):设置和使用DHCP (563次浏览)
- 使用FreeBSD的原因 (506次浏览)
- FreeBSD系统终极安装手册(图) (474次浏览)
- FreeBSD5.3下安装Apache+PHP+MySQL+Tomcat (453次浏览)



