vsftpd 错误:530 登录不正确(尝试本网站上的其他解决方案时也会出现各种其他错误)

vsftpd 错误:530 登录不正确(尝试本网站上的其他解决方案时也会出现各种其他错误)

我知道这个问题已经被问过无数次了,但是我觉得我已经尝试了所有可能的解决方案,但似乎都没有效果。

我读过并尝试使用的一些文章:

vsftpd 出现错误 530 登录不正确,且无法使用有效凭据以及其中一个链接到的 5 篇文章。 AskUbuntu - vsftpd 530 登录不正确还有约 10 个提供相同解决方案。 LinuxQuestions.org - vsftpd 登录不正确

我曾经为主动和被动 FTP 启用过 UFW(允许 20:22/tcp 和 20000:20200/tcp),但后来禁用了整个 UFW。

我尝试使用 xinetd,但它的工作效果与 vsftpd-standalone 一样好,除了错误“500 OOPS:为 IPv4 和 IPv6 运行两个 vsftpd 副本”和“500 OOPS:无法绑定正在监听的 IPv4 套接字”。然而,在解决这两个问题后,又出现了同样的问题(错误 530)。

我的正常配置文件(/etc/vsftpd.conf)如下所示:

anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
ftpd_banner=Welcome to the 'server name' FTP server.
deny_email_enable=YES
banned_email_file=/etc/vsftpd.banned_emails
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/etc/vsftpdjail
listen=YES
#listen_ipv6=YES
ssl_enable=YES
force_local_logins_ssl=NO
force_local_data_ssl=NO
#ssl_tlsv1=YES
#ssl_sslv2=NO
#ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/certs/vsftpd.pem
require_ssl_reuse=NO
pasv_min_port=20000
pasv_max_port=20200
pasv_enable=YES
pam_service_name=vsftpd

但是,从deny_email_enable上向下注释所有内容(禁用被动、ssl 和 pam),除“listen=YES”外,不会产生其他结果。

vsftpd.service 在 systemctl 中启用并启动

xinetd.service 在 systemctl 中被禁用并停止(经过一些测试)

PAM 文件(/etc/pam.d/vsftpd)包含:

#%PAM-1.0
auth    required    pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
#@include common-account
#@include common-session
#@include common-auth
auth    required    pam_shells.so

所引用的文件确实存在,并且具有权限:root:root 744

我的用户名不在 /etc/ftpusers 中

我的用户的登录 shell (/bin/bash) 位于 /etc/shells 中

我的用户在 /etc/passwd 中

每当我尝试登录时,我都会一次又一次地收到同样的错误:

Connecting to 192.168.178.49:21...
Connection made, awaiting welcome message...
Initializing TLS...
Checking certificate...
Established TLS-connection.
USER username
331 Please specify the password.
PASS ************
530 Login incorrect.
Fatal error: Can't connect to server.

‘sudo netstat -tulpn’显示: tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 342/vsftpd

/var/log/vsftpd.log 一遍又一遍地显示相同的消息:

CONNECT: Client "192.168.178.69"
[username] FAIL LOGIN: Client "192.168.178.69"

无需任何进一步的信息。(使用与我通过 SSH 和本地服务器登录时相同的登录凭据)

在连续 6 个小时研究这个问题后,我完全没有主意了。因此,任何帮助都非常感谢。

另外,系统信息: Processor: 2xIntel Pentium [email protected] (intel-ucode IS installed) OS: Arch Linux 5.0.9-arch1-1-ARCH x86_64 (Up-to-date and installed today) RAM: 8192MB Internet both Server and Client: 1Gbps cat 5e cable directly to modem No firewall on client or modem

编辑1:编辑/etc/pam.d/vsftpd 中的拼写错误

答案1

只是为了增加无数的答案 - 我为用户帐户分配了一个非标准 shell,需要将其添加到 /etc/shells。

答案2

在我发布问题后,我又尝试了一段时间,但无济于事。快进一天,我决定彻底清除操作系统,重新安装,并将 vsftpd 作为 OS 基本知识之后要做的第一件事。因此,我不确定我所做的更改是否解决了问题,或者在操作系统的初始安装过程中是否出了问题,但无论如何,我们还是开始吧:

我完全不明白为什么其他遇到同样问题的人没有给出任何解决方案,直到我读到Arch Linux vsftpd 故障排除页面的最后一条其中指出,PAM 已于 2019 年更新(!),并且当地的用户现在的工作方式不同。还提供了一个示例 /etc/pam.d/vsftpd 文件:

#%PAM-1.0
account    required    pam_listfile.so onerr=fail item=user sense=allow file=/etc/vsftpd.user_list
account    required    pam_unix.so
auth       required    pam_unix.so

突然间,它就起作用了。

当我测试并启用“匿名”用户时,我只在配置文件中添加了一行,然后出现了“目录列表”错误。同一页面的故障排除部分也给出了建议。

seccomp_sandbox=NO

但我真的怀疑这是否会对本地用户登录产生任何改变,这是我最初的疑问。

答案3

Wisegay,我认为这可能是用户目录权限问题,请检查一下网址https://help.ubuntu.com/community/vsftpd用于用户目录权限和 pam 文件内容。希望这对您有所帮助。

答案4

有一段时间没使用 vsftpd 了,忘记了这个好530: login incorrect东西。

我花了几个小时尝试 Google 上所有可能的解决方案,最后终于找到了问题的根本原因:

虽然pam_service_name=ftp记录为默认值,但默认最小配置不起作用(RHEL7.5,vsftpd3.0.2)抛出login incorrect错误。

pam_service_name=vsftpd设置后错误就消失了/etc/vsftpd/vsftpd.conf

相关内容