■ 枝江市職業(yè)教育中心 楊華 枝江市顧家店初級中學(xué) 劉興波
編者按:在VSFTPD 本地用戶模式配置中,有幾種故障在初學(xué)者的配置中比較常見,本文將加以介紹。
VSFTPD 有三種用戶訪問驗(yàn)證方式:匿名開放模式無需密碼認(rèn)證即可直接登錄到FTP 服務(wù)器;本地用戶模式是通過系統(tǒng)本地的賬戶密碼信息登錄到FTP 服務(wù)器;虛擬用戶模式是通過創(chuàng)建獨(dú)立的FTP 用戶數(shù)據(jù)庫文件來進(jìn)行認(rèn)證并登錄到FTP服務(wù)器,相較來說它也是最安全的認(rèn)證模式。
在實(shí)際生產(chǎn)環(huán)境中,本地用戶模式配置簡單,安全性有一定保障,如果用戶規(guī)模不大,這種方式是不錯(cuò)的選擇。以下幾種故障在初學(xué)者的配置中較常見,且現(xiàn)有文檔中少有介紹,根據(jù)筆者平時(shí)反復(fù)實(shí)驗(yàn)、調(diào)試總結(jié)得出部分結(jié)論。
故障分析:
首先在VSFTP 服務(wù)器端已停用匿名訪問模式,啟用本地用戶訪問,而且通過FTP工具或?yàn)g覽器可以正常通過用戶名及密碼登錄。且在資源管理器中可通過鼠標(biāo)右鍵選擇“登錄”,出現(xiàn)登錄窗口,可以正常登錄了,但不能每次都這樣。通過抓包分析,發(fā)現(xiàn)如圖1 所示故障信息。
原來,系統(tǒng)默認(rèn)用匿名去登錄,但在FTP 服務(wù)器端未啟用匿名訪問,所以就出現(xiàn)權(quán)限拒絕的提示嗎?但這樣也不應(yīng)該影響正常的本地用戶名訪問。經(jīng)過對配置文件中關(guān)于本地用戶選項(xiàng)的深入分析,終于發(fā)現(xiàn)了端倪。如下兩項(xiàng)配置參數(shù):
userlist_deny=YES 啟用“禁止用戶名單”,名單文件為ftpusers 和user_list
userlist_enable= YES 開啟用戶作用名單文件功能
以上配置可以拒絕特 定的用戶登錄。打開user_list配置文件,果然anonymous 在列,將其刪除。
[root@hbzj ftptest]# vim /etc/vsftpd/user_list
anonymous
root
………
重新登錄,當(dāng)客戶端試圖用anonymous 連接時(shí),服務(wù)端檢測配置文件發(fā)現(xiàn)匿名方式停用,但它沒有在拒絕列表中,所以客戶端瀏覽器不會收到一個(gè)拒絕權(quán)限的響應(yīng),當(dāng)匿名登錄超時(shí),就自然跳到登錄窗口要求用戶輸入用戶名及密碼了。
故障分析:
圖1 資源管理器方式登錄提示錯(cuò)誤信息
先在本機(jī)通過連接回環(huán)地址,發(fā)現(xiàn)連接還是比較快的,沒有出現(xiàn)卡頓。通過Ping 測試到FTP 服務(wù)的連接狀況,一切正常。換其他客戶端連接,也是出現(xiàn)同樣情況。
整個(gè)網(wǎng)絡(luò)連通沒有問題,就出在服務(wù)器的某項(xiàng)配置上,再 查 看vsftpd.conf 配置沒發(fā)現(xiàn)什么異常。
通過抓包信息發(fā)現(xiàn),認(rèn)證過程中延遲在20 s 左右,這20 s 花在了哪里呢?筆者通過認(rèn)真查詢vsftpd 主配置文件中參數(shù)說明,發(fā)現(xiàn)reverse_lookup_enable 參數(shù)可能會出現(xiàn)較大的延遲。
關(guān)于該參數(shù)的注釋信息如圖2 所示。意思是:如果希望VSFTPD 在PAM 身份 驗(yàn)證之前將IP 地址轉(zhuǎn)換為主機(jī)名,請?jiān)O(shè)置為YES。如果使用pam_訪問(包括主機(jī)名),這將非常有用。如果希望VSFTPD 在對某些主機(jī)名的反向查找可用且名稱服務(wù)器暫時(shí)不響應(yīng)的環(huán)境中運(yùn)行,則應(yīng)將此設(shè)置為“否”以避免性能問題。
默認(rèn)值:是。
既然默認(rèn)是YES,而且會嘗試反解析,這里就修改一下。在/etc/vsftpd/vsftpd. conf 文件中增加“reverse_ lookup_enable =NO”,并 重啟VSFTPD 服務(wù)后,問題解決。
注意:可以把resolv.conf中的內(nèi)容清空也能解決這個(gè)問題,但會影響到DNS 的解析。
故障分析:
有一個(gè)本地賬戶DHM 信息為dhm:x:1012:1012::/home/dhm:/sbin/nologin
按照正常配置,登錄成功后就轉(zhuǎn)到自己的家目錄了,但卻跳到了另一個(gè)目錄/home/ ftptest,而且試著用另一個(gè)本地賬戶登錄,也是同樣轉(zhuǎn)到該目錄。筆者通過查看本地賬戶配置文件,發(fā)現(xiàn)該目錄屬于賬戶ftptest。還是先檢查主配置文件vsftpd.conf,終于找到該賬戶的蹤跡:
圖2 reverse_lookup_enable 參數(shù)的注釋信息
guest_username= ftptest
原來之前配置過的虛擬用戶登錄,這項(xiàng)沒有注釋掉。這樣以來,所有登錄賬戶都映射到這個(gè)虛擬賬戶上,自然登錄的主目錄就是該賬戶的家目錄了。把此項(xiàng)注釋掉,重啟FTP 服務(wù),故障排除。
在新版本中,VSFTPD 增強(qiáng)了安全檢查,如果用戶被限定在了其主目錄下,則該用戶的主目錄不能再具有寫權(quán)限了!如果檢查發(fā)現(xiàn)還有寫權(quán)限,就會報(bào)該錯(cuò)誤。
方法一:將用戶主目錄去除寫權(quán)限。
chmod a-w /home/XX/
但是這樣用戶就不能進(jìn)行寫操作了。
方法二:在vsftpd.conf中新增“allow_writeable_chroot=YES”配置,允許用戶具有主目錄寫權(quán)限,這樣用戶被限定在了主目錄中,并且具有寫權(quán)限了。