vsftpd 錯誤:530 登錄不正確(以及在本網站上嘗試其他解決方案時的各種其他問題)
我知道這個問題已經被問過無數次了,但我覺得我已經嘗試了所有可能的解決方案,但似乎都沒有奏效。
我讀過並嘗試使用的一些文章:
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
但老實說,我懷疑這改變了本地使用者登錄的任何內容,這是我最初的問題。