温馨提示×

Debian SFTP配置如何审计

小樊
31
2026-01-02 14:42:48
栏目: 智能运维

Debian SFTP 配置审计清单与实操

一 审计目标与范围

  • 覆盖 配置合规性身份鉴别传输与访问控制日志与完整性可用性与加固 五个维度,形成可复用的审计基线。
  • 重点核对:仅使用 internal-sftp、正确的 Chroot 根目录所有权与权限、禁用不必要通道(如 TCP 转发、X11 转发、隧道)、启用 公钥认证、限制可登录用户/来源 IP、开启 Fail2ban、落实 文件级审计定期巡检。这些做法与 Debian 上 SFTP 的安全配置与加固实践一致,可作为审计基准。

二 配置合规性检查

  • 配置文件与生效项
    • 核对 /etc/ssh/sshd_config 是否存在且由 root:root 644 保护;备份并集中管理版本。
    • 确认仅保留一个 Subsystem sftp internal-sftp 声明,避免与旧式 /usr/lib/openssh/sftp-server 并存引发冲突或绕过风险。
  • 关键安全指令
    • 对受限组使用 Match 块,统一设置:ChrootDirectory(根目录必须为 root 所有且权限 ≤ 755)、ForceCommand internal-sftpAllowTcpForwarding noX11Forwarding noPermitTunnel no
    • 登录认证策略:PubkeyAuthentication yesPasswordAuthentication no(在确认公钥已分发且可用后再禁用密码);必要时用 AllowUsers/AllowGroups 白名单化登录主体。
  • 目录与权限
    • Chroot 根目录不可被非 root 写入;用户可写目录置于根下并单独赋权(如 755/750/700 分级),避免因权限不当导致登录或上传失败。
  • 服务与连通
    • 服务状态与开机自启:systemctl status sshsystemctl is-enabled ssh;端口与防火墙策略一致(仅放通 22/TCP 的来源网段/主机)。

三 身份鉴别与访问控制审计

  • 用户与组
    • 专用组(如 sftpusers)集中管理;受限用户使用 /usr/sbin/nologin/bin/false 作为登录 Shell,确保无法通过 SSH 获取交互式 shell。
  • 公钥与本地账户
    • 核查 ~/.ssh/authorized_keys 权限为 600、目录 700;清理过期/未使用密钥;禁用或移除共享账号与默认测试账号。
  • 来源限制
    • 通过 UFW/iptables 或云安全组仅允许受控 IP/网段 访问 22/TCP;结合 AllowUsers/AllowGroups 做二次白名单。
  • 暴力防护
    • Fail2ban 启用并针对 sshd 配置合理阈值(如 maxretry、findtime、bantime),定期复核封禁列表与日志。

四 日志与完整性审计

  • 连接与认证日志
    • 确认 LogLevel 不低于 INFO,关键环境建议 VERBOSE;集中采集 /var/log/auth.log(Debian 常用路径)至 SIEM/LM,关注 Failed/Accepted 与关键事件(如 root 登录、SFTP 子系统启动)。
    • 内部 SFTP 可提升日志细粒度:在 Subsystem sftp internal-sftp -l VERBOSE -f AUTHPRIV 下记录更详细的会话与操作信息,便于审计追溯。
  • 文件与目录审计
    • 对 SFTP 根及可写目录部署 auditd 系统调用审计,记录 open/write/delete/rename 等关键行为,便于发现越权访问与数据外泄。
  • 完整性校验
    • /etc/ssh/sshd_config 与关键目录设置 AIDE 基线,定期执行校验并告警变更。

五 可用性与加固复核

  • 连通性与性能
    • 定期执行 sftp 上传/下载回归测试;复核 端口占用网络延迟/丢包磁盘 I/O 等导致的超时或慢速问题。
  • 加密与算法
    • 禁用过时或不安全算法(如 diffie-hellman-group1-sha1),保持客户端/服务端算法套件一致,减少握手失败与降级风险。
  • 例行巡检
    • 建立 月度/季度 巡检:补丁更新(含 OpenSSH)、用户与密钥盘点、日志留存周期与归档、备份可用性与恢复演练、配置基线漂移检查。

附 一键核查命令清单

  • 配置与权限
    • grep -nE ‘^(Subsystem|Match|ChrootDirectory|ForceCommand|AllowTcpForwarding|X11Forwarding|PermitTunnel|PasswordAuthentication|PubkeyAuthentication|AllowUsers|AllowGroups)’ /etc/ssh/sshd_config
    • stat -c ‘%U:%G %a %n’ /etc/ssh/sshd_config
    • find /home /sftp -xdev -type d ( -perm -002 -o -perm -020 ) -ls
  • 服务与端口
    • systemctl is-active ssh && systemctl is-enabled ssh
    • ss -tnlp | grep ‘:22\b’
    • ufw status verbose || iptables -S | grep – ‘-p tcp --dport 22’
  • 日志与审计
    • tail -n50 /var/log/auth.log | egrep ‘sshd|sftp|Failed|Accepted’
    • ausearch -k sftp_monitor 2>/dev/null || echo “auditd rule not found”
    • aureport -f --summary
  • 用户与密钥
    • getent group sftpusers
    • cut -d: -f1,7 /etc/passwd | awk -F: ‘$2 ~ /(nologin|false)/ {print}’
    • find ~sftpuser/.ssh -type f ( -name authorized_keys -o -name id_* ) -exec stat -c ‘%U:%G %a %n’ {} ;

以上清单可直接用于建立“合规—风险—证据”闭环的审计流程,并与变更管理、告警响应、定期巡检结合,形成可持续改进的 SFTP 安全运营体系。

0