SFTP配置时如何防止暴力破解
导读:SFTP防暴力破解的实用配置清单 一 基础加固 禁用密码登录、仅用密钥:在 /etc/ssh/sshd_config 中设置 PasswordAuthentication no、PubkeyAuthentication yes;客户端生成...
SFTP防暴力破解的实用配置清单
一 基础加固
- 禁用密码登录、仅用密钥:在 /etc/ssh/sshd_config 中设置 PasswordAuthentication no、PubkeyAuthentication yes;客户端生成密钥对(如 ssh-keygen -t rsa -b 4096),将公钥加入 ~/.ssh/authorized_keys,并确保目录与文件权限为 700/600。
- 禁止 root 直登:设置 PermitRootLogin no。
- 可选降低噪声:更改默认端口 Port 22 → 2222(仅为降低自动化扫描命中率,不能替代认证加固)。
- 重启生效:systemctl restart sshd。
以上措施能显著降低被暴力猜解的风险,尤其是“禁用密码 + 仅密钥”的组合对 SFTP 场景最为关键。
二 自动封禁与速率限制
- 使用 Fail2Ban 监控 SSH 登录失败并封 IP:
- 安装:yum install fail2ban -y 或 apt-get install fail2ban。
- 配置(示例):创建 /etc/fail2ban/jail.local
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 3
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure(CentOS/RHEL)或 /var/log/auth.log(Debian/Ubuntu)
maxretry = 3
bantime = 600 - 启动:systemctl start fail2ban & & systemctl enable fail2ban;验证:fail2ban-client status sshd。
- 用防火墙做连接速率限制(iptables 示例):
- 规则:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP - firewalld 亦可用 direct 规则实现相同效果。
Fail2Ban 与速率限制形成“事后封禁 + 事前限速”的纵深防御。
- 规则:
三 登录失败锁定与账户策略
- PAM 失败计数与解锁:
- 使用 pam_tally2(RHEL/CentOS 常用):在 /etc/pam.d/sshd 顶部加入
auth required pam_tally2.so onerr=fail deny=3 unlock_time=600
如需按用户解锁可执行:faillog -u < 用户名> -r。 - 使用 pam_faillock(更现代,部分发行版默认):在 /etc/pam.d/sshd 顶部加入
auth required pam_faillock.so preauth silent deny=3 unlock_time=600
在文件底部加入
account required pam_faillock.so
- 使用 pam_tally2(RHEL/CentOS 常用):在 /etc/pam.d/sshd 顶部加入
- 强密码策略:在 /etc/pam.d/system-auth 与 /etc/pam.d/password-auth 中配置 pam_pwquality 或 pam_cracklib 规则,强制长度、字符集与历史。
PAM 锁定能在多次失败后立即阻断后续尝试,配合 Fail2Ban 能覆盖更长时间窗的攻击。
四 系统与服务最小化
- 仅启用 SFTP 子系统:在 /etc/ssh/sshd_config 中设置
Subsystem sftp /usr/libexec/openssh/sftp-server(路径因发行版可能不同)。 - 保持系统与 OpenSSH 更新:及时修补漏洞,减少被利用的风险。
最小化攻击面与及时更新是长期稳固安全的基础。
五 快速验证与运维建议
- 验证与观测:
- 查看 Fail2Ban 状态:fail2ban-client status sshd;实时看日志:tail -f /var/log/fail2ban.log。
- 本地验证登录失败计数:使用 faillog -u < 用户名> (pam_tally2)。
- 运维要点:
- 变更前备份配置(如 /etc/ssh/sshd_config、/etc/fail2ban/jail.local),变更后逐步重启并检查会话。
- 若使用云厂商安全组,可叠加来源 IP 白名单与速率限制策略,形成多层防护。
通过状态检查与日志审计,能快速确认策略是否生效并及时发现异常。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SFTP配置时如何防止暴力破解
本文地址: https://pptw.com/jishu/754108.html
