温馨提示×

怎样修改Debian的SFTP设置

小樊
34
2025-12-14 00:12:13
栏目: 智能运维

修改 Debian 的 SFTP 设置

一 准备与基线检查

  • 安装或确认已安装 OpenSSH 服务器:sudo apt update && sudo apt install openssh-server -y
  • 启动并设为开机自启:sudo systemctl start ssh && sudo systemctl enable ssh
  • 备份当前配置:sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  • 语法检查与重启:sudo sshd -t && sudo systemctl restart ssh
  • 连接与日志:测试 sftp user@your_ip;排查 sudo tail -f /var/log/auth.log

二 修改 SFTP 子系统与全局安全项

  • 编辑配置文件:sudo nano /etc/ssh/sshd_config
  • 推荐启用内置 SFTP 并禁用不安全功能:
    • Subsystem sftp internal-sftp
    • 可选端口:Port 2222(示例)
    • 登录安全:PermitRootLogin no,PasswordAuthentication no,PubkeyAuthentication yes
    • 会话与认证:MaxAuthTries 3,MaxSessions 10
    • 访问控制:AllowUsers/AllowGroups 或 DenyUsers/DenyGroups
  • 应用:sudo sshd -t && sudo systemctl restart ssh

三 常见场景配置示例

  • 场景A 限制用户组仅 SFTP 并 Chroot 到主目录
    • 创建组与用户:sudo groupadd sftpusers;sudo adduser alice;sudo usermod -aG sftpusers alice
    • 权限要求:Chroot 根目录必须属 root 且权限 755;用户可写目录另行授权
    • 配置片段:
      • Match Group sftpusers
        • ChrootDirectory %h
        • ForceCommand internal-sftp
        • AllowTcpForwarding no
        • X11Forwarding no
        • PermitTTY no
    • 目录与权限示例:
      • sudo chown root:root /home/alice && sudo chmod 755 /home/alice
      • sudo mkdir -p /home/alice/uploads && sudo chown alice:sftpusers /home/alice/uploads && sudo chmod 755 /home/alice/uploads
  • 场景B 将系统用户(如 www-data)限制到指定目录
    • 目录结构:
      • sudo mkdir -p /sftp/www-data/website_files
      • sudo chown root:root /sftp/www-data && sudo chmod 755 /sftp/www-data
      • sudo chown www-data:www-data /sftp/www-data/website_files
    • 用户与 Shell:sudo usermod -s /usr/sbin/nologin www-data(或 /sbin/nologin,视系统而定)
    • 配置片段:
      • Match User www-data
        • ChrootDirectory /sftp/www-data
        • ForceCommand internal-sftp
        • PermitTTY no
        • X11Forwarding no
        • AllowTcpForwarding no
  • 场景C 仅对特定用户启用 SFTP(不改全局)
    • Match User bob
      • ChrootDirectory %h
      • ForceCommand internal-sftp
      • AllowTcpForwarding no
      • X11Forwarding no
  • 应用:每次修改后执行 sudo sshd -t && sudo systemctl restart ssh

四 验证与故障排查

  • 连接测试:sftp -P 22 alice@your_ip(如使用非默认端口,替换为 -P 2222)
  • 目录限制验证:sftp> pwd 应显示根为 Chroot 目录;尝试 cd … 应失败
  • 配置语法:sudo sshd -t
  • 日志定位:sudo tail -f /var/log/auth.log(关注 Accepted/Failed、subsystem request for sftp)
  • 防火墙与端口:如启用 UFW,放行端口:sudo ufw allow 22 或 sudo ufw allow 2222/tcp

五 安全加固建议

  • 使用 SSH 密钥登录,禁用密码:PasswordAuthentication no,PubkeyAuthentication yes
  • 禁止 root 直登:PermitRootLogin no
  • 限制会话与认证尝试:MaxAuthTries 3,MaxSessions 10
  • 仅开放必要端口,变更端口配合防火墙策略
  • 防暴力破解:sudo apt install fail2ban && sudo systemctl enable --now fail2ban
  • 定期更新系统与日志审计:关注 /var/log/auth.log 异常

0