怎样修改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 异常