ubuntu vsftpd 530 Login incorrect根本原因と解決策

1698 ワード

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=succeedauth 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/shelsファイル内の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を再起動