Linux vsftp日志分析实用指南
一 日志位置与启用
grep -E "^(xferlog_enable|xferlog_file|dual_log_enable|syslog_enable)" /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf 中启用:
xferlog_enable=YESxferlog_file=/var/log/xferlogdual_log_enable=YES(同时记录到 vsftpd.log 与 xferlog)syslog_enable=YES(写入系统日志)systemctl restart vsftpd,并确认日志已生成:ls -l /var/log/vsftpd.log /var/log/xferlog。以上路径与开关在不同发行版上可能略有差异,建议以本机配置为准。二 命令行快速分析
tail -f /var/log/vsftpd.loggrep "192.168.1.10" /var/log/vsftpd.loggrep "FAILED LOGIN" /var/log/vsftpd.logawk -v d="$(date '+%b %d')" '$1 == d {count++} END {print "Today connections:", count+0}' /var/log/vsftpd.logawk '{print $9}' /var/log/vsftpd.log | sort | uniq -c | sort -nrgrep "RETR" /var/log/vsftpd.log | wc -lgrep "STOR" /var/log/vsftpd.log | wc -lawk -v d="$(date -d '10 minutes ago' '+%b %d %H:%M:%S')" '$0 >= d' /var/log/vsftpd.log | lessawk/cut 汇总每日/每用户/每IP 的流量与次数。xferstats 工具对 xferlog 做汇总分析(需安装相关包)。以上命令为常用范式,字段位置会随日志格式变化,请结合实际样例微调。三 可视化与集中监控
file { path => "/var/log/vsftpd.log" start_position => "beginning" }grok { match => { "message" => "%{COMBINEDAPACHELOG}" } }date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] }elasticsearch { hosts => ["localhost:9200"] index => "vsftpd-logs-%{+YYYY.MM.dd}" }四 运维与安全监控要点
/etc/logrotate.d/vsftpd:
/var/log/vsftpd.log { daily missingok rotate 7 compress notifempty create 640 root adm }