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 访问权限的用户,这就是为什么需要注释的原因。
这不是一个正确的答案,但我发现这是一个对我很有帮助的策略:
开始注释掉/etc/pam.d/vsftp文件中的行,看看它是否(以及何时)允许您登录。PAM 的设计目的是只报告成功或失败,而不报告原因。
| 归档时间: |
|
| 查看次数: |
54511 次 |
| 最近记录: |