温馨提示×

怎么加固debian sftp安全

小樊
45
2026-10-12 10:32:28
栏目: 智能运维

下面给你一套在 Debian 上加固 SFTP 安全的实用方案,从“最小可用”到“较严格”逐步加强,你可以按需求选用。


一、基础安全(强烈建议)

1. 禁止 root 直接登录

编辑 SSH 配置:

sudo nano /etc/ssh/sshd_config

确认或修改为:

PermitRootLogin no

重启:

sudo systemctl restart ssh

2. 使用专用 SFTP 用户(不用系统登录用户)

sudo adduser sftpuser

(不建议给该用户 shell 登录权限)


3. 限制 SFTP 用户只能使用 SFTP(禁止 SSH)

在 /etc/ssh/sshd_config 末尾添加:

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

设置目录权限(非常关键):

sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload

重启 SSH:

sudo systemctl restart ssh

二、认证安全(非常重要)

4. 禁用密码登录,使用密钥

PasswordAuthentication no
PubkeyAuthentication yes

生成密钥(客户端):

ssh-keygen

把公钥放到服务器:

~/.ssh/authorized_keys

5. 修改默认端口(可选但有效)

Port 2222

⚠️ 记得防火墙放行新端口


三、网络层加固

6. 使用防火墙限制 IP

sudo apt install ufw
sudo ufw allow from 1.2.3.4 to any port 2222
sudo ufw enable

7. 安装 fail2ban 防暴力破解

sudo apt install fail2ban

默认已保护 SSH,可自定义:

sudo nano /etc/fail2ban/jail.local

示例:

[sftp]
enabled = true
port = 2222
maxretry = 3
bantime = 1h

四、进阶安全(高安全场景)

8. 使用 ACL 精细化权限

sudo apt install acl
setfacl -m u:sftpuser:rwx /data/sftp

9. 日志审计

sudo nano /etc/ssh/sshd_config
LogLevel VERBOSE

查看日志:

sudo journalctl -u ssh

10. 定期更新系统

sudo apt update && sudo apt upgrade -y

五、推荐组合(安全基线)

✅ 非 root 用户
✅ 密钥登录
✅ Chroot SFTP
✅ fail2ban
✅ 防火墙限制


如果你愿意,我可以:

  • 给你一份完整 sshd_config 示例
  • 或按你的**使用场景(内网 / 公网 / 多用户)**定制方案

0 踩