温馨提示×

如何监控linux sftp

小樊
35
2026-10-29 08:27:31
栏目: 智能运维

在 Linux 下“监控 SFTP”通常有几个不同层次的目标,我先按常见需求分类,再给你具体做法和命令,你可以按需取用。


一、监控 SFTP 登录行为(谁、什么时候、从哪登录)

1. 查看系统日志(最常用)

SFTP 一般通过 SSH 提供,日志在:

  • CentOS / RHEL
    /var/log/secure
    
  • Ubuntu / Debian
    /var/log/auth.log
    

查看 SFTP 登录:

grep sftp /var/log/auth.log

查看登录成功/失败:

grep -E "Accepted|Failed" /var/log/auth.log | grep sshd

2. 实时查看 SFTP 登录

tail -f /var/log/auth.log | grep sshd

二、监控 SFTP 文件操作(上传 / 下载 / 删除)

✅ 方法 1:开启 SSH 详细日志(推荐)

编辑:

/etc/ssh/sshd_config

确保包含:

Subsystem sftp internal-sftp -l INFO

或更详细:

Subsystem sftp internal-sftp -l VERBOSE

重启 SSH:

systemctl restart sshd

然后日志中会出现:

  • open
  • close
  • read
  • write

示例:

grep sftp /var/log/auth.log

✅ 方法 2:使用 auditd(最强,推荐生产环境)

安装

yum install audit       # CentOS
apt install auditd     # Ubuntu

监控某目录(例如 /sftp)

auditctl -w /sftp -p rwxa -k sftp_monitor

查看日志

ausearch -k sftp_monitor

或实时:

tail -f /var/log/audit/audit.log | grep sftp_monitor

✅ 可记录:

  • 用户
  • 进程
  • 文件
  • 操作类型

三、监控 SFTP 进程(谁在传文件)

ps -ef | grep sftp

或更清晰:

ps -eo pid,user,cmd | grep sftp

四、限制并监控 SFTP 用户(安全 + 监控)

使用 chroot + 专用用户

Match Group sftpusers
    ChrootDirectory /sftp
    ForceCommand internal-sftp -l INFO
    X11Forwarding no
    AllowTcpForwarding no

五、图形化 / 高级监控方案

  • ELK / Grafana + Filebeat:集中分析 SFTP 日志
  • Osquery:实时查询 SFTP 进程和文件访问
  • FIM(文件完整性监控):如 Wazuh、Tripwire

六、快速推荐方案

需求 推荐方式
看谁登录 auth.log / secure
看传了什么文件 internal-sftp -l VERBOSE
强审计 auditd
生产环境 auditd + 日志集中

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

  • ✅ 用的 Linux 发行版
  • ✅ 是否 OpenSSH
  • ✅ 想监控“登录”还是“文件操作”
  • ✅ 是否在服务器上有 root 权限

我可以直接给你可复制的配置方案。

0 踩