在 Linux 上“监控 SFTP”通常有两种含义,先帮你区分一下,再分别说明做法:
下面按常见场景给你方案。
sftp-server 日志(推荐)SFTP 通常走 OpenSSH,可以打开详细日志。
vim /etc/ssh/sshd_config
确保或修改为:
Subsystem sftp internal-sftp -l INFO -f AUTH
或(更详细):
Subsystem sftp internal-sftp -l DEBUG -f AUTH
-l是日志级别,-f是 facility
vim /etc/rsyslog.conf
添加:
auth.* /var/log/sftp.log
重启服务:
systemctl restart rsyslog
systemctl restart sshd
tail -f /var/log/sftp.log
你会看到类似:
session opened for user xxx
open "/home/xxx/test.txt" flags 0x1
close "/home/xxx/test.txt"
✅ 能看到:登录用户、操作文件、读写行为
如果你只允许 SFTP,不允许 SSH:
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp -l INFO
ps aux | grep sftp
netstat -tulnp | grep :22
或用 systemd:
systemctl status sshd
ssh_exporterstrace -f -p <sshd_pid>
⚠️ 性能影响大,仅排查用
auditctl -w /sftp -p rwxa -k sftp_monitor
ausearch -k sftp_monitor
| 需求 | 推荐 |
|---|---|
| 普通审计 | internal-sftp -l INFO |
| 安全合规 | auditd |
| 运维监控 | Prometheus |
| 排错 | tail -f /var/log/sftp.log |
如果你愿意,可以告诉我:
我可以直接给你一套可复制的配置。