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 暴力破解攻击的风险,提高服务器的安全性。
热门推荐
如何申请公益律师援助的具体条件
FreeRTOS消息队列详解:概念、API与实现原理
地暖管材选购指南:三种主流材质的优劣分析与选购建议
PPR管与铝塑管的区别是什么?
视频监控制度是什么(视频监控管理办法职责)
【婴配奶粉】降低牛乳致敏的关键要点——水解乳蛋白
基于STM32单片机的物联网远程WiFi控制智能定时LED台灯设计
如何理解K线图的构成要素和分析方法?这些要素和方法如何辅助投资决策?
治疗类风湿关节炎的用药时长,取决于这3方面
解读《2024中国类风湿关节炎诊疗指南》
黑科技还是智商税?专家提醒→
全球五大摩托车赛事:速度与激情的极致碰撞
清朝祖训后宫不得干政,为何慈溪还能垂帘听政,统治大清几十年
RO膜反渗透滤芯工作原理是什么
肺部痰多怎么办
揭秘《柳舟记》柳眠棠家族背景!李世民都要客套 武则天拼命打压
Delta动态对冲:期权市场中的风险管理艺术
诸“子”安徽 | 上善若水
数据编织与ETL:优化数据流以提升分析效率300%
烤面包温度多少烤几分钟?不同种类面包烤制指南
建议睡觉时把手机放1.5米以外?不是因为辐射,而是→
合同违约拖欠费用怎么办?法律详解与处理步骤
有之以为利,无之以为用:无的哲学智慧与现实意义丨道德经11章
DIY组装机真的比整机贵?深度解析硬件成本与性价比的博弈
身体出现这5种疼痛,可能是疾病来临,要及时就诊
mcg是什么单位?了解mcg在测量中的应用与含义
AIGC对哪些行业影响最大?能否替代人类进行创作?
零基础学习英语语法的技巧
伊犁文物:历史的见证者
低配电脑畅玩《黑神话:悟空》的完整攻略