写点什么

如何在服务器端自动 ban 掉扫描 ssh 的 IP

  • 2024-11-06
    北京
  • 本文字数:855 字

    阅读完需:约 3 分钟

作者:京东物流 罗旅帆


现在服务器在网络暴露一段时间就会有人不停的进行扫描各种端口,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 的规则配置文件


vi /etc/fail2ban/jail.conf
复制代码


按 i 键插入,复制以下内容:


[DEFAULT]bantime  = 86400maxretry = 5findtime = 600banaction = firewallcmd-allports[sshd]enabled  = truefilter   = sshdlogpath  = /var/log/securemaxretry = 3
复制代码


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


sudo systemctl restart fail2ban
复制代码


对于 Debian, Ubuntu 或 CentOS6:


sudo service fail2ban restart
复制代码


如果是第一次启动的话建议把命令中的 restart 换成 start


CentOS7 设置 fail2ban 自启


systemctl enable fail2ban.service
复制代码

4.检验 fail2ban

如果要检验 fail2ban 有没有正确启动, 可以使用这个命令


sudo fail2ban-client ping
复制代码


如果正确启动的话 fail2ban 会以 pong 作为回应(Server replied: pong), 其他情况就需要看看配置文件的格式正确以及是不是用 start 命令启动 fail2ban 什么的…


如果要查看 fail2ban 目前启用的规则的话


fail2ban-client status
复制代码


查看某个规则下被封禁的次数以及 ip(以[sshd]规则为例)


fail2ban-client status sshd
复制代码


如果想看 iptables 的 ban 策略生效状态


可以通过


sudo iptables -L INPUT -v -n | less 
复制代码

总结:

通过以上操作可以看到过去 24 小时内一共被 ban 了 很多 IP。如下图所示,通过这个策略。可以大幅度缓解 ssh 账号密码被暴力破解的进度



发布于: 刚刚阅读数: 3
用户头像

拥抱技术,与开发者携手创造未来! 2018-11-20 加入

我们将持续为人工智能、大数据、云计算、物联网等相关领域的开发者,提供技术干货、行业技术内容、技术落地实践等文章内容。京东云开发者社区官方网站【https://developer.jdcloud.com/】,欢迎大家来玩

评论

发布
暂无评论
如何在服务器端自动ban掉扫描ssh的IP_京东科技开发者_InfoQ写作社区