在 Linux 上监控 FTP Server(如 vsftpd、proftpd、pure-ftpd),可以从服务状态、连接情况、日志、流量、文件变更、告警几个层面来做。下面按常见场景给你一个实用指南。
systemctl status vsftpd
# 或
systemctl status proftpd
ss -tlnp | grep -E ':21|:20'
# 或
netstat -tlnp | grep ftp
ftpwho
# vsftpd 可用
或:
ss -tnp | grep :21
watch -n 1 "ss -tnp | grep :21"
/var/log/vsftpd.log
/var/log/xferlog
tail -f /var/log/vsftpd.log
常见内容:
CONNECTLOGINPUTGETFAIL LOGINgrep "FAIL LOGIN" /var/log/vsftpd.log | wc -l
tail -f /var/log/xferlog
字段示例:
Mon Jan 01 12:00:00 2024 1 192.168.1.10 1024 /test.txt b _ o r user ftp 0 *
含义:
inotifywait -m -r -e create,delete,modify /ftp/upload
auditctl -w /ftp/upload -p wa -k ftp_upload
ausearch -k ftp_upload
iftop
nload
top -p $(pgrep vsftpd)
apt install fail2ban
配置示例:
[vsftpd]
enabled = true
port = ftp
logpath = /var/log/vsftpd.log
maxretry = 5
#!/bin/bash
count=$(grep "FAIL LOGIN" /var/log/vsftpd.log | wc -l)
if [ $count -gt 20 ]; then
echo "FTP 暴力破解告警" | mail -s "FTP Alert" admin@x.com
fi
如果你能告诉我:
我可以给你一套可直接用的配置方案。