Настраиваю fail2ban для разных сервисов. Ssh прошел гладко, но с vsftpd я пока не добился успеха. Проблема в том, что я не могу найти способ, чтобы неудачные попытки входа отображались в журналах. Я ничего не вижу ни в auth.log, ни в vsftpd.log.
В этом примере: http://www.fail2ban.org/wiki/index.php/Vsftpd есть несколько строк, которые должны появиться в различных журналах, но их нет.
Вот что у меня сейчас в конфе:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
dual_log_enable=YES
xferlog_std_format=NO
xferlog_file=/var/log/vsftpd.log
session_support=YES
connect_from_port_20=YES
chroot_local_user=YES
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.allowed_users
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
В журналах я вижу только успешные входы в систему, но когда клиент получает отказ в разрешении 530, ничего не регистрируется.
Я бы предпочел не регистрировать весь FTP-чат.
Используя Ubuntu 10.04.
Похоже, что vsftpd сначала проверяет имя пользователя в userlist_file и выполняет PAM только в том случае, если пользователю это разрешено (с конфигурацией выше). Я бы предложил отключить параметры userlist_ * и реализовать список запретов в конфигурации PAM.
# put this line into /etc/pam.d/vsftpd as first "auth" check
auth required pam_listfile.so item=user sense=allow file=/etc/vsftpd.allowed_users onerr=fail
Затем вы должны увидеть отклоненные попытки журнала в auth.log.
Больше информации - pam_listfile.so