最近,我找了个朋友帮我测试了下网站的安全,结果果然测试出了几个安全问题,其中一个就是ssh的爆破问题,而今天我就要教大家如何使用一个优秀的工具——fail2ban来保护我们的服务器
首先是安装fail2ban,就是通过ssh或者宝塔面板等方式连接到shell ,由于我的服务器用的是Ubuntu系统,所以使用apt下载安装。输入sudo apt-get install fail2ban
进行安装。
接下来,我们为了在更新中能保留下我们自定义的内容,复制出一份新的配置文档(当然,这两份文档都会被fail2ban读取),输入以下代码:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
进行复制操作。
接下来,我们就可以开始编辑我们的配置文件了。我们先输入sudo nano /etc/fail2ban/jail.local
进行编辑,接着,我们往下转动鼠标滚轮,就能看到下面几项:ignorecommand,bantime,findtime,maxretry。这就是我们需要设置的值。这几项分别的意思是:IP白名单(无论怎么访问都不会被封禁的IP列表),封禁时间,检测时间(在下一参数中统一解释),最多测试次数(也就是在检测时间中,检测了最多测试次数后,ip就会被封禁),而四个参数合起来的意思就是:在findtime里,不是ignorecommand里的某个IP试了maxretry次登录后仍然没登陆成功,将会被封禁bantime秒(bantime可以使用m(分钟)和h(小时)来配置,也可以设置为-1,也就是永久封禁爆破者),如果没有上面这两个单位,系统会认为该值的单位是秒)。而这个的推荐配置是:300,300,5,而IP白名单个人配置了127.0.0.1,保证宝塔面板shell不会被禁用。接下来我们按ctrl+X保存和退出nano,输入sudo service fail2ban restart
重启fail2ban,fail2ban就能正常使用了。
接着,我们可以回到我们的工作机,打开cmd,输入ssh 服务器IP并多次输错密码,来测试服务器是否会ban人。等待设置的bantime后,我们回到服务器,使用sudo fail2ban-client status sshd
查看我们是否被ban,如果在Banned IP List一栏中出现了我们电脑,就证明我们成功配置了服务器!(sudo fail2ban-client status sshd也可以用于查询服务器拦截了哪些爆破者)
1 条评论
抓虫补漏