Ubuntu SFTP 日志轮转与管理
一 日志位置与采集
sudo tail -f /var/log/auth.logsudo grep 'sftp' /var/log/auth.logjournalctl -u sshd.service | grep sftp二 将 SFTP 日志单独输出到指定文件
LogLevel VERBOSESubsystem sftp internal-sftp -l INFO -f local5local5.* /var/log/sftp.logsudo systemctl restart rsyslog && sudo systemctl restart sshdsudo tail -f /var/log/sftp.log 应能看到 SFTP 连接与操作记录。三 使用 logrotate 进行日志轮转
/var/log/sftp.log {
daily
rotate 30
size 100M
compress
delaycompress
missingok
notifempty
create 640 root adm
sharedscripts
postrotate
systemctl reload rsyslog >/dev/null 2>&1 || true
endscript
}
/var/log/auth.log {
weekly
rotate 52
compress
missingok
notifempty
create 640 root adm
postrotate
/etc/init.d/ssh reload > /dev/null
endscript
}
daily/weekly/monthly:轮转周期rotate N:保留 N 个旧日志compress:压缩旧日志delaycompress:下次轮转再压缩missingok:日志缺失不报错notifempty:空文件不轮转create:轮转后创建新文件(权限/属主/属组)postrotate ... endscript:轮转后执行的命令(如重载日志服务)sudo logrotate -f /etc/logrotate.d/sftpsudo logrotate -d /etc/logrotate.d/sftpcat /var/lib/logrotate/statussudo apt-get install logrotate;主配置 /etc/logrotate.conf,服务配置在 /etc/logrotate.d/。四 进阶审计与安全联动
sudo apt-get install auditd audispd-pluginssudo auditctl -w /srv/sftp -p wa -k sftp_monitorsudo ausearch -k sftp_monitor;汇总:sudo aureport -k sftp_monitorsudo apt-get install fail2ban[sftp]
enabled = true
port = sftp
filter = sftp
logpath = /var/log/auth.log
bantime = 600
findtime = 600
maxretry = 3
sudo systemctl restart fail2ban。