如何在服务器端自动 ban 掉扫描 ssh 的 IP
作者:京东物流 罗旅帆
现在服务器在网络暴露一段时间就会有人不停的进行扫描各种端口,nginx 的 80,443,ssh 的 22 等。进行尝试渗透,并且现在有大量框架进行全自动扫描渗透。
为了最大化的阻止扫描,可以利用 fail2ban 这个框架来把频繁扫描的源 IP 直接丢进黑名单。让服务器在一定时间内拒绝连接。
1.安装 fail2ban:
# Ubuntu sudo apt update && sudo apt install fail2ban
# CentOS yum install fail2ban
我们已经完成了 fail2ban 的安装, 接下来就是 fail2ban 的配置
2.配置 fail2ban
首先使用 vi 或者 vim 打开 fail2ban 的规则配置文件
按 i 键插入,复制以下内容:
enable = ture filter =sshd # CentOS logpath = /var/log/secure # Ubuntu # logpath = /var/log/auth.log maxretry = 5 # 最大尝试次数 bantime = 86400 #封禁时间,单位 s。-1 为永久封禁
3.激活 fail2ban
在配置完成后, 当然是选择激活它啦
对于 CentOS7/8,Fedora
对于 Debian, Ubuntu 或 CentOS6:
如果是第一次启动的话建议把命令中的 restart 换成 start
CentOS7 设置 fail2ban 自启
4.检验 fail2ban
如果要检验 fail2ban 有没有正确启动, 可以使用这个命令
如果正确启动的话 fail2ban 会以 pong 作为回应(Server replied: pong), 其他情况就需要看看配置文件的格式正确以及是不是用 start 命令启动 fail2ban 什么的…
如果要查看 fail2ban 目前启用的规则的话
查看某个规则下被封禁的次数以及 ip(以[sshd]规则为例)
如果想看 iptables 的 ban 策略生效状态
可以通过
总结:
通过以上操作可以看到过去 24 小时内一共被 ban 了 很多 IP。如下图所示,通过这个策略。可以大幅度缓解 ssh 账号密码被暴力破解的进度
版权声明: 本文为 InfoQ 作者【京东科技开发者】的原创文章。
原文链接:【http://xie.infoq.cn/article/2201fc8dcc0fdfdddea099471】。文章转载请联系作者。
评论