Loading

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 <trusted_ip> 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
posted @ 2022-12-26 15:33  夷某蓁  阅读(789)  评论(0)    收藏  举报