可以的,Linux 下的 SFTP 是可以被审计(记录操作日志)的,只是默认情况下 SFTP 只记录登录和退出,不记录具体文件操作。下面按常见方案给你梳理一下。
使用 OpenSSH 自带的 sftp-server:
日志位置通常是:
/var/log/secure # CentOS / RHEL
/var/log/auth.log # Debian / Ubuntu
修改 SSH 配置:
# /etc/ssh/sshd_config
Subsystem sftp internal-sftp -l INFO -f AUTH
或指定更详细的日志:
Subsystem sftp internal-sftp -l VERBOSE -f AUTH
重启 SSH:
systemctl restart sshd
效果:
✅ 适合:轻量审计
sftp-server 的日志参数(更清晰)Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO -f AUTH
或直接强制使用 internal-sftp:
Match Group sftpusers
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp -l VERBOSE -f AUTH
auditd(内核级审计)适合合规、等保、审计要求高的场景。
auditctl -w /data/sftp/ -p rwxa -k sftp_audit
查看日志:
ausearch -k sftp_audit
或:
/var/log/audit/audit.log
✅ 可记录:
❌ 缺点:
如果你需要:
可以考虑:
堡垒机是最标准的 SFTP 审计方案。
| 需求 | 推荐方案 |
|---|---|
| 只是看看谁登录了 | 默认日志 |
| 记录 SFTP 命令 | internal-sftp -l VERBOSE |
| 合规 / 等保 | auditd |
| 企业级审计 | 堡垒机 / JumpServer |
如果你愿意,可以告诉我:
我可以直接给你一份可落地的配置示例。