防ssh爆破

SSH 爆破攻击分析与防御指南

一、SSH爆破攻击概述

SSH爆破(Brute Force Attack)是指攻击者通过自动化工具尝试大量用户名和密码组合,试图暴力破解SSH服务器的登录凭证。这是最常见的网络攻击方式之一。

二、攻击特征识别

从您之前提供的日志来看,典型的SSH爆破攻击特征包括:

  1. 大量无效用户尝试​: Invalid user postgres from 115.241.228.34 port 48582 Invalid user dbadmin from 165.154.105.89 port 43696
  2. 短时会话​:session opened for user root(uid=0) by (uid=584788) session closed for user root (实际攻击中可能没有成功登录)
  3. 来自不同IP的频繁连接​:
    • 多个IP地址短时间内尝试连接
    • 使用随机端口发起连接

三、防御措施

1. 禁用密码认证(推荐)

修改/etc/ssh/sshd_config

PasswordAuthentication no
PermitRootLogin no
ChallengeResponseAuthentication no

然后重启SSH服务:

bashbash复制sudo systemctl restart sshd

2. 使用密钥认证

  1. 生成密钥对: bashbash复制ssh-keygen -t rsa -b 4096
  2. 将公钥上传到服务器: bashbash复制ssh-copy-id user@server

3. 限制登录用户

sshd_config中添加:

AllowUsers your_username
DenyUsers root postgres dbadmin

4. 修改默认SSH端口

修改sshd_config

Port 2222

然后重启服务。

5. 安装Fail2Ban

安装并配置Fail2Ban自动封禁恶意IP:

bashbash复制sudo apt install fail2ban

编辑/etc/fail2ban/jail.local

[sshd]
enabled = true
port = 22,2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600

6. 使用防火墙限制访问

只允许特定IP访问SSH:

bashbash复制sudo ufw allow from 192.168.1.100 to any port 2222
sudo ufw enable

四、攻击检测与响应

1. 监控SSH日志

定期检查/var/log/auth.log

bashbash复制sudo tail -f /var/log/auth.log | grep sshd

2. 设置入侵检测

安装并配置OSSEC或AIDE进行实时监控。

3. 定期审计账户

检查无效用户:

bashbash复制sudo awk '/Failed password/ {print $(NF-5)}' /var/log/auth.log | sort | uniq -c | sort -nr

五、应急响应

如果发现正在进行的爆破攻击:

  1. 立即更改SSH端口: bashbash复制sudo nano /etc/ssh/sshd_config # 修改Port行后重启服务 sudo systemctl restart sshd
  2. 临时封禁可疑IP: bashbash复制sudo iptables -A INPUT -s 115.241.228.34 -p tcp --dport 22 -j DROP
  3. 启用只读模式(如果可能): bashbash复制sudo mount -o remount,ro /

六、高级防护建议

  1. 双因素认证​:为SSH添加TOTP或U2F认证
  2. 端口敲门​:配置端口敲门机制
  3. 网络隔离​:将SSH服务放在DMZ或专用子网
  4. 日志集中管理​:将SSH日志发送到SIEM系统分析

通过以上措施,可以显著降低SSH爆破攻击的风险。建议定期审计安全配置,并保持系统和安全工具更新。

注意ubuntu的ssh重启命令是

sudo systemctl restart ssh

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注