发布于 

检查SSH失败登录(溯源与防范)

SSH端口暴露在公网上很容易被黑客扫描,并尝试登录系统,这种攻击基本每天都在发生。

1. 检查攻击来源

btmp 为二进制文件,会记录SSH端口登录失败的信息,包括尝试的用户名、IP和时间信息,文件路径为/var/log/btmp

1.1 查看文件btmp

使用命令lastb可以查看文件btmp的信息,参数-n可以指定显示数量。

1
lastb -n 10 | tac

image-20220915100057431

1.2 查看攻击者IP及攻击次数

1
lastb | awk '{ print $3}'| sort | uniq -c | sort -n

image-20220915100150442

1.3 查看攻击者尝试的用户名

1
lastb | awk '{ print $1}'| sort | uniq -c | sort -n

image-20220915100233562

2. 分析攻击者

对攻击次数第一的IP进行分析。

2.1 查看攻击开始的时间

1
lastb | grep 137.184.155.125

image-20220915100335648

2.2 查看攻击停止的时间

1
lastb | grep 137.184.155.125 | tac

image-20220915100427662

2.3 查看IP地理位置

1
curl ipinfo.io/137.184.155.125

image-20220915100514820

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 修改防火墙规则

修改iptablesfirewall规则设置白名单,盾住白名单外的IP访问。

1
2
iptables -t raw -A PREROUTING -s 自己的IP地址或者IP段 -p tcp --dport 22 -j DROP # 因为默认规则是ACCEPT全部放行,所以我们用DROP或者修改默认规则,这里ACCEPT
iptables -t raw -A PREROUTING -m mac --mac-source 自己的MAC地址 -p tcp --dport 22 -j DROP # 以MAC地址作为规则标准,MAC地址相同概率很小,所以比较安全