SFTP在Linux中的日志管理方法
一 日志位置与查看方式
journalctl -u sshd.service -f | grep sftptail -f /var/log/auth.log | grep sftpgrep 'username' /var/log/auth.log | grep sftpgrep 'Failed password' /var/log/auth.loggrep 'sftp' /var/log/syslog(部分发行版)二 日志级别与输出目标配置
Subsystem sftp internal-sftp -l INFO -f AUTHForceCommand internal-sftp -l INFOSubsystem sftp /usr/lib/openssh/sftp-server -l INFOLogLevel VERBOSE(更详细,生产慎用)Subsystem sftp internal-sftp -l INFO -f local5systemctl restart sshd三 将SFTP日志单独输出到文件
local5.* /var/log/sftp.logsystemctl restart rsyslog-f local5):programname, isequal, "sftp-server" /var/log/sftp.log/var/log/sftp.log 设为 0600 root root,仅管理员可读四 日志轮转与保留策略
/var/log/sftp.log {
daily
missingok
rotate 365
compress
delaycompress
notifempty
create 0600 root root
sharedscripts
postrotate
systemctl reload rsyslog.service >/dev/null 2>&1 || true
endscript
}
logrotate -d /etc/logrotate.d/sftp(dry-run)reload 通知 rsyslog 重新打开日志文件句柄五 审计增强与安全联动
auditctl -w /data/sftp -p wa -k sftp_monitorausearch -k sftp_monitorlogpath = /var/log/auth.log,maxretry = 3,bantime = 600$AddUnixListenSocket 将日志传出;若启用 SELinux,需额外策略放行或改用外部日志路径