admin 2026-07-05 07:12:47 攻略指南

SSH暴力破解排查与防御思路

SSH暴力破解排查与防御的思路:

# SSH暴力破解排查与防御

## 排查思路

### 1. 检查系统日志

- 查看最近的SSH登录尝试日志:

```sh

grep "Failed password" /var/log/auth.log

识别大量失败登录尝试的IP地址。

2. 监控异常流量

使用网络监控工具(如Wireshark、tcpdump)捕捉和分析网络流量。

配置IDS/IPS(如Snort)检测异常SSH连接尝试。

3. 用户账户检查

确保系统用户账户没有使用弱密码。

检查是否有异常用户账户被创建或使用。

防御思路

1. 使用强密码和密钥认证

强制使用强密码策略,禁止简单和常见密码。

配置SSH仅允许密钥认证,禁用密码认证:PasswordAuthentication no

PubkeyAuthentication yes

2. 更改默认SSH端口

将SSH服务的默认端口22更改为其他不常用端口:Port 2222

修改后在/etc/ssh/sshd_config中配置。

3. 使用防火墙规则

配置防火墙(如iptables或ufw)仅允许可信IP地址访问SSH端口:ufw allow from to any port 22

4. 启用Fail2ban

使用Fail2ban自动检测和禁止IP地址的暴力破解尝试。

安装和配置Fail2ban:sudo apt-get install fail2ban

配置文件在/etc/fail2ban/jail.local中设置SSH监控和封禁策略。

5. 限制SSH访问

限制只有特定用户可以通过SSH登录:AllowUsers username

禁用root用户的SSH登录:PermitRootLogin no

6. 使用二步验证

配置Google Authenticator或其他二步验证方法增加安全性。

安装并配置Google Authenticator:sudo apt-get install libpam-google-authenticator

7. 定期更新和补丁

定期更新系统和SSH软件包,确保所有安全补丁已应用。

实施示例

1. 编辑SSH配置文件 /etc/ssh/sshd_config

Port 2222

PermitRootLogin no

PasswordAuthentication no

PubkeyAuthentication yes

AllowUsers myuser

2. 配置Fail2ban

创建或编辑/etc/fail2ban/jail.local:[sshd]

enabled = true

port = 2222

filter = sshd

logpath = /var/log/auth.log

maxretry = 5

bantime = 3600

3. 启动和启用Fail2ban服务

sudo systemctl start fail2ban

sudo systemctl enable fail2ban

4. 配置防火墙(以ufw为例)

sudo ufw allow 2222/tcp

sudo ufw enable