Ftp

“/etc/pam.d/vsftpd”被阻止的使用者仍然可以“lftp”登錄

  • September 26, 2013

我在機器 192.168.122.50 上執行了一個 ftp 伺服器

以下是 /etc/vsftpd/vsftpd.conf 文件中的最後三個指令

pam_service_name=vsftpd
#userlist_enable=YES
#userlist_deny=YES

以下是 /etc/pam.d/vsftpd 文件的內容

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth

以下是 /etc/vsftpd/ftpusers 文件的內容

#This is the list of blocked users as per the following line /etc/pam.d/vsftpd
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

因此,例如,兩個使用者root應該被阻止訪問這台機器上的 ftp 伺服器,並且ssam應該被允許。

現在從客戶端機器 192.168.0.2,我嘗試了這個。

am@centos ~]$ ftp 192.168.122.50
Connected to 192.168.122.50 (192.168.122.50).
220 (vsFTPd 2.2.2)
Name (192.168.122.50:ssam): ssam    
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> exit
221 Goodbye.
[ssam@centos ~]$ ftp 192.168.122.50
Connected to 192.168.122.50 (192.168.122.50).
220 (vsFTPd 2.2.2)
Name (192.168.122.50:ssam): root
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp> bye
221 Goodbye.

輸出與pam設置內聯,因為使用者ssam被允許並且使用者root被阻止。

現在我已經嘗試在客戶端使用 lftp 命令以 root 使用者連接到伺服器。

[ssam@centos ~]$ lftp root@192.168.122.50
Password: 
lftp root@192.168.122.50:~>

當我得到 lftp 提示時,登錄確實可能被阻止使用者 。root現在我嘗試執行一個命令。

lftp root@192.168.122.50:~>
ls: Login failed: 530 Login incorrect.

現在似乎伺服器已經恢復正常,它告訴我我無法做任何其他事情。但是可插拔的身份驗證模組應該root在第一時間阻止使用者進入伺服器。

有人可以為我解釋一下嗎?

lftpIMO,這是客戶工作的一種方式。檢查日誌文件/var/log/secure(在 RHEL/CentOS 上)或類似的事件,例如

pam_listfile(vsftpd:auth): Refused user root for service vsftpd

我通過嗅探 FTP 流量(RHEL 6.x、vsftpd 2.2.2、lftp 4.0.9)驗證了這種行為。直到您輸入一些有效的 FTP 命令 (aka ls) 才建立 FTP 連接,而不是當您輸入使用者名和密碼時。

vim /etc/vsftpd/vsftpd.conf 

來倒數第二行….userlist_enable="NO"

保存它,然後

# vim /etc/vsftpd/ftpusers

從中刪除“root”使用者…在此文件中

不允許通過 ftp 登錄的使用者。保存並重新啟動服務。我希望它會工作……

引用自:https://unix.stackexchange.com/questions/92429