關於vsftpd同時使用系統用戶和虛擬用戶驗證

火星人 @ 2014-03-04 , reply:0
←手機掃碼閱讀

關於vsftpd同時使用系統用戶和虛擬用戶驗證

記得有朋友曾經問過vsftpd可不可以同時使用系統用戶和虛擬用戶,我當時回答不可以。
對PAM了解不夠,所以這個答案是錯誤的 :oops:

今天想起這個問題,決定做個試驗來看看,事實證明是可以的。

我先了解了一PAM,看了這個文檔,
http://www.linuxmine.com/5214.html

知道了PAM的驗證模塊是可以串在一起的,通過控制標誌(control-flag)來控制。
文檔里也給出了類似的一個例子。

為了打開匿名FTP,需要使用以下的配置命令代替默認的配置(OTHER):

  # ftpd; add ftp-specifics. These lines enable anonymous ftp over
  # standard UNIX access (the listfile entry blocks access to
  # users listed in /etc/ftpusers)
  #
  ftpd auth sufficient /usr/lib/security/pam_ftp.so
  ftpd auth required /usr/lib/security/pam_unix_auth.so use_first_pass
  ftpd auth required /usr/lib/security/pam_listfile.so
  onerr=succeed item=user sense=deny file=/etc/ftpusers

  由於需要忽略默認的配置入口,所以第二行是必須要有的。這還是一個層疊模塊的例子。使用sufficient控制標誌,表示如果這個模塊驗證通過,就不必使用後面的層疊模塊進行驗證了;use_first_pass表示使用為前面的模塊(pam_ftp)輸入的密碼。

我的試驗環境:
RedHat AS 4
vsftpd-2.0.1-5
pam-0.77-65.1

vsftpd使用的pam文件
auth    sufficient      pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient      pam_userdb.so db=/etc/vsftpd/vsftpd_login

auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
auth       required     pam_stack.so service=system-auth
auth       required     pam_shells.so
account    required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth

可以看出前面兩行是對虛擬用戶的驗證,後面是對系統用戶的驗證。
對虛擬用戶的驗證使用了sufficient這個控制標誌。
這個標誌的含義是如果這個模塊驗證通過,就不必使用後面的層疊模塊進行驗證了;但如果失敗了,
就繼續後面的認證,也就是使用系統真實用戶的驗證。

vsftpd.conf的內容(節選)
pam_service_name=vsftpd.mixed
listen=YES
tcp_wrappers=YES
local_enable=YES
guest_enable=YES
guest_username=ftp
listen_port=2121

如果加上anonymous_enable=YES,匿名用戶也是可以登錄的。
這樣的話,就可以同時支持匿名用戶,系統真實用戶和虛擬用戶了。

[ 本帖最後由 wolfg 於 2005-11-29 14:12 編輯 ]
《解決方案》

wolfg老大文章很好,很有深度,我也曾經在這方面得到你的指導,贊一下~!
《解決方案》

贊一個。
《解決方案》

回復 1樓 wolfg 的帖子

我想問一下,老大要是碰到問題,一般都是怎麼去查資料的?怎麼去解決問題的?
我很菜,一般碰到問題就Google,Google找不到最多也就是問問人,發發貼子。
《解決方案》

原帖由 lingniao 於 2005-11-30 13:04 發表
我想問一下,老大要是碰到問題,一般都是怎麼去查資料的?怎麼去解決問題的?
我很菜,一般碰到問題就Google,Google找不到最多也就是問問人,發發貼子。


我跟你一樣,用google。

我收集了一些鏈接,發在這裡了
http://bbs.chinaunix.net/viewthread.php?tid=635010&extra=page%3D1
《解決方案》

收藏!
《解決方案》

兩個配置文件,兩個pam就行了。
《解決方案》

老大
按照你的說明作了

本地用戶還是沒法訪問 匿名用戶也沒法訪問

僅僅虛擬用戶可以訪問
《解決方案》

原帖由 hiame 於 2006-3-13 13:45 發表
老大
按照你的說明作了

本地用戶還是沒法訪問 匿名用戶也沒法訪問

僅僅虛擬用戶可以訪問
檢查系統log
/var/log/messages
/var/log/secure
《解決方案》

老大真是高手




[火星人 via ] 關於vsftpd同時使用系統用戶和虛擬用戶驗證已經有204次圍觀

http://www.coctec.com/docs/service/show-post-12701.html