Ssl

vsftpd 錯誤:530 登錄不正確(以及在本網站上嘗試其他解決方案時的各種其他問題)

  • October 25, 2021

我知道這個問題已經被問過無數次了,但我覺得我已經嘗試了所有可能的解決方案,但似乎都沒有奏效。

我讀過並嘗試使用的一些文章:

vsftpd 錯誤 530 登錄不正確發生在有效憑據和一個連結到的 5 篇文章中。 AskUbuntu - vsftpd 530 登錄不正確,大約有 10 個提供相同的解決方案。 LinuxQuestions.org - vsftpd 登錄不正確

我曾經為主動和被動 FTP 啟用了 UFW(允許 20:22/tcp 和 20000:20200/tcp),但在某些時候禁用了整個功能。

我嘗試使用 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 G6950@2.800GHz (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

Edit1:編輯 /etc/pam.d/vsftpd 中的錯別字

發布問題後,我嘗試了一段時間,但無濟於事。快進一天,我決定徹底清除作業系統,重新安裝並讓 vsftpd 成為在作業系統基礎之後要做的第一件事。因此,我不確定我所做的更改是否解決了這個問題,或者在作業系統的初始安裝過程中是否出現了問題,但無論如何我們都在這裡:

我完全困惑為什麼其他有同樣問題的人沒有提供任何解決方案,直到我閱讀了 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

但老實說,我懷疑這改變了本地使用者登錄的任何內容,這是我最初的問題。

引用自:https://serverfault.com/questions/964773