tail -f /var/log/vsftpd.logless /var/log/vsftpd.loggrep "login" /var/log/vsftpd.logtail -n 50 /var/log/vsftpd.logjournalctl -u vsftpd,并支持时间过滤,例如:journalctl -u vsftpd --since "2025-01-01" --until "2025-01-31"。xferlog_enable=YES:启用传输日志xferlog_file=/var/log/vsftpd.log:指定日志文件路径xferlog_std_format=YES:使用标准格式记录传输日志dual_log_enable=YES:同时生成 vsftpd 风格与 wu-ftpd 风格日志systemctl restart vsftpd,并确认日志文件已生成且可写。/var/log/vsftpd.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root adm
}
daily:按天轮转missingok:日志缺失不报错rotate 7:保留最近 7 个归档compress:旧日志压缩notifempty:空文件不轮转create 640 root adm:新建日志权限与属主/属组logrotate -d /etc/logrotate.d/vsftpd(干跑),logrotate -f /etc/logrotate.d/vsftpd(强制执行)。sudo apt-get install fail2ban[vsftpd]
enabled = true
port = ftp
filter = vsftpd
logpath = /var/log/vsftpd.log
maxretry = 5
bantime = 3600
sudo systemctl restart fail2bangrep "login" /var/log/vsftpd.log | grep "FAIL" | wc -lgrep "login" /var/log/vsftpd.log | awk '{print $5}' | sort | uniq -c | sort -nr | head