定位日志与确认配置
grep -i vsftp /var/log/messages 或 grep -i vsftpd /var/log/syslog 快速确认。grep -E "^(xferlog_enable|xferlog_file|xferlog_std_format|dual_log_enable|syslog_enable)" /etc/vsftpd/vsftpd.confsystemctl restart vsftpdxferlog_enable=YESxferlog_file=/var/log/vsftpd/xferlogxferlog_std_format=YESdual_log_enable=YESsyslog_enable=YES。日志格式与关键字段
Sun Feb 23 22:08:26 2014 6 212.73.193.130 1023575 /path/file.jpg b _ i r sipafranch ftp 0 * c常用命令与快速分析
tail -f /var/log/vsftpd.logtail -f /var/log/vsftpd/xferloggrep "530 Login incorrect" /var/log/vsftpd.logawk -v d="$(date '+%b %d')" '$0 ~ d' /var/log/vsftpd.logawk '$9 ~ /o/ {sum+=$8} END {print sum}' /var/log/vsftpd/xferlogawk '$9 ~ /i/ {sum+=$8} END {print sum}' /var/log/vsftpd/xferloggrep -c "RETR " /var/log/vsftpd.loggrep -c "STOR " /var/log/vsftpd.logawk '$9 ~ /o/ {ip[$5]++} END {for(i in ip) print ip[i],i}' /var/log/vsftpd/xferlog | sort -nr | headawk '$9 ~ /i/ {u[$10]++} END {for(i in u) print u[i],i}' /var/log/vsftpd/xferlog | sort -nr | headgrep "530 Login incorrect" /var/log/vsftpd.log | awk '{ip[$5]++} END {for(i in ip) print ip[i],i}' | sort -nrgrep "550" /var/log/vsftpd.loggrep "500 OOPS" /var/log/vsftpd.log可视化与长期分析
file { path => "/var/log/vsftpd.log" start_position => "beginning" }elasticsearch { hosts => ["localhost:9200"] index => "vsftpd-logs-%{+YYYY.MM.dd}" }日志轮转与合规留存
/var/log/vsftpd/*.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root adm
}
logrotate -f /etc/logrotate.d/vsftpdmkdir -p /var/log/vsftpd && chown vsftpd:vsftpd /var/log/vsftpd && chmod 755 /var/log/vsftpdsystemctl restart vsftpd。