1 Анализ предыстории Обычно используется установка Ubuntu VSFTPD:
Моя версия сервиса для centOS следующая:
[корень@itsvse~]# vsftpd -версия
vsftpd: version 3.0.2
После обращения к конфигурации других онлайн-уроков, если учетная запись, пароль и домашняя папка верны, вы можете столкнуться с проблемой неправильного входа в подсказку 530. В Интернете есть множество решений, например, изменение файла /etc/vsftpd.conf для изменения pam_service_name=vsftpd на pam_service_name=ftp, что может решить эту проблему, но на самом деле этот метод ошибочный.Это связано с тем, что файл /etc/pam.d/ftp не существует, равнообходил PAM。
2 vsftpd PAM-анализ
/etc/pam.d/vsftpd 默认如下
#%PAM-1.0 сессия необязательна pam_keyinit. Поэтому принудительно отменить Требовалась аутентификация pam_listfile.so item=User Sense=Deny file=/etc/vsftpd/ftpusers onerr=succeed Авторизация требовала pam_shells.so Авторизация включать пароль-аутентификацию аккаунт включить пароль-аутентификацию Требуется сессия pam_loginuid.so Сессия включает аутентификацию пароля Есть вещи, которые могут привести к ошибкам 530
требуется авторизация pam_listfile.so item=User Sense=Deny file=/etc/ftpusers onerr=Succeed
и
Авторизация требовала pam_shells.so
2.1 /etc/ftpusers
требуется авторизация pam_listfile.so item=User Sense=Deny file=/etc/ftpusers onerr=Succeed Смысл этого элемента конфигурации таков: пользователям в /etc/ftpusers запрещено входить в систему, если файл отсутствует в стандартном режиме — все пользователи могут войти. Поэтому убедитесь, что пользователь не находится в этом файле.
2.2 pam_shells.so
Для аутентификация требовалась конфигурационная pam_shells.so с командами shell в файле
cat /etc/shells # /etc/shells: действительные оболочки для входа
/bin/sh
/bin/dash
/bin/bash
/bin/rbash При создании FTP-пользователя,Чтобы отключить вход в SSH, обычно /bin/false, /usr/sbin/nologinи так далее, очевидно, это не валидный bash, поэтому войти нельзя.
3 Решение
1. Проверьте /etc/ftpusers, чтобы убедиться, что аккаунта нет в этом файле. 2. Модифицировать /etc/pam.d/vsftpd Модифицировать авторизацию, требующую pam_shells.so в ->требуется авторизация pam_nologin.so (Или оставьте комментарий на эту строку) 3. Перезапуск vsftpd
(Конец)
|