Debian SFTP配置如何保证安全
导读:Debian SFTP 安全配置实践 一 基础加固 保持系统与安全组件为最新:执行 apt update && apt upgrade -y,及时修补漏洞。 安装并启用 OpenSSH 服务器:sudo apt insta...
Debian SFTP 安全配置实践
一 基础加固
- 保持系统与安全组件为最新:执行 apt update & & apt upgrade -y,及时修补漏洞。
- 安装并启用 OpenSSH 服务器:sudo apt install openssh-server。
- 编辑 /etc/ssh/sshd_config,关闭不必要功能并收紧登录策略:
- 禁用 root 远程登录:PermitRootLogin no
- 仅启用密钥认证:PubkeyAuthentication yes;如已全面使用密钥,可关闭密码:PasswordAuthentication no
- 限制认证尝试与并发会话:MaxAuthTries 3、MaxSessions 3
- 可选:更改默认端口(如 Port 2222),降低自动化扫描命中率
- 建议显式使用内置 SFTP:Subsystem sftp internal-sftp
修改后执行:sudo systemctl restart ssh 或 sudo systemctl restart sshd。
二 用户与目录隔离
- 创建专用组并配置 SFTP 专用账户:
- 建组:sudo groupadd sftpusers
- 建用户(禁止 shell 登录,仅用于 SFTP):sudo useradd -s /usr/sbin/nologin -G sftpusers sftpuser
- 正确设置 Chroot 目录权限(关键点):
- 家目录属主必须为 root:root,权限 755:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser - 如需可写目录,在用户家目录下新建目录并赋权给该用户:
sudo mkdir -p /home/sftpuser/upload
sudo chown sftpuser:sftpusers /home/sftpuser/upload
sudo chmod 755 /home/sftpuser/upload
- 家目录属主必须为 root:root,权限 755:
- 在 /etc/ssh/sshd_config 对 SFTP 组应用限制:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
说明:Chroot 要求目标目录及其上级目录属主为 root,否则会话会被拒绝;将可写目录放在家目录下并单独赋权,可满足上传需求同时不破坏 Chroot 安全前提。
三 认证与访问控制
- 全量启用 SSH 密钥认证:
- 客户端生成密钥:ssh-keygen -t ed25519 或 -t rsa -b 4096
- 上传公钥:ssh-copy-id user@server
- 服务端确保:PubkeyAuthentication yes;AuthorizedKeysFile .ssh/authorized_keys
- 权限要求:~/.ssh 700,~/.ssh/authorized_keys 600,否则公钥登录会被拒绝
- 精细化访问控制:
- 仅允许指定用户/来源:AllowUsers your_username@your_ip
- 限制失败重试与并发:MaxAuthTries 3、MaxSessions 3
- 如需临时开放密码(例如批量交付初期),在确保密钥已分发并验证后,再关闭 PasswordAuthentication。
四 网络与运行期防护
- 防火墙仅放行必要端口:
- UFW:sudo ufw allow OpenSSH(或指定自定义端口)
- 防暴力破解:部署 Fail2ban,默认配置对 SSH 有效;必要时自定义 /etc/fail2ban/jail.local 以适配端口与阈值。
- 会话保活与空闲超时:
- 设置 ClientAliveInterval 300、ClientAliveCountMax 3,自动断开长时间空闲连接。
- 日志与审计:
- 实时监控 /var/log/auth.log,关注失败登录与异常行为;必要时接入集中日志与告警。
五 快速验证与回滚
- 连接与功能验证:
- 密钥登录:sftp -i ~/.ssh/id_ed25519 sftpuser@server
- 验证仅能访问家目录与可写子目录,无法向上浏览或执行 shell 命令
- 验证端口与访问控制是否生效(如变更端口、AllowUsers 限制)
- 配置回滚预案:
- 保留当前配置备份:sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak-$(date +%F)
- 如出现无法登录,使用控制台或带外管理恢复备份并重启 ssh 服务
- 安全提示:生产环境变更前请在测试环境验证,并安排维护窗口,避免锁定自己。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian SFTP配置如何保证安全
本文地址: https://pptw.com/jishu/770458.html
