1 Analiza tła Instalacja Ubuntu VSFTPD jest zazwyczaj używana:
Moja wersja usługi centOS wygląda następująco:
[root@itsvse~]# vsftpd -version
vsftpd: version 3.0.2
Po sprawdzeniu konfiguracji innych tutoriali online, jeśli konto, hasło i katalog domowy są poprawne, możesz napotkać problem z błędnym promptem logowania do konta 530. W Internecie istnieje wiele rozwiązań, takich jak modyfikacja pliku /etc/vsftpd.conf na pam_service_name=vsftpd na pam_service_name=ftp, co może rozwiązać ten problem, ale ta metoda jest w rzeczywistości błędna.Dzieje się tak, ponieważ plik /etc/pam.d/ftp nie istnieje, równeOmijany PAM。
2 analiza plików PAM VSFTPD
/etc/pam.d/vsftpd 默认如下
#%PAM-1.0 Sesja opcjonalna pam_keyinit.więc wymusz odwołanie Wymagane uwierzytelnienie pam_listfile.So item=user sense=deny file=/etc/vsftpd/ftpusers onerr=sukces Autoryzacja wymagana pam_shells.więc Auth include password-auth Konto zawiera hasło-uwierzytelnianie Sesja wymagana pam_loginuid.so sesja include password-auth Istnieją rzeczy, które mogą powodować błędy 530
Wymagane uwierzytelnienie pam_listfile.więc item=user sense=deny file=/etc/ftpusers onerr=succeed
i
Autoryzacja wymagana pam_shells.więc
2.1 /etc/ftpusers
Wymagane uwierzytelnienie pam_listfile.więc item=user sense=deny file=/etc/ftpusers onerr=succeed Znaczenie tego elementu konfiguracji jest takie, że użytkownicy w /etc/ftpusers mają zakaz logowania, jeśli plik nie istnieje domyślnie – wszyscy użytkownicy mogą się zalogować. Upewnij się więc, że użytkownik nie ma go w tym pliku.
2.2 pam_shells.so
Auth-a wymagał pam_shells.so elementu konfiguracyjnego z poleceniami powłoki w pliku
kot /etc/muszle # /etc/shells: ważne powłoki logowania
/bin/sh
/bin/dash
/bin/bash
/bin/rbash Tworząc użytkownika FTP,Aby wyłączyć logowanie SSH, ogólnie /bin/false, /usr/sbin/nologinitd., oczywiście nie jest to ważny bash, więc nie możesz się zalogować.
3 Rozwiązanie
1. Sprawdź /etc/ftpusers, aby upewnić się, że konto nie znajduje się w tym pliku. 2. Zmodyfikuj /etc/pam.d/vsftpd Zmodyfikuj wymagane uwierzytelnienie pam_shells.so na -> wymagane uwierzytelnienie pam_nologin.so (Albo skomentuj tę linijkę) 3. Restart vsftpd
(Koniec)
|