开发者社区 > 博文 > 如何在服务器端自动ban掉扫描ssh的IP
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

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

  • 95****
  • 2024-11-05
  • IP归属:北京
  • 100浏览

     现在服务器在网络暴露一段时间就会有人不停的进行扫描各种端口,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  = 86400
    maxretry = 5
    findtime = 600
    banaction = firewallcmd-allports
    [sshd]
    enabled  = true
    filter   = sshd
    logpath  = /var/log/secure
    maxretry = 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 账号密码被暴力破解的进度


    文章数
    2
    阅读量
    0