zoukankan      html  css  js  c++  java
  • fail2ban防ssh爆破

    centos7(亲测可行)

    配置

    本文最后更新于2022.3.11,后续应该不会再更新了~

    fail2ban官网:http://fail2ban.org/wiki/index.php/Main_Page
    yum安装fail2ban:

    yum -y install epel-release
    yum -y install fail2ban
    

    将jail.conf复制改名为jail.local并vim编辑,官方不推荐直接在jail.conf上面修改,下面是官方推荐的用法:

    cp /etc/fail2ban/jail.conf  /etc/fail2ban/jail.local
    vim /etc/fail2ban/jail.local
    

    在文末添加如下代码:

    [ssh-iptables]
    enabled = true
    filter = sshd
    action = iptables[name=SSH, port=22, protocol=tcp]
    logpath = /var/log/secure  //如果没有secure文件,重启服务会失败,去创建secure文件即可,文件名也可以自定义
    maxretry = 3
    bantime = 365d
    findtime=365d
    #sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com]//添加邮件通知
    

    maxretry为尝试次数,如果一年内(findtime)尝试次数达三次,一年内禁止连接(bantime默认单位为秒,此处d表示天数)
    以上针对Centos7亲测有效

    还有一种食用方式,在/etc/fail2ban/jail.d目录中新建sshd.local,内容输入如下:

    [ssh-iptables]
    enabled = true
    filter = sshd
    action = iptables[name=SSH, port=22, protocol=tcp]
    logpath = /var/log/secure  //如果没有secure文件,重启服务会失败,去创建secure文件即可,文件名也可以自定义
    maxretry = 3
    bantime = 365d
    findtime=365d
    #sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com]//添加邮件通知
    

    然后重启fail2ban即可

    总结配置优先级:jail.d中的配置文件>jail.local>jail.conf

    解封

    那如何解封呢,以ssh服务为例:
    先查看有哪些状态:

    fail2ban-client status
    

    显示其中详情,如sshd,ssh,或者ssh-iptables:

    fail2ban-client status sshd
    

    解除封锁的IP,如:

    fail2ban-client set sshd unbanip XX.XX.XX.XX
    

    linux命令重命名

    如果嫌命令长了记不住,可以进行命令重命名,可以参考:https://www.cnblogs.com/sillage/p/14025652.html
    我们在my_alias.sh中添加如下命令(也可以根据需要自行添加如vstfp的解封,下面只是针对于ssh解封的快捷命令):

    alias uns='fail2ban-client set ssh-iptables unbanip '
    alias und='fail2ban-client set sshd unbanip '
    

    之后我们在解封ip时就可以直接用uns ip,und ip

    debian9

    关于debian9如何使用fail2ban呢,这里有一个vultr官网提供的教程How to Setup Fail2ban on Debian 9
    我去尝试了一下,没有成功,我也不知道为什么,还气的我直接rm -rf了,然后登录vultr控制台把服务器重装了。

    部分内容参考自克己复礼,更多内容请点击这

    添加邮件通知

    教程请参考:https://www.cnblogs.com/sillage/p/14589087.html

    fail2ban脚本

    该脚本一键安装、配置fail2ban,由笔者编写,centos7亲测可用,防ssh爆破,关注公众号韭菜安全(文章顶部右上角可扫码关注)回复fail2ban脚本获取。

    实操参考

    这是使用了两台服务器进行演示,可以看到当尝试超过三次以后,会提示以下信息,会直接拒绝连接,根本不给你输入密码的机会,证明fail2ban服务生效(由于ip是个人隐私,下面就用字母代替):

    [root@VM-0-7-centos htp]# ssh a.a.a.a
    ssh: connect to host a.a.a.a port 22: Connection refused
    

    下面是被ssh爆破的服务器,我们可以查看到被封锁的ip:

    [root@iZhp3661jqu8od84z9g4f8Z fail2ban]# fail2ban-client status 
    Status
    |- Number of jail:	1
    `- Jail list:	ssh-iptables
    [root@iZhp3661jqu8od84z9g4f8Z fail2ban]# fail2ban-client status ssh-iptables
    Status for the jail: ssh-iptables
    |- Filter
    |  |- Currently failed:	0
    |  |- Total failed:	0
    |  `- File list:	/var/log/secure
    `- Actions
       |- Currently banned:	1
       |- Total banned:	1
       `- Banned IP list:	b.b.b.b
    
    

    以下是对被封锁的ip进行解封操作:

    [root@iZhp3661jqu8od84z9g4f8Z fail2ban]# fail2ban-client set ssh-iptables unbanip b.b.b.b
    1
    [root@iZhp3661jqu8od84z9g4f8Z fail2ban]# fail2ban-client status ssh-iptables
    Status for the jail: ssh-iptables
    |- Filter
    |  |- Currently failed:	0
    |  |- Total failed:	0
    |  `- File list:	/var/log/secure
    `- Actions
       |- Currently banned:	0
       |- Total banned:	1
       `- Banned IP list:	
    [root@iZhp3661jqu8od84z9g4f8Z fail2ban]#
    

    被解封的服务器可以进行正常的ssh连接:

    [root@VM-0-7-centos htp]# ssh a.a.a.a
    root@a.a.a.a's password:
    
  • 相关阅读:
    C++ 对象间通信框架 V2.0 ××××××× 之(三)
    C++ 对象间通信框架 V2.0 ××××××× 之(二)
    C++ 对象间通信框架 V2.0 ××××××× 之一
    C++ 对象间通讯机制 框架实现
    websocket 传输数据帧打包 (client端)
    SetwindowText 之线程阻塞
    oracle虚拟索引的创建
    函数索引
    关于is null和is not null不能利用索引的测试
    索引的选择性
  • 原文地址:https://www.cnblogs.com/sillage/p/13966485.html
Copyright © 2011-2022 走看看