温馨提示×

怎样提高Debian SFTP安全性

小樊
45
2025-10-07 11:34:57
栏目: 智能运维

1. 更新系统与OpenSSH软件包
定期运行sudo apt update && sudo apt upgrade -y,确保Debian系统及OpenSSH服务器(openssh-server)为最新版本,及时修补已知安全漏洞。

2. 配置SSH服务限制SFTP访问
编辑/etc/ssh/sshd_config文件,进行以下关键设置:

  • 禁用root登录:设置PermitRootLogin no,防止攻击者通过暴力破解root账户获取系统最高权限;
  • 启用内部SFTP子系统:确保Subsystem sftp internal-sftp未被注释,使用OpenSSH内置的SFTP服务(更安全);
  • 限制用户组权限:添加Match Group sftpusers块,包含以下指令:
    ChrootDirectory %h(将用户限制在其家目录,无法访问系统其他路径);
    ForceCommand internal-sftp(强制用户只能使用SFTP,禁止SSH shell访问);
    AllowTcpForwarding no(禁用端口转发,防止隧道攻击);
    X11Forwarding no(禁用X11图形界面转发,减少攻击面)。

3. 创建专用SFTP用户组与用户

  • 创建专用组:sudo groupadd sftpusers
  • 添加用户并加入组:sudo useradd -m -G sftpusers -s /bin/false sftpuser-s /bin/false禁止用户登录shell);
  • 设置用户密码:sudo chpasswd(交互式输入密码,建议使用强密码)。

4. 正确设置用户家目录权限

  • 创建上传目录(可选但推荐):sudo mkdir /home/sftpuser/uploads
  • 设置所有权与权限:
    • 家目录必须属于root:sudo chown root:root /home/sftpuser
    • 家目录权限设为755:sudo chmod 755 /home/sftpuser(防止用户修改目录权限);
    • 上传目录属于用户:sudo chown sftpuser:sftpusers /home/sftpuser/uploads
    • 上传目录权限设为755或775(允许用户写入):sudo chmod 755 /home/sftpuser/uploads

5. 启用SSH密钥认证(禁用密码登录)

  • 生成密钥对(客户端执行):ssh-keygen -t ed25519(推荐Ed25519算法,安全性更高);
  • 上传公钥到服务器:ssh-copy-id sftpuser@your_server_ip
  • 修改/etc/ssh/sshd_config:设置PubkeyAuthentication yes(启用密钥认证)、PasswordAuthentication no(禁用密码认证);
  • 重启SSH服务:sudo systemctl restart sshd

6. 配置防火墙限制访问

  • 使用UFW(Uncomplicated Firewall)允许SSH/SFTP流量:sudo ufw allow OpenSSH
  • 启用防火墙:sudo ufw enable
  • 可选:限制访问IP(如仅允许公司IP):sudo ufw allow from your_trusted_ip to any port 22

7. 安装与配置Fail2Ban防暴力破解

  • 安装Fail2Ban:sudo apt install fail2ban -y
  • 复制默认配置:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  • 编辑jail.local,启用SSH防护:设置[sshd]部分的enabled = truemaxretry = 3(3次失败后封禁)、bantime = 3600(封禁1小时);
  • 重启Fail2Ban:sudo systemctl restart fail2ban

8. 定期监控与审计日志

  • 查看SSH/SFTP日志(实时):sudo tail -f /var/log/auth.log(Debian默认日志路径);
  • 使用工具(如logwatch)定期分析日志,关注异常登录尝试(如频繁失败、陌生IP)。

9. 其他增强措施

  • 最小化安装:仅安装必要的软件包(如openssh-server),减少系统攻击面;
  • 修改SSH默认端口(可选):编辑/etc/ssh/sshd_config,设置Port 2222(非标准端口),降低被自动扫描工具发现的概率(需同步修改防火墙规则);
  • 使用SELinux/AppArmor(可选):若系统支持,启用SELinux(sudo apt install selinux-basics selinux-policy-default)或AppArmor(默认启用),限制SFTP进程的权限。

0