включить последний вход для FTP-сервера

Вопрос или проблема

Пытаюсь использовать pam_lastlog для регистрации последнего входа на ftp сервере, vsftp с виртуальными пользователями. Виртуальные пользователи не присутствуют как “реальные” пользователи в системе, но используют модуль pam_pwdfile для аутентификации. Следовал в основном рекомендациям из https://wiki.archlinux.org/title/Very_Secure_FTP_Daemon

man vsftpd.conf:

session_support

Это управляет тем, пытается ли vsftpd поддерживать сессии для входов в систему. Если vsftpd поддерживает сессии, он будет пытаться обновить utmp и wtmp. Он также откроет pam_session при использовании PAM для аутентификации и закроет ее только при выходе. Вы можете отключить это, если вам не требуется ведение журналов сессий, и вы хотите предоставить vsftpd больше возможностей работать с меньшим количеством процессов и/или меньшими привилегиями. ПРИМЕЧАНИЕ – поддержка utmp и wtmp предоставляется только с собранными версиями с включенным PAM.
По умолчанию: НЕТ

С включенной поддержкой сессий auth.log показывает:

Dec  2 11:09:15 ftp2 vsftpd: pam_umask(vsftpd:session): учетная запись для мониторинга не найдена
Dec  2 11:09:15 ftp2 vsftpd: pam_unix(vsftpd:session): сессия открыта для пользователя monitoring(uid=getpwnam error) пользователем (uid=0)

Замечание: имя пользователя – monitoring
vsftp, похоже, корректно обновляет wtmp и работает:

# last -s today -3 -w
monitoring vsftpd:31604 127.0.0.1        Mon Dec  2 12:53 - 12:53  (00:00)
monitoring vsftpd:31597 127.0.0.1        Mon Dec  2 12:48 - 12:48  (00:00)
monitoring vsftpd:31589 127.0.0.1        Mon Dec  2 12:43 - 12:43  (00:00)

Когда я добавляю “session required pam_lastlog.so”, я больше не могу войти на ftp сервер (получаю “530 Неверный логин.”), в auth.log не записывается никакая информация, пока pam_lastlog включен.

Конфигурация

/etc/pam.d/vsftpd:

session sufficient pam_lastlog.so
auth    required pam_pwdfile.so pwdfile /etc/vsftpd/vsftp-users
account required pam_permit.so

/etc/vsftpd.conf:

allow_anon_ssl=NO
allow_writeable_chroot=YES
anonymous_enable=NO
chroot_local_user=YES
dual_log_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
guest_enable=YES
guest_username=vsftpd
hide_ids=YES
listen=YES
local_enable=YES
local_root=/mnt/ftp/home/$USER
local_umask=022
log_ftp_protocol=YES
mdtm_write=YES
nopriv_user=vsftpd
pam_service_name=vsftpd
pasv_address=ftp.domain.com
pasv_addr_resolve=YES
pasv_enable=YES
pasv_max_port=50100
pasv_min_port=50000
pasv_promiscuous=NO
require_ssl_reuse=NO
rsa_cert_file=/etc/ssl/private/domain.pem
session_support=YES
ssl_ciphers=ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:@STRENGTH
ssl_enable=YES
strict_ssl_read_eof=NO
debug_ssl=YES
user_config_dir=/etc/vsftpd/conf.d
user_sub_token=$USER
utf8_filesystem=YES
virtual_use_local_privs=YES
vsftpd_log_file=/var/log/vsftpd.log
write_enable=YES
xferlog_enable=YES
xferlog_std_format=NO

Ubuntu 22.04
vsftpd 3.0.5 (из репозитория os)

Похоже, что pam_lastlog устарел в пользу pam_lastlog2, который требует пакет “util-linux” >2.40, который пока недоступен в любой текущей версии Ubuntu LTS. Так что на данный момент мы застряли на pam_lastlog.

Ответ или решение

Конечно! Давайте подробно разберем, как включить логи последнего входа для FTP-сервера, используя pam_lastlog с приложением vsftpd, учитывая все упомянутые вами детали.

Введение

Настройка логирования последнего входа пользователей на FTP-сервере с использованием vsftpd может оказаться сложной задачей, особенно если вы используете виртуальных пользователей через pam_pwdfile. В этом руководстве мы подробно обсудим, как правильно подключить модуль pam_lastlog, чтобы отслеживать последние подключения пользователей, и что делать, если у вас возникают проблемы с аутентификацией.

Шаг 1: Понимание конфигурации PAM и vsftpd

Поскольку вам необходимо использовать виртуальных пользователей, которые не представлены как реальные пользователи в системе, настройка PAM (Pluggable Authentication Module) становится критически важной. Основная цель заключается в правильной конфигурации файла /etc/pam.d/vsftpd, чтобы обеспечить совместимость между pam_lastlog и pam_pwdfile.

Пример конфигурации PAM

Ваша текущая конфигурация не совсем отвечает требуемым условиям. Попробуйте следующую конфигурацию для файла /etc/pam.d/vsftpd:

auth    required pam_pwdfile.so pwdfile /etc/vsftpd/vsftp-users
account required pam_permit.so
session required pam_lastlog.so
session optional pam_unix.so

Этот порядок важен. Мы помещаем pam_lastlog.so в секцию управления сессией, что позволит ему обновлять логи входа для пользователей.

Шаг 2: Настройка конфигурации vsftpd

Убедитесь, что в вашем конфигурационном файле vsftpd.conf включены необходимые параметры:

session_support=YES
pam_service_name=vsftpd

Это уже сделано в вашем случае, и это правильно.

Шаг 3: Проверка наличия записи в журнале

После внесения этих изменений вам необходимо будет перезапустить службу vsftpd и проверить журналы. Используйте команды:

sudo systemctl restart vsftpd
sudo tail -f /var/log/auth.log

Проверьте наличие ошибок, связанных с pam_lastlog. Если вы по-прежнему получаете сообщение "530 Login incorrect", это может быть связано с неправильными учетными данными или синтаксическими ошибками в конфигурационных файлах.

Шаг 4: Проверка наличия пакетов и их версий

Так как было упомянуто, что pam_lastlog может быть устаревшим, убедитесь, что у вас установлена последняя версия util-linux, которая может включать необходимые обновления. Установите пакет с помощью команды:

sudo apt-get install util-linux

Шаг 5: Логи и отладка

Если проблема с логином сохраняется, включите детализированное логирование для vsftpd, добавив следующую строку в конфигурацию:

log_ftp_protocol=YES

Это поможет вам увидеть, что именно происходит во время процесса аутентификации.

Заключение

Интеграция pam_lastlog для отслеживания последних входов на FTP-сервера с виртуальными пользователями требует точной настройки. Следуя указанным выше шагам, вы сможете корректно настроить логирование входов. Также рекомендуем создавать резервные копии конфигурационных файлов перед внесением изменений и тестировать их в безопасной среде.

Если проблематика с доступом продолжает возникать, задумайтесь о развертывании мониторинга или инструментов отладки, которые предоставляют более детализированную информацию о том, что именно происходит на уровне PAM и vsftpd.

Оцените материал
Добавить комментарий

Капча загружается...