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 暴力破解攻击的风险,提高服务器的安全性。
热门推荐
《富爸爸穷爸爸》43句金句:改变穷人思维模式,逐步走向财务自由
郑钦文:世界前三难突破,天赋与努力交响,大满贯之路挑战与希望
多措并举提升司法警察履职能力
希腊时间现在几点?全面解析希腊时区及时间查询方法
失眠多梦时的心理放松训练指南,助您恢复宁静心境
河南宝丰:麦田传古韵 书会续新篇
提升微信使用体验的个性化设置与实用技巧总结
收藏!国家知识产权公共服务平台操作指南
YOLOv8详解:从零开始理解目标检测
餐桌礼仪全攻略:从上菜顺序到摆盘艺术,提升你的用餐体验
拒绝offer的邮件应该怎么措辞?
如何合理正确选择水位计的种类和选型
银行|如何把握下阶段金融政策对银行的影响?
南开“双鼓(古)地区”的前世今生
洛阳老城十字街美食全攻略:从传统小吃到创意饮品,尽享千年古都的味蕾盛宴
约瑟夫英文名解析:含义、来源、发音、流行,你了解吗?
约瑟夫斯和他的《犹太古史》
破解超大城市出行难,“数智”重庆为城市道路“加速”
一“秸”一世界 探寻麦秆作画的秘密
12年的等待,肇庆姑娘让中国女子400米栏重回奥运!
糖尿病友肩部有这些信号:可能是并发症来了,别大意抓紧治!
“反向遗传”技术斩断亚洲鸡瘟传播网
如何正确解读体检报告
公积金贷款还款方式怎么选?简单分析帮你做决定
MySQL主从复制配置:实现高可用性与数据同步的步骤
大唐电信2024年中报深度分析:营收大幅下滑,净利润亏损收窄
科普 | 一起了解中药“CP”——药引
钢笔写生《南朝四百八十寺,多少楼台烟雨中》,让线条说话,简约而不简单
萧山交通大会战何以“链”向未来
AI大模型赋能:各领域应用对比与美好前景展望