ubuntu vsftpd 530 Login incorrect 根本原因和解決方案

1 背景分析

ubuntu安裝vsftpd一般使用:
sudo apt-get install vsftpd

參照其他網上教程的配置後,在賬號、密碼、主目錄都是正確的情況下,可能會遇到賬號登錄提示 530 Login incorrect 的問題。

網絡上有好多解決方案,例如修改/etc/vsftpd.conf文件 將pam_service_name=vsftpd 修改爲 pam_service_name=ftp ,雖然能夠解決這個問題,但是這種方法其實是錯誤的。這樣由於/etc/pam.d/ftp文件不存在,等於是繞過了PAM。

2 vsftpd pam文件分析

/etc/pam.d/vsftpd 默認如下

# Standard behaviour for ftpd(8).
auth   required        pam_listfile.so item=user sense=deny file=/etc/ftpusers 
onerr=succeed
# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.
# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth   required        pam_shells.so

可能導致530錯誤的有
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

auth required pam_shells.so

2.1 /etc/ftpusers

auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
該配置項的含義是 /etc/ftpusers 中的用戶禁止登陸,如果文件不存在在默認所有用戶均允許登錄. 所以確保用戶沒在這個文件內。

2.2 pam_shells.so

auth required pam_shells.so 配置項的含義爲僅允許用戶的shell爲 /etc/shells
文件內的shell命令時,才能夠成功

cat /etc/shells 
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

而創建ftp用戶時,爲了禁止ssh登錄,一般多爲/bin/false 、/usr/sbin/nologin 等,顯然不是一個有效的bash,也就無法登錄了。

3 解決方案

1、查看/etc/ftpusers ,確保賬號沒有在這個文件內。
2、修改/etc/pam.d/vsftpd
auth required pam_shells.so修改爲->auth required pam_nologin.so 即可
3、重啓vsftpd

 



作者:L5S5S7
鏈接:https://www.jianshu.com/p/91c7d4a115e0
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章