如何配置Debian SFTP以增强安全性
导读:Debian SFTP 安全加固实操指南 一 基础安全配置 安装与更新:执行 sudo apt update && sudo apt install openssh-server -y,保持系统与软件包为最新。 编辑 SS...
Debian SFTP 安全加固实操指南
一 基础安全配置
- 安装与更新:执行 sudo apt update & & sudo apt install openssh-server -y,保持系统与软件包为最新。
- 编辑 SSH 服务端配置 /etc/ssh/sshd_config,建议设置:
- PermitRootLogin no(禁止 root 远程登录)
- PubkeyAuthentication yes(启用公钥认证)
- PasswordAuthentication no(禁用密码登录,启用密钥后再关闭)
- AuthorizedKeysFile .ssh/authorized_keys
- ClientAliveInterval 300、ClientAliveCountMax 0(空闲超时断开)
- 可选:AllowUsers your_username(仅允许指定用户)
- 重启服务:sudo systemctl restart sshd。
- 防火墙放行:sudo ufw allow OpenSSH;如需限制来源 IP,可改为 ufw allow from YOUR_IP to any port 22。
二 基于密钥的认证
- 客户端生成密钥:ssh-keygen -t rsa -b 4096,私钥权限设为 600。
- 分发公钥:ssh-copy-id user@server_ip,或手动将公钥追加到服务器用户家目录的 ~/.ssh/authorized_keys。
- 服务器端确保:PubkeyAuthentication yes、AuthorizedKeysFile .ssh/authorized_keys 已启用。
- 验证:sftp user@server_ip,应无需密码即可登录(若仍提示密码,检查 .ssh 目录与文件权限:~/.ssh 700、authorized_keys 600)。
- 客户端便捷配置:在 ~/.ssh/config 增加
Host server_ip
User username
IdentityFile ~/.ssh/id_rsa
三 目录隔离与访问控制
- 创建 SFTP 专用组:sudo groupadd sftpusers。
- 新建受限用户(禁止 shell 登录):sudo adduser --shell /bin/false --gecos “SFTP User” sftpuser;sudo usermod -aG sftpusers sftpuser。
- 设置 Chroot 根目录:
- 家目录属主必须为 root:root,权限 755:sudo chown root:root /home/sftpuser;sudo chmod 755 /home/sftpuser。
- 创建可写子目录:sudo mkdir /home/sftpuser/upload;sudo chown sftpuser:sftpusers /home/sftpuser/upload;sudo chmod 755 /home/sftpuser/upload。
- 在 /etc/ssh/sshd_config 增加 Match 段(放在文件末尾,避免被全局配置覆盖):
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
AllowAgentForwarding no
PermitTunnel no
AllowStreamLocalForwarding no - 重启服务:sudo systemctl restart sshd。
- 说明:Chroot 要求被限制目录及其上级目录的所有权为 root,否则会拒绝登录;如需自定义根目录,可将 ChrootDirectory 指向专用目录(如 /sftp/%u),并确保该目录属主为 root。
四 进阶加固与运维
- 仅密钥登录后再禁用密码:确认密钥登录稳定,再将 PasswordAuthentication 设为 no 并重启 sshd。
- 精细化访问控制:
- 使用 AllowUsers/AllowGroups 限制可登录账户或组。
- 限制来源 IP:在防火墙或 /etc/hosts.allow、/etc/hosts.deny 中控制访问。
- 会话保活与资源控制:
- 保持 ClientAliveInterval 300、ClientAliveCountMax 0 以自动断开空闲会话。
- 按需设置 MaxAuthTries、MaxSessions 等参数以抵御暴力尝试。
- 日志与监控:实时查看 /var/log/auth.log,关注 Failed password、Connection closed 等异常;配置 logwatch 或集中日志审计。
- 系统加固:保持 apt 更新;启用 ufw 或 nftables 仅放行 22 端口;必要时启用 AppArmor/SELinux 对 sshd 进行最小权限约束。
五 快速验证与回滚
- 连接测试:
- 密钥登录:sftp user@server_ip(应直接登录)
- 失败回显:Permission denied(公钥未分发或权限错误)、Connection closed by server_ip(Chroot 权限/属主不正确)
- 配置语法检查:sshd -t(语法无误再重启)
- 回滚步骤:将 /etc/ssh/sshd_config 恢复为备份;PasswordAuthentication 临时改回 yes;重启 sshd;检查日志定位问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何配置Debian SFTP以增强安全性
本文地址: https://pptw.com/jishu/752587.html
