日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

87 FreeBSD連載:基于用戶的訪問(wèn)控制( 二 )


當(dāng)基于用戶的認(rèn)證和基于地址的認(rèn)證綜合使用時(shí),可以通過(guò)使用satify參數(shù)指定不同的限制條件,如果設(shè)置satify all,那么必須同時(shí)通過(guò)用戶和地址認(rèn)證才能訪問(wèn)網(wǎng)頁(yè),而設(shè)置satify any,只需要通過(guò)一個(gè)認(rèn)證客戶就能訪問(wèn)這個(gè)目錄了 。缺省情況下Satify參數(shù)的值為all 。下面為一個(gè)綜合了地址認(rèn)證和用戶認(rèn)證的.htaccess的例子,這個(gè)例子允許private.site的計(jì)算機(jī)可以不需認(rèn)證訪問(wèn)這臺(tái)服務(wù)器,而其他位置的用戶必須是group1組中的合法用戶,或者是user1、user2、user3用戶,才能訪問(wèn)這臺(tái)服務(wù)器 。
AuthUserFile /usr/local/etc/.htpasswdAuthGroupFile /usr/local/etc/.htgroupAuthName SecurityAuthAuthType Basicorder deny,allowdeny from allallow from private.siterequire group group1require user user1 user2 user3satify any其他認(rèn)證方式
Apache使用AuthType指定加密的方式,AuthType設(shè)為Basic時(shí)為使用命令htpasswd創(chuàng)建口令文件并進(jìn)行口令加密 。然而這種方式有兩個(gè)缺點(diǎn),一個(gè)為瀏覽器將在Internet上使用明文發(fā)送用戶名和口令信息,另一個(gè)是htpasswd的口令文件為普通文本文件,這樣當(dāng)用戶數(shù)目較多時(shí),查找用戶的效率就很低 。
【87 FreeBSD連載:基于用戶的訪問(wèn)控制】為了彌補(bǔ)安全性的缺點(diǎn),可以將AuthType設(shè)置為Digest,這樣就會(huì)使用Digest鑒別方式進(jìn)行認(rèn)證,此時(shí)認(rèn)證口令文件要使用AuthDigestFile來(lái)規(guī)定,而口令文件必須使用另一個(gè)加密程序htdigest產(chǎn)生和維護(hù),而hdigest的使用方法和htpasswd相同 。在Digest認(rèn)證方式下,瀏覽器不會(huì)直接發(fā)送口令的明文信息,而是在傳輸口令之前先使用MD5算法進(jìn)行編碼處理 。注意,不是所有類型的瀏覽器都支持Digest類型的鑒別方式的,只有在瀏覽器和服務(wù)器同時(shí)都支持Digest方式時(shí),這種認(rèn)證才可行 。
AuthType為Basic時(shí),是使用系統(tǒng)加密方法,一般是使用DES算法,但在FreeBSD下有可能是使用的MD5算法,但除非管理員希望在不同系統(tǒng)間共享口令文件,否則不必考慮他們使用的到底是何種算法 。需要與其他系統(tǒng)兼容時(shí),可以重新安裝DES算法 。但在系統(tǒng)使用時(shí)重新安裝加密算法,就無(wú)法重建整個(gè)口令文件,因此不推薦在系統(tǒng)使用過(guò)程中更換認(rèn)證算法,而應(yīng)該在系統(tǒng)安裝時(shí)就確定使用的認(rèn)證算法 。
為了減少用戶數(shù)量較多時(shí)服務(wù)器的處理開(kāi)銷,就必須使用數(shù)據(jù)庫(kù)技術(shù),這是因?yàn)閿?shù)據(jù)庫(kù)使用了索引技術(shù),對(duì)數(shù)據(jù)的查找就比較快速 。Unix下最簡(jiǎn)單的數(shù)據(jù)庫(kù)為使用系統(tǒng)提供的DB(或DBM)庫(kù)進(jìn)行創(chuàng)建數(shù)據(jù)庫(kù)文件的技術(shù),Apache服務(wù)器中使用模塊mod_auth_db.so對(duì)這種數(shù)據(jù)庫(kù)口令文件提供支持 。htpasswd產(chǎn)生的文本文件在有幾百個(gè)用戶時(shí)就會(huì)花費(fèi)相當(dāng)大的服務(wù)器開(kāi)銷,而DBM格式的認(rèn)證方式可以高效的支持上萬(wàn)個(gè)用戶 。
BSD風(fēng)格的Unix系統(tǒng)通常使用DB庫(kù),而其他Unix通常使用DBM庫(kù) 。因此其他Unix使用的命令和設(shè)置中應(yīng)該為dbm而非db 。
為了支持這種認(rèn)證方式,應(yīng)載入mod_auth_db.so模塊,使用Ports Collection安裝的Apache服務(wù)器缺省情況就支持這個(gè)模塊而不需要改動(dòng) ??梢宰孉pache同時(shí)支持多種認(rèn)證方式,而不會(huì)發(fā)生沖突 。
此外,配置文件中的認(rèn)證方式也需要改變,首先要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)文件,這會(huì)在通過(guò)使用dbmmanage命令第一次增加用戶時(shí)創(chuàng)建 。
# dbmmanage /usr/local/etc/users adduser user1 pass123這個(gè)命令將創(chuàng)建/usr/local/etc/usersdbm數(shù)據(jù)庫(kù)文件,并使用pass123為口令在數(shù)據(jù)庫(kù)中增加用戶user1 。然后就可以針對(duì)現(xiàn)有的數(shù)據(jù)庫(kù)文件,增加、刪除和查看用戶信息了:
# dbmmanage /usr/local/etc/httpd/usersdbm delete user2# dbmmanage /usr/local/etc/httpd/usersdbm vIEw在擁有了數(shù)據(jù)庫(kù)文件和用戶數(shù)據(jù)之后,就可以使用這種認(rèn)證方式了:

推薦閱讀