鉴于在centos的世界里面,ssh非法尝试登陆的现象非常普遍,那么最好的解决方案可以更改ssh的端口号,不用默认的22。或者可以使用fail2ban,短时间内多次尝试ssh登陆失败的话,就把对应ip加入黑名单。在本文中,苏南大叔,将要讲述,如何利用fail2ban,做到ssh的暴力破解防范。

centos 系统,利用 fail2ban 和 firewalld 拦截非法 ssh 请求 - fail2ban_ssh_hero
centos 系统,利用 fail2ban 和 firewalld 拦截非法 ssh 请求(图5-1)

本文的前提是:centos服务器,已经安装好了fail2banfirewalld。相关文章是:

fail2ban的目录结构

centos服务器上,安装完fail2ban之后,默认的安装目录是:/etc/fail2ban/。定制fail2ban的功能,就是修改这个目录下面的配置文件的过程。大多数情况下,需要编辑的配置文件是:/etc/fail2ban/jail.local。如果没有这个文件,直接添加一个就可以。

centos 系统,利用 fail2ban 和 firewalld 拦截非法 ssh 请求 - 001_fail2ban_folder
centos 系统,利用 fail2ban 和 firewalld 拦截非法 ssh 请求(图5-2)

jail这个单词的意思是:监狱。顾名思义,jail.local就是配置本地违禁规则的地方。当然,还有个jail.config文件,这个是默认的配置存放的地方。大多数情况下,大家还是只关心jail.local文件即可。

设置jail.local的默认配置

vi /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime  = 60
findtime = 600
maxretry = 5
banaction = firewallcmd-ipset
action = %(action_mwl)s
backend = auto

centos 系统,利用 fail2ban 和 firewalld 拦截非法 ssh 请求 - 002_jail
centos 系统,利用 fail2ban 和 firewalld 拦截非法 ssh 请求(图5-3)

这里通过banaction设置了禁用拉黑的默认动作firewallcmd-ipset,而规则就是:在findtime秒时间内,如果出现maxretry次匹配的话,就加入黑名单bantime秒。因为是实验的缘故,这里,苏南大叔的设置的默认值是:黑名单60秒。超过这个时间,就会继续允许访问。在实际的生产环境下,还是应该设置的bantime时间长一些,比较好点,单位是秒。

配置ssh的匹配规则

继续编辑文件jail.local,添加ssh相关的规则。

vi /etc/fail2ban/jail.local

下面是个ssh的范例,基本上来说,也不用做什么特殊的修改。

[sshd]
enabled = true
filter  = sshd
port    = 22
action = %(action_mwl)s
logpath = /var/log/secure

centos 系统,利用 fail2ban 和 firewalld 拦截非法 ssh 请求 - 003_jail
centos 系统,利用 fail2ban 和 firewalld 拦截非法 ssh 请求(图5-4)

注意:logpath是用来提供给fail2ban读取的ssh日志位置,port是端口号,filter是规则名称。规则是已经在filter.d文件中定义好的。

实验效果展示

配置相关屏蔽规则之后,重启服务器。然后,外网故意输入错误密码5次。然后再次连接ssh的话,会提示如下信息,演示成功。

ssh: connect to host 192.168.99.43 port 22: Connection refused

centos 系统,利用 fail2ban 和 firewalld 拦截非法 ssh 请求 - 006_效果展示
centos 系统,利用 fail2ban 和 firewalld 拦截非法 ssh 请求(图5-5)

总结

本篇文章中,演示的是ssh相关屏蔽措施,实际上还可以用于其他更多方面的屏蔽。更多经验文字,请点击苏南大叔的博客。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   centos    ssh

本站的忠实读者小伙伴,正在阅读下面这些文章: