VSFTPD 530 登录不正确

dw.*_*lod 13 centos ftp vsftpd

我正在尝试在 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
Run Code Online (Sandbox Code Playgroud)

这是 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."
Run Code Online (Sandbox Code Playgroud)

以及安全日志的输出:

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
Run Code Online (Sandbox Code Playgroud)

看起来 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
Run Code Online (Sandbox Code Playgroud)

谁能看到我错过了什么?谢谢。

the*_*hai 18

 vi /etc/pam.d/vsftp  

评论 #auth required pam_shells.so

进而

服务 vsftpd 重启
pam_shells.so 意味着应该只允许具有 shells 访问权限的用户,这就是为什么需要注释的原因。


Che*_*evy 0

这不是一个正确的答案,但我发现这是一个对我很有帮助的策略:

开始注释掉/etc/pam.d/vsftp文件中的行,看看它是否(以及何时)允许您登录。PAM 的设计目的是只报告成功或失败,而不报告原因。