Linux SFTP日志管理技巧
一 日志位置与快速查看
| 系统或方式 | 日志路径 | 常用查看命令 |
|---|---|---|
| Debian/Ubuntu | /var/log/auth.log | tail -f /var/log/auth.log | grep sftp |
| RHEL/CentOS | /var/log/secure | tail -f /var/log/secure | grep sftp |
| 通用 systemd | 通过 journal | journalctl -u sshd -f | grep sftp |
| 部分系统 syslog | /var/log/syslog | tail -f /var/log/syslog | grep sftp |
二 提升日志细粒度与分离输出
Subsystem sftp internal-sftp -l INFO -f local5
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
local5.* /var/log/sftp.log
systemctl restart rsyslog
systemctl restart sshd
tail -f /var/log/sftp.log
三 日志轮转与保留策略
/var/log/sftp.log {
daily
rotate 30
compress
missingok
notifempty
create 640 root root
postrotate
systemctl reload rsyslog >/dev/null 2>&1 || true
endscript
}
/var/log/secure {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
postrotate
/sbin/service rsyslog reload > /dev/null 2>&1 || true
endscript
}
logrotate -f /etc/logrotate.d/sftp
ls -lh /var/log/sftp.log*
四 审计与入侵防护
apt-get install auditd audispd-plugins # Debian/Ubuntu
yum install audit # RHEL/CentOS
systemctl enable --now auditd
auditctl -w /data/sftp -p wa -k sftp_monitor
ausearch -k sftp_monitor
[sftp]
enabled = true
port = ssh
filter = sftp
logpath = /var/log/auth.log
bantime = 600
findtime = 600
maxretry = 3
[Definition]
failregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from <HOST>
ignoreregex =
五 集中化分析与可视化
grep 'sshd.*Failed password' /var/log/auth.log | awk '{print $1,$2,$3}' | sort | uniq -c | sort -nr