温馨提示×

linux sftp如何日志审计

小樊
45
2026-09-17 04:42:36
栏目: 智能运维

在 Linux 下对 SFTP 进行日志审计,通常可以从 系统日志、SSH 配置、专用审计工具 几个层面来做。下面按「实用程度」和「常见方案」给你整理一份指南。


一、基础方案:利用系统自带 SSH 日志(最常用)

SFTP 本质是基于 SSH 的子系统,因此 SSH 日志天然包含 SFTP 行为。

1. 开启 SSH 详细日志

编辑 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

2. 查看 SFTP 日志

常见日志位置:

  • CentOS / RHEL:
    /var/log/secure
    
  • Ubuntu / Debian:
    /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

✅ 可审计内容:

  • 登录用户
  • 登录时间
  • 上传 / 下载 / 删除文件
  • 文件路径

二、进阶方案:使用 internal-sftp + 用户隔离日志

适合 多用户 SFTP 审计(如文件服务器)

1. 为 SFTP 用户单独配置

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

2. 每个用户单独日志(rsyslog)

在 /etc/rsyslog.d/sftp.conf:

:programname, contains, "internal-sftp" /var/log/sftp.log
& stop

重启 rsyslog:

systemctl restart rsyslog

三、强审计方案:使用 auditd(系统级)

适合 安全合规、等保、金融场景

1. 安装 audit

yum install audit
# 或
apt install auditd

2. 监控 SFTP 目录

auditctl -w /sftp -p rwxa -k sftp_audit

3. 查看审计记录

ausearch -k sftp_audit

示例:

type=PATH msg=audit(...): item=0 name="/sftp/user1/a.txt"
type=SYSCALL msg=audit(...): uid=1001 comm="sftp-server"

✅ 可审计:

  • 谁
  • 什么时间
  • 对哪个文件
  • 做了什么操作

四、商业 / 专业方案(可选)

如果你需要:

  • Web 界面
  • 报表
  • 告警
  • 文件完整性校验

可考虑:

  • ProFTPD + SFTP
  • vsftpd(仅 FTP,不推荐)
  • Enterprise SFTP(CrushFTP、Serv-U)
  • JumpServer / 堡垒机

五、推荐组合(实战建议)

场景 推荐方案
普通服务器 SSH 日志 + LogLevel VERBOSE
多用户 SFTP internal-sftp + rsyslog 分用户
合规审计 auditd
企业级 堡垒机 / 专业 SFTP

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

  • 使用的 Linux 发行版
  • SFTP 用户数量
  • 是否用于合规(等保 / ISO)

我可以帮你 直接写一套可落地的配置文件。

0 踩