Debian SFTP如何提高安全性
导读:Debian SFTP 安全加固清单 一 基础加固 保持系统与应用为最新:执行 sudo apt update && sudo apt upgrade -y,及时修补漏洞。 安装并启用 OpenSSH 服务器:sudo a...
Debian SFTP 安全加固清单
一 基础加固
- 保持系统与应用为最新:执行 sudo apt update & & sudo apt upgrade -y,及时修补漏洞。
- 安装并启用 OpenSSH 服务器:sudo apt install openssh-server。
- 禁用 root 远程登录:在 /etc/ssh/sshd_config 中设置 PermitRootLogin no。
- 使用强认证:优先启用 公钥认证(PubkeyAuthentication yes);在确认密钥可用后关闭密码登录 PasswordAuthentication no。
- 仅允许指定用户或组访问:使用 AllowUsers/AllowGroups 白名单控制可登录账户。
- 启用空闲超时:设置 ClientAliveInterval 300 与 ClientAliveCountMax 3,自动断开长时间空闲会话。
二 强化 SFTP 子系统与访问控制
- 使用内置 SFTP 子系统:在 /etc/ssh/sshd_config 设置 Subsystem sftp internal-sftp,更安全且集成度更高。
- 创建专用组并限制 Shell 访问:
- 建组:sudo groupadd sftpusers
- 建用户并禁止 Shell:sudo adduser --shell /bin/false --gecos “SFTP User” sftpuser
- 加入组:sudo usermod -aG sftpusers sftpuser
- 配置 Chroot 监狱与强制 SFTP:在 /etc/ssh/sshd_config 添加
- Match Group sftpusers
- ChrootDirectory %h(将用户根目录限制为其家目录)
- ForceCommand internal-sftp(仅允许 SFTP,禁止 Shell)
- AllowTcpForwarding no,X11Forwarding no
- Match Group sftpusers
- 正确设置目录权限(Chroot 要求):
- 家目录属主为 root:root,权限 755:sudo chown root:root /home/sftpuser & & sudo chmod 755 /home/sftpuser
- 可写目录放在家目录下(如 upload),属主为相应用户,权限 755:sudo mkdir /home/sftpuser/upload & & sudo chown sftpuser:sftpusers /home/sftpuser/upload & & sudo chmod 755 /home/sftpuser/upload
- 可选:如需更细粒度权限,使用 ACL:
- sudo setfacl -R -m u:sftpuser:rwx /home/sftpuser/upload
- sudo setfacl -R -m d:u:sftpuser:rwx /home/sftpuser/upload
- 重启生效:sudo systemctl restart sshd。
三 网络与入侵防护
- 防火墙最小化放行:
- 使用 ufw:sudo ufw allow OpenSSH 或指定端口 sudo ufw allow 2222/tcp;sudo ufw enable
- 限制来源 IP:仅允许可信网段/主机访问 22/2222,其余拒绝。
- 端口与协议管理:如需更改默认端口,修改 Port 2222 并同步防火墙放行规则。
- 防暴力破解:部署 Fail2Ban,默认监控 /var/log/auth.log,自动封禁恶意 IP。
- 可选加固:启用 AppArmor(Debian 常用)对 SSH/SFTP 进程进行最小权限约束。
四 监控审计与备份
- 集中审计日志:实时查看认证与 SFTP 活动 sudo tail -f /var/log/auth.log,结合 journalctl -u ssh 分析服务日志。
- 定期巡检与基线化:定期核查 sshd_config 关键项、用户与组、目录权限、开放端口与防火墙规则,形成变更记录。
- 数据保护:对上传目录与关键数据执行定期备份与异地/离线备份,并验证可恢复性。
五 快速配置示例
-
目标:仅允许 sftpusers 组成员通过 SFTP 访问,禁止 Shell/隧道,限制为家目录,使用密钥登录,端口 2222,仅可信 IP 可连,启用 Fail2Ban。
-
步骤
- 安装与基础配置
- sudo apt update & & sudo apt upgrade -y
- sudo apt install openssh-server fail2ban -y
- 编辑 /etc/ssh/sshd_config:
- PermitRootLogin no
- PasswordAuthentication no,PubkeyAuthentication yes
- Port 2222
- Subsystem sftp internal-sftp
- 创建用户与目录
- sudo groupadd sftpusers
- sudo adduser --shell /bin/false --gecos “SFTP User” sftpuser
- sudo usermod -aG sftpusers sftpuser
- 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
- 配置 Chroot 与强制 SFTP
- 在 /etc/ssh/sshd_config 末尾添加:
- Match Group sftpusers
- ChrootDirectory %h
- ForceCommand internal-sftp
- AllowTcpForwarding no
- X11Forwarding no
- Match Group sftpusers
- 防火墙与 Fail2Ban
- sudo ufw allow 2222/tcp,sudo ufw enable
- 如需限制来源 IP:先 sudo ufw deny 2222/tcp,再 sudo ufw allow from 203.0.113.10 to any port 2222
- 启动 sudo systemctl enable --now fail2ban
- 重启与验证
- sudo systemctl restart sshd
- 验证:sftp -P 2222 sftpuser@your_server_ip,确认仅能访问 /upload 且无法获得 Shell。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian SFTP如何提高安全性
本文地址: https://pptw.com/jishu/748085.html
