SSH 暴力破解攻击的诊断与防御
创作时间:
作者:
@小白创作中心
SSH 暴力破解攻击的诊断与防御
引用
CSDN
1.
https://m.blog.csdn.net/2409_89014517/article/details/144930995
SSH 暴力破解攻击是指攻击者通过尝试大量用户名和密码组合,试图获取服务器的 SSH 访问权限。这种攻击如果不加以防护,可能导致服务器被入侵。以下是SSH 暴力破解攻击的诊断与防御方法。
一、SSH 暴力破解攻击的常见表现
- 系统登录日志异常:
- /var/log/auth.log
(Ubuntu/Debian)或
/var/log/secure
(CentOS/RHEL)中出现大量失败的 SSH 登录尝试。 - 日志中会显示类似以下信息:
Failed password for invalid user admin from 192.168.1.100 port 54321 ssh2
Failed password for root from 203.0.113.45 port 41234 ssh2
- 大量异常 SSH 连接:
- 使用工具
netstat
或
ss
查看服务器的 SSH 连接,发现大量来自同一或不同 IP 地址的连接。
netstat -tn | grep :22
- 系统资源消耗异常:
- 攻击可能导致 SSH 服务占用过多 CPU 或内存资源,影响系统性能。
- 服务器可能被封锁:
- 如果攻击持续,可能导致服务器 IP 被托管服务商临时封锁。
二、SSH 暴力破解攻击的诊断方法
1. 检查 SSH 登录日志
- 查看最近的 SSH 登录失败记录:
grep "Failed password" /var/log/auth.log # Ubuntu/Debian
grep "Failed password" /var/log/secure # CentOS/RHEL
- 示例输出:
Sep 25 10:23:45 server sshd[12345]: Failed password for root from 203.0.113.45 port 54321 ssh2
Sep 25 10:23:46 server sshd[12346]: Failed password for invalid user admin from 203.0.113.46 port 54322 ssh2
2. 检查登录的来源 IP
- 统计攻击来源 IP:
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head
- 示例输出:
100 203.0.113.45
85 203.0.113.46
3. 检查当前 SSH 连接
- 查看当前 SSH 连接的来源 IP:
netstat -tn | grep :22
- 或使用
ss
命令:
ss -tn sport = :22
4. 检查系统负载
- 如果攻击正在进行,可能导致系统负载升高:
top
或:
htop
三、SSH 暴力破解的防御措施
1. 修改默认 SSH 端口
- 默认的 SSH 端口是
22
,攻击者通常会针对该端口进行扫描和攻击。通过修改端口,可以降低被攻击的可能性。 - 修改 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
- 修改以下行(例如改为 2222):
Port 2222
- 重启 SSH 服务:
sudo systemctl restart sshd
2. 禁用 Root 用户登录
- 禁止使用 Root 用户直接登录,强制使用普通用户并通过
sudo
提权。 - 修改 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
- 找到并设置:
PermitRootLogin no
- 重启 SSH 服务:
sudo systemctl restart sshd
3. 使用强密码和 SSH 密钥认证
(1) 强密码策略
- 使用 12 位以上的复杂密码,包括大小写字母、数字和特殊字符。
- 强制所有用户更换弱密码。
(2) 配置 SSH 密钥认证
- 生成 SSH 密钥:
ssh-keygen -t rsa -b 4096
- 将公钥上传到服务器:
ssh-copy-id user@<服务器IP>
- 禁用密码登录:
- 修改
/etc/ssh/sshd_config
,设置:
PasswordAuthentication no
- 重启 SSH 服务:
sudo systemctl restart sshd
4. 限制 SSH 登录尝试
(1) 使用 Fail2Ban
- Fail2Ban是一个基于日志的防护工具,可以自动封禁尝试暴力破解的 IP。
- 安装 Fail2Ban:
sudo apt install fail2ban # Ubuntu/Debian
sudo yum install fail2ban # CentOS/RHEL
- 配置 SSH 防护规则:
- 编辑
/etc/fail2ban/jail.local
(如果文件不存在,复制
/etc/fail2ban/jail.conf
):
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log # Ubuntu/Debian
# logpath = /var/log/secure # CentOS/RHEL
maxretry = 5
bantime = 3600
- 启动服务并启用开机启动:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
(2) 限制登录尝试次数
- 修改 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
- 添加以下内容:
MaxAuthTries 3
- 重启 SSH 服务:
sudo systemctl restart sshd
5. 设置防火墙规则
(1) 使用 UFW(Ubuntu/Debian)
- 只允许特定 IP 或子网访问 SSH:
sudo ufw allow from <IP地址或子网> to any port 22
sudo ufw enable
(2) 使用 iptables
- 限制每个 IP 每分钟的连接次数:
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP
6. 使用 GeoIP 限制登录
- 如果服务器只需要特定国家的访问,可以使用 GeoIP 模块限制 SSH 登录。
- 安装
xtables-addons
并配置 GeoIP 规则:
sudo iptables -A INPUT -p tcp --dport 22 -m geoip ! --src-cc CN,US -j DROP
7. 设置 IP 白名单
- 如果只有固定的 IP 地址需要访问服务器,可以设置白名单。
- 使用防火墙规则限制 SSH 登录来源:
sudo iptables -A INPUT -p tcp --dport 22 -s <允许的IP地址> -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
8. 监控并报警
- 配置 SSH 登录监控和报警:
- 使用工具(如
Logwatch
、
Fail2Ban
)定期检查登录日志。 - 设置邮件通知,当超过一定数量的失败登录尝试时发送报警。
四、总结
针对 SSH 暴力破解的防护,可以采取以下综合措施:
- 修改默认端口并禁用 Root 登录。
- 使用强密码或 SSH 密钥认证,彻底禁用密码登录。
- 配置 Fail2Ban 或类似工具自动封禁恶意 IP。
- 使用防火墙限制 SSH 登录来源,启用 IP 白名单。
- 监控登录日志,及时发现和应对潜在威胁。
通过这些防御手段,可以有效减少 SSH 暴力破解攻击的风险,提高服务器的安全性。
热门推荐
为什么要发明身份证
狗狗可以吃的和不能吃的食物有哪些
盐酸普萘洛尔注射液成人使用的安全剂量范围
加元走势:触及一周低位,前景不容乐观
身材管理的训练项目有哪些?一文详解五种关键训练
《原神》游戏内动物捕捉技巧指南
解除ChatGPT字数限制:开启创作无限可能
皇室战争:打造能攻能守的卡组,搭配策略是关键
文科理科的优势是什么?适合女生学的专业理科有哪些?
论文开题答辩要怎么说
如何签订严谨的房屋买卖合同
马耳他旅游:10大精选景点带你领略岛国魅力
个体工商户银行开户的必要性与操作
《人民的名义》:侯亮平和祁同伟的个人发展之路
艾草的功效和作用有哪些
控股与子公司的区别及法律分析
新配眼镜视物变形怎么办?原因分析与解决方案全攻略
高糖奶茶喝得多,小心肾结石!7个坏习惯让肾脏变“采石场”
电除尘器的工作原理(生活电器小家电)
如何分析银行股票的财务报告
Stable Diffusion进阶:Omnigen模型详细介绍与优化教程
手机号前为什么要加+86?国际通信中国家代码的重要性解析!
《木兰花慢·杨花》该如何理解?创作背景是什么?
如何测量接触电阻
你的快递送上门了吗?
蟠枣的品种介绍,是采取嫁接方法培育出的冬枣新品种
摩托车驾驶证需要年审吗?一文详解年审、换证和年检规定
喝茶和喝咖啡对睡眠的影响有何不同?
如何评估投资公司的业绩表现?这些评估标准在市场波动中如何应用?
地下车库沟盖板怎么选?三种常见材料的优缺点分析