2010-10-28 77 views
-1

我正在虛擬用戶(即用戶存儲在Berkeley DB中,不存在於操作系統級別)運行vsFTPd FTP服務器。在使用者通過/etc/pam.d/ftp驗證:vsFTPd:針對虛擬用戶的每用戶IP過濾

需要

%PAM-1.0

AUTH pam_userdb.so分貝=的/ etc/VSFTPD/vsftpd的虛擬用戶 帳戶pam_userdb.so分貝需要=在/ etc/VSFTPD/vsftpd的虛擬用戶

我想要實現經由tcp_wrappers的一個用戶級的IP濾波,用於離:

/etc/hosts.deny中:

vsftpd: [email protected] 

(用戶'toto')是vitrual用戶。

然而,TOTO可以從10.10.10.10登錄到FTP服務器:

Status: Connecting to 10.10.10.10:21... 
Status: Connection established, waiting for welcome message... 
Response: 220 "FTP server" 
Command: USER toto 
Response: 331 Please specify the password. 
Command: PASS ******** 
Response: 230 Login successful. 
Status: Connected 

如何讓VSFTPD的虛擬用戶與tcp_wrappers的工作?如何調試對tcp_wrappers的系統調用以確保vsftpd將正確的用戶名傳遞給tcp_wrappers?

回答

0

TCP包裝可能聽起來約定,但將無法正常工作(長說明),但你可以通過實現相同粒度PAM。

例如,如果您的vsFTPd是使用PAM支持(ldd/usr/sbin/vsftpd | grep pam)編譯並替換帳戶行以使用pam訪問控制,您可以找到PAM的FTP conf文件。

# vi /etc/pam.d/vsftpd 
account include password-auth (comment this line out) 
# add the following line 
account required  pam_access.so 

然後,你可以編輯/etc/security/access.conf中,創造更復雜的規則來定製您的需求,即

+ : restricted_username : 192.168.1.10 
+ : ALL EXCEPT restricted_username : ALL 
- : ALL : ALL 

以上規則將允許用戶「restricted_username」只登陸來自該特定IP,同時允許其他用戶從所有其他來源登錄。