温馨提示×

Debian SFTP如何防止恶意攻击

小樊
35
2025-11-20 08:21:18
栏目: 网络安全

Debian SFTP 防恶意攻击实用清单

一 基础加固

  • 保持系统与软件为最新:执行 apt update && apt upgrade -y,及时修补 OpenSSH 等组件漏洞。
  • 禁用 root 远程登录:在 /etc/ssh/sshd_config 设置 PermitRootLogin no
  • 优先使用密钥认证:启用 PubkeyAuthentication yes,在客户端生成 4096 位 RSA 密钥对并部署公钥到 ~/.ssh/authorized_keys;在确认密钥可用后再关闭密码登录 PasswordAuthentication no
  • 禁止空密码:设置 PermitEmptyPasswords no
  • 更改默认端口:将 Port 22 改为非标准端口(如 2222),仅作为“安全通过 obscurity”的辅助手段,仍需配合密钥与防火墙。
  • 限制可登录主体:使用 AllowUsers your_username@your_ipDenyUsers 精确控制访问来源与账户。
  • 会话与资源控制:设置 MaxAuthTries 3–5MaxSessions 3–5,减少暴力尝试与并发滥用空间。
  • 连接保活与超时:设置 ClientAliveInterval 300ClientAliveCountMax 0,自动断开空闲会话。

二 访问控制与网络边界

  • 防火墙最小化放行:使用 ufw allow OpenSSHiptables 仅开放 SSH/SFTP 端口;对外仅暴露必要端口。
  • 来源 IP 白名单:在 sshd_configAllowUsers user@IP/CIDR 限制;或在边界防火墙对 SSH 端口做 IP 白名单
  • 入侵防御:部署 Fail2ban,对 /var/log/auth.log 的失败登录进行自动封禁,例如:
    • 安装:apt install fail2ban
    • 配置(/etc/fail2ban/jail.local):
      [sshd]
      enabled = true
      port = 2222
      filter = sshd
      logpath = /var/log/auth.log
      maxretry = 3
      bantime = 600
    • 启动:systemctl restart fail2ban
  • 禁用不必要服务与端口:关闭未使用的 TCP/UDP 端口与后台服务,降低攻击面。

三 SFTP 专用安全配置

  • 使用 internal-sftp 并强制 SFTP:在 /etc/ssh/sshd_config 设置 Subsystem sftp internal-sftp,对特定用户/组使用 Match 段并指定 ForceCommand internal-sftp,避免 shell 逃逸。
  • Chroot 监狱:对 SFTP 用户启用 ChrootDirectory %h,将其根目录限制在主目录;注意 ChrootDirectory 上级目录必须由 root 拥有且权限为 755,否则 internal-sftp 会拒绝登录。
  • 目录与权限示例:
    • 家目录:chown root:root /home/sftpuser;chmod 755 /home/sftpuser
    • 可写目录:mkdir /home/sftpuser/uploads;chown sftpuser:sftpusers /home/sftpuser/uploads;chmod 755 /home/sftpuser/uploads
  • 禁用隧道与转发:在 Match Group sftpusers 中设置 AllowTcpForwarding noX11Forwarding no,减少滥用可能。
  • 用户隔离:创建 sftpusers 组,将仅用于传输的用户加入该组并应用上述 Match 策略。

四 加密与算法强化

  • 主机密钥完整性:确保 /etc/ssh/ssh_host_*_key 存在并受保护,禁用过时或不安全的密钥类型(如 DSA)。
  • 密钥交换与加密套件:在 sshd_config 中禁用不安全的 KexAlgorithms(如 diffie-hellman-group1-sha1),优先使用 curve25519-sha256ecdh-sha2-nistp256/384/521 等现代曲线;仅启用强加密与 MAC(如 chacha20-poly1305@openssh.comaes256-gcm@openssh.com)。
  • 协议与压缩:设置 Protocol 2;如非必要可关闭 Compression delayed 以减少侧信道风险。

五 监控审计与运维

  • 集中日志与告警:持续监控 /var/log/auth.logjournalctl -u ssh,对异常登录、频繁失败、来源突变设置告警;可使用 Logwatch 做日报汇总。
  • 完整性校验:定期校验 /etc/ssh/sshd_configauthorized_keys 的完整性,变更留痕。
  • 强制访问控制:在支持的系统中启用 AppArmor/SELinuxsshd/sftp 进程进行最小权限约束。
  • 备份与演练:对 用户数据、配置与密钥 做离线/异地备份;定期在测试环境验证 Fail2banChroot 策略的有效性,变更前保留可回滚方案。

0