SSH服务暴力攻击,你知道怎么应对吗?

前言

SSH服务密码暴力破解是对远程登陆机器的蛮力攻击,攻击者会利用工具试图使用各种用户名和登录密码登录可以远程的机器设备。SSH服务暴力攻击最常见的是针对root用户,攻击者一旦登录成功就可以获取机器的最高权限。在注重信息安全的今天,SSH暴力攻击也是最常见的攻击方案,应对SSH暴力攻击的方法较多,通常有以下方案:

(1)禁止root用户远程登录;

(2)禁止密码登录SSH服务,使用密钥登录系统;

(3)获取暴力攻击设备IP信息,并通过防火墙或第三方攻击限制IP地址访问;

上述方案侧重点不同,而本文基于CentOS 7.4系统通过shell程序获取暴力攻击IP信息,并通过防火墙限制IP地址访问。

Shell程序简介

Shell程序例如CentOS记录SSH服务登录失败的日志特性获取登录失败的IP地址信息,结合Firewalld服务规则,限制IP地址访问。其基本功能如下:

(1)检查btmp备份文件路径和日志文件,若不存在则创建;

(2)检查firewalld运行状态,若服务未运行则启动firewalld服务;

(3)读取系统/var/log/btmp文件内容,获取登录失败次数超过50的IP地址(该数字可以根据实际调整);

(4)通过firewalld规则,限制IP地址访问;

程序分析—定义日志输出格式

Shell程序定义日志日志输出格式函数,在shell程序中调用日志输出函数实现日志的格式化输出。具体实现内容如下:

SSH服务暴力攻击,你知道怎么应对吗?

程序分析—系统基础环境检查

Shell程序执行后会清理CentOS内btmp文件,在程序执行前会检查btmp备份文件路径和日志文件,若不存在则创建。具体实现内容如下:

SSH服务暴力攻击,你知道怎么应对吗?

程序分析—获取攻击者IP信息并添加Firewalld策略

Shell程序通过读取/var/log/btmp文件内容后,获取最近登录失败次数大于50次的IP地址判定为获取攻击者IP 地址,通过Firewalld规则限制攻击者IP地址。具体实现内容如下:

SSH服务暴力攻击,你知道怎么应对吗?

添加crond定时服务

Shell程序上传至CentOS系统内,本例将shell程序放置在/root路径下,并赋予可执行权限。通过编写crontab定时服务后每小时执行。

[root@freeops ~]# ls -al Untitled-SSH.sh
-rw-r--r-- 1 root root 3305 Jul 17 16:37 Untitled-SSH.sh
[root@freeops ~]# chmod +x Untitled-SSH.sh
[root@freeops ~]# ls -al Untitled-SSH.sh
-rwxr-xr-x 1 root root 3305 Jul 17 16:37 Untitled-SSH.sh
[root@freeops ~]# crontab -e
0 */1 * * * /root/Untitled-SSH.sh
[root@freeops ~]# crontab -l
0 */1 * * * /root/Untitled-SSH.sh
SSH服务暴力攻击,你知道怎么应对吗?

启动crond服务

Crond定时服务是基于CentOS系统内crond服务,添加crond定时服务后需要确认CentOS系统内crond服务运行状态。具体实现如下所示:

SSH服务暴力攻击,你知道怎么应对吗?

总结

通过shell程序自动化分析CentOS系统/var/log/btmp日志获取登录失败次数大于50次的IP地址信息后暂存在Failed_login_IP内,结合shell程序中的for循环写入Firewalld规则。

SSH服务暴力攻击,你知道怎么应对吗?

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章