在 Linux 下对 SFTP 进行日志审计,通常可以从 系统日志、SSH 配置、专用审计工具 几个层面来做。下面按「实用程度」和「常见方案」给你整理一份指南。
SFTP 本质是基于 SSH 的子系统,因此 SSH 日志天然包含 SFTP 行为。
编辑 SSH 配置文件:
vim /etc/ssh/sshd_config
确保或添加:
Subsystem sftp internal-sftp -l INFO -f AUTH
LogLevel VERBOSE
-l INFO:记录 SFTP 操作
LogLevel VERBOSE:记录登录、命令等细节
重启 SSH:
systemctl restart sshd
常见日志位置:
/var/log/secure
/var/log/auth.log
示例日志:
Jun 10 10:20:11 host sshd[1234]: session opened for user test by (uid=0)
Jun 10 10:20:15 host internal-sftp[1235]: open "/home/test/a.txt" flags WRITE,CREATE
✅ 可审计内容:
适合 多用户 SFTP 审计(如文件服务器)
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp -l INFO -f AUTH
在 /etc/rsyslog.d/sftp.conf:
:programname, contains, "internal-sftp" /var/log/sftp.log
& stop
重启 rsyslog:
systemctl restart rsyslog
适合 安全合规、等保、金融场景
yum install audit
# 或
apt install auditd
auditctl -w /sftp -p rwxa -k sftp_audit
ausearch -k sftp_audit
示例:
type=PATH msg=audit(...): item=0 name="/sftp/user1/a.txt"
type=SYSCALL msg=audit(...): uid=1001 comm="sftp-server"
✅ 可审计:
如果你需要:
可考虑:
| 场景 | 推荐方案 |
|---|---|
| 普通服务器 | SSH 日志 + LogLevel VERBOSE |
| 多用户 SFTP | internal-sftp + rsyslog 分用户 |
| 合规审计 | auditd |
| 企业级 | 堡垒机 / 专业 SFTP |
如果你愿意,可以告诉我:
我可以帮你 直接写一套可落地的配置文件。