CentOS 5.3 x64でvsftpdサーバーをセットアップしようとしています。ローカルユーザーログインを機能させることができません。これが私のvsftpd.confです:
local_enable=YES
write_enable=YES
pam_service_name=vsftpd
connect_from_port_20=YES
listen=YES
pam_service_name=vsftpd
xferlog_std_format=NO
log_ftp_protocol=YES
chroot_local_user=YES
Vsftp.logの出力は次のとおりです。
Mon Sep 13 23:34:44 2010 [pid 19243] CONNECT: Client "10.0.1.138"
Mon Sep 13 23:34:44 2010 [pid 19243] FTP response: Client "10.0.1.138", "220 (vsFTPd 2.0.5)"
Mon Sep 13 23:34:44 2010 [pid 19243] FTP command: Client "10.0.1.138", "USER dwelch"
Mon Sep 13 23:34:44 2010 [pid 19243] [dwelch] FTP response: Client "10.0.1.138", "331 Please specify the password."
Mon Sep 13 23:34:44 2010 [pid 19243] [dwelch] FTP command: Client "10.0.1.138", "PASS <password>"
Mon Sep 13 23:34:44 2010 [pid 19242] [dwelch] FAIL LOGIN: Client "10.0.1.138"
Mon Sep 13 23:34:45 2010 [pid 19243] [dwelch] FTP response: Client "10.0.1.138", "530 Login incorrect."
そして安全なログの出力:
Sep 13 17:40:50 intra vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=dwelch rhost=10.0.1.138 user=dwelch
Pamがユーザーを認証していないようです。ここに私の/etc/pam.d/vsftpファイルがあります:
#%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 system-auth
account include system-auth
session include system-auth
session required pam_loginuid.so
誰かが私が欠けているものを見ることができますか?ありがとう。
vi /etc/pam.d/vsftp
コメント#auth必須pam_shells.so
その後
service vsftpd restart
私の場合、私は次の同じ問題を解決しました:
vi /etc/pam.d/vsftpd
コマンドライン#auth include system-auth
その後
サービスvsftpd再起動
これは適切な答えではありませんが、うまく機能することがわかった戦略です。
/etc/pam.d/vsftp
ファイルの行をコメント化して、ログインできるかどうか(いつアクセスできるか)を確認します。 PAMは、理由ではなく、成功または失敗のみを報告するように意図的に設計されています。
システムにFTPサーバーが1つしかありませんか?私は同様の問題を抱えていましたが、その後、問題の詳細を調べたところ、競合している2つのFTPサーバーがインストールされていました。私はそれをアンインストールし、問題は修正されました。
「yum install vsftpd」を実行した場合は、pamファイルをいじる必要はありません(通常、PAMをいじり始めると、何かがおかしくなります)。
そうでない場合は、chkconfig --list | grep ftpを実行して、何が表示されるかを確認します(vsftpdがそこに表示されるかどうかを確認してください。表示されない場合は、インストールに問題がある可能性があります)。
そして、私の最後の提案は、yum更新を実行することです。
ユーザーは有効なシェルを持っていますか?/etc/shellsリストにある必要があると思います。ユーザーは間違いなくnotファイル/ etc/vsftpd/ftpusersですか?
/etc/vsftpd/vsftpd.confを確実に編集していることを確認してください。CentOSでは、/ etc/vsftpd.confを編集していました。
vsftpdは少し手間がかかる可能性があり、エラーの報告には向いていません。それと固執する私は非常に類似した問題で髪を引き裂いていた、それは常にシンプルな解決策でした。