温馨提示×

怎么监控linux sftp

小樊
41
2026-10-22 13:59:46
栏目: 智能运维

在 Linux 上“监控 SFTP”通常有两种含义,先帮你区分一下,再分别说明做法:


一、你想监控什么?

  1. 谁登录了 SFTP、传了什么文件(审计 / 安全)
  2. SFTP 服务是否存活、性能如何(运维监控)
  3. 实时看 SFTP 传输过程(排查问题)

下面按常见场景给你方案。


二、审计类:监控 SFTP 登录与文件操作(最常用)

✅ 方法 1:使用系统自带的 sftp-server 日志(推荐)

SFTP 通常走 OpenSSH,可以打开详细日志。

1️⃣ 修改 SSH 配置

vim /etc/ssh/sshd_config

确保或修改为:

Subsystem sftp internal-sftp -l INFO -f AUTH

或(更详细):

Subsystem sftp internal-sftp -l DEBUG -f AUTH

-l 是日志级别,-f 是 facility

2️⃣ 配置 rsyslog

vim /etc/rsyslog.conf

添加:

auth.* /var/log/sftp.log

重启服务:

systemctl restart rsyslog
systemctl restart sshd

3️⃣ 查看日志

tail -f /var/log/sftp.log

你会看到类似:

session opened for user xxx
open "/home/xxx/test.txt" flags 0x1
close "/home/xxx/test.txt"

✅ 能看到:登录用户、操作文件、读写行为


✅ 方法 2:强制 SFTP 用户使用日志 shell(更安全)

如果你只允许 SFTP,不允许 SSH:

Match Group sftpusers
    ChrootDirectory /sftp/%u
    ForceCommand internal-sftp -l INFO

三、运维类:监控 SFTP 服务状态

✅ 方法 3:进程 & 端口监控

ps aux | grep sftp
netstat -tulnp | grep :22

或用 systemd:

systemctl status sshd

✅ 方法 4:Prometheus + Node Exporter(企业级)

  • 监控:
    • SSH/SFTP 连接数
    • 网络流量
    • 文件变更
  • 可结合 ssh_exporter

四、实时排查:看正在进行的 SFTP

✅ 方法 5:strace(高级)

strace -f -p <sshd_pid>

⚠️ 性能影响大,仅排查用


五、文件级监控(谁改了文件)

✅ 方法 6:inotify / auditd

auditd 示例

auditctl -w /sftp -p rwxa -k sftp_monitor
ausearch -k sftp_monitor

六、推荐组合(实用方案)

需求 推荐
普通审计 internal-sftp -l INFO
安全合规 auditd
运维监控 Prometheus
排错 tail -f /var/log/sftp.log

如果你愿意,可以告诉我:

  • 用的 CentOS / Ubuntu / 容器
  • 是 审计用户 还是 监控服务
  • 是否需要 合规(等保 / 金融行业)

我可以直接给你一套可复制的配置。

0 踩