检查SSH失败登录(溯源与防范)
SSH端口暴露在公网上很容易被黑客扫描,并尝试登录系统,这种攻击基本每天都在发生。
1. 检查攻击来源
btmp 为二进制文件,会记录SSH端口登录失败的信息,包括尝试的用户名、IP和时间信息,文件路径为/var/log/btmp
1.1 查看文件btmp
使用命令lastb可以查看文件btmp的信息,参数-n可以指定显示数量。
1 | lastb -n 10 | tac |

1.2 查看攻击者IP及攻击次数
1 | lastb | awk '{ print $3}'| sort | uniq -c | sort -n |

1.3 查看攻击者尝试的用户名
1 | lastb | awk '{ print $1}'| sort | uniq -c | sort -n |

2. 分析攻击者
对攻击次数第一的IP进行分析。
2.1 查看攻击开始的时间
1 | lastb | grep 137.184.155.125 |

2.2 查看攻击停止的时间
1 | lastb | grep 137.184.155.125 | tac |

2.3 查看IP地理位置
1 | curl ipinfo.io/137.184.155.125 |

3. 防范措施
3.1 修改SSH端口
修改SSH端口可以避免广撒网式端口扫描及后续攻击。
3.1.1 打开配置文件
SSH配置文件是sshd_config
1 | vim /etc/ssh/sshd_config |
3.1.2 修改端口
修改前参数:
1 | # port 22 |
修改后参数:
1 | port 4883 |
3.1.3 重启守护程序
1 | systemctl restart sshd |
3.2 修改复杂密码
设置密码为字符+数字+符号组合,最少8位以上就没那么容易暴力破解。
3.3 修改防火墙规则
修改iptables或firewall规则设置白名单,盾住白名单外的IP访问。
1 | iptables -t raw -A PREROUTING -s 自己的IP地址或者IP段 -p tcp --dport 22 -j DROP # 因为默认规则是ACCEPT全部放行,所以我们用DROP或者修改默认规则,这里ACCEPT |