温馨提示×

Debian下如何防止SFTP暴力破解

小樊
45
2025-10-26 10:51:05
栏目: 智能运维

Debian下防止SFTP暴力破解的有效措施

1. 使用SSH密钥认证替代密码认证

公钥认证是防范暴力破解的核心手段之一,相比密码认证更难被破解。具体操作如下:

  • 在客户端生成SSH密钥对:ssh-keygen -t rsa -b 4096(默认生成id_rsa私钥和id_rsa.pub公钥)。
  • 将公钥上传至服务器用户目录的.ssh文件夹:mkdir -p ~/.sshchmod 700 ~/.sshcat id_rsa.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys
  • 编辑SSH配置文件/etc/ssh/sshd_config,启用公钥认证并禁用密码认证:
    PubkeyAuthentication yes
    PasswordAuthentication no
    
  • 重启SSH服务使配置生效:sudo systemctl restart sshd

2. 配置账户锁定策略

通过限制登录失败次数,自动锁定可疑账户,阻止持续暴力破解。常用方法有两种:

  • 使用PAM模块:编辑/etc/pam.d/sshd文件,添加以下行(以pam_faillock为例):
    auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600
    auth sufficient pam_unix.so nullok try_first_pass
    auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600
    auth sufficient pam_faillock.so authsucc audit deny=3 unlock_time=600
    account required pam_unix.so
    
    此配置表示:连续3次登录失败后,账户锁定10分钟(unlock_time=600秒)。
  • 使用Fail2Ban(推荐):安装Fail2Ban:sudo apt install fail2ban;创建或编辑/etc/fail2ban/jail.local文件,添加SSH规则:
    [sshd]
    enabled = true
    port = 22
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 3
    bantime = 600
    
    重启Fail2Ban服务:sudo systemctl restart fail2ban

3. 调整SSH服务配置

通过限制登录尝试次数、禁用root登录等方式,降低暴力破解风险:

  • 编辑/etc/ssh/sshd_config文件,设置以下参数:
    MaxAuthTries 3          # 限制每次登录尝试的最大次数为3次
    PermitRootLogin no      # 禁止root用户直接登录
    AllowUsers your_username # 仅允许指定用户登录(替换为实际用户名)
    
  • 重启SSH服务:sudo systemctl restart sshd

4. 更改默认SSH端口

默认的SSH端口(22)是暴力破解工具的主要扫描目标,更改端口可显著降低被攻击的概率:

  • 编辑/etc/ssh/sshd_config文件,找到#Port 22,取消注释并修改为其他端口(如2222):
    Port 2222
    
  • 更新防火墙规则,允许新端口访问:若使用ufw,执行sudo ufw allow 2222/tcp;若使用iptables,执行sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
  • 重启SSH服务:sudo systemctl restart sshd

5. 使用防火墙限制访问

通过防火墙仅允许可信IP地址访问SSH/SFTP服务,阻断非法IP的连接尝试:

  • 使用UFW(简易防火墙)
    sudo ufw allow from trusted_ip to any port 2222 proto tcp  # 替换trusted_ip为可信IP
    sudo ufw enable
    
  • 使用iptables
    sudo iptables -A INPUT -p tcp --dport 2222 -s trusted_ip -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 2222 -j DROP
    sudo iptables-save | sudo tee /etc/iptables/rules.v4  # 保存规则
    

6. 定期更新系统和软件

保持Debian系统及OpenSSH软件包的最新版本,及时修复已知安全漏洞,降低被暴力破解的风险:

sudo apt update && sudo apt upgrade -y

7. 监控与日志分析

启用详细日志记录,定期检查SSH登录日志,及时发现异常活动:

  • 编辑/etc/ssh/sshd_config文件,设置日志级别为VERBOSE
    LogLevel VERBOSE
    
  • 重启SSH服务:sudo systemctl restart sshd
  • 使用grep命令查看失败登录记录:sudo grep "Failed password" /var/log/auth.log

通过以上措施的组合使用,可有效提升Debian系统下SFTP服务的安全性,大幅降低暴力破解的风险。需注意的是,安全配置应根据实际需求调整(如bantimemaxretry等参数),并定期复查配置的有效性。

0