zoukankan      html  css  js  c++  java
  • fail2ban[防止linux服务器被暴力破解]

    一 介绍fail2ban

       fail2ban 可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽),如:当有人在试探你的SSH、 SMTP、FTP密码,只要达到你预设的次数,fail2ban就会调用防火墙屏蔽这个IP,而且可以发送e-mail通知系统管理员,是一款很实用、很 强大的软件!

    功能和特性:
      1、支持大量服务。如sshd,apache,qmail,proftpd,sasl等等
      2、支持多种动作。如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(邮件通知)等等。
      3、在logpath选项中支持通配符
      4、需要Gamin支持(注:Gamin是用于监视文件和目录是否更改的服务工具)
      5、需要安装python,iptables,tcp-wrapper,shorewall,Gamin。如果想要发邮件,那必需安装postfix或sendmail
    核心原理:
    其实fail2ban就是用来监控,具体是调用iptables来实现。
     

    二 试试

     
    配置yum,安装服务
    [root@SeDion ~]# vim /etc/yum.repos.d/CentOS-Base.repo
    

    最后新增:

    name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms 
    baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable 
    gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms 
    gpgcheck=1 
    enabled=1 

    yum装fail2ban(如果装过 就把它卸载了)

    [root@SeDion ~]# yum -y install fail2ban
    
    服务配置目录为:
    rpm -ql fail2ban
    /etc/fail2ban/action.d   #动作文件夹,内含默认文件。iptables以及mail等动作配置
    /etc/fail2ban/fail2ban.conf #定义了fai2ban日志级别、日志位置及sock文件位置
    /etc/fail2ban/filter.d #条件文件夹,内含默认文件。过滤日志关键内容设置
    /etc/fail2ban/jail.conf #主要配置文件,模块化。主要设置启用ban动作的服务及动作阀值
    /etc/rc.d/init.d/fail2ban #启动脚本文件
     
    查看主配置定义
    [root@SeDion ~]# cat /etc/fail2ban/fail2ban.conf |grep -v ^# 
    

       

    #我们需要做的就是把这行改成 logtarget = /var/log/fail2ban.log,方便用来记录日志信息 

    查看主要配置文件
    [root@SeDion ~]# cat /etc/fail2ban/jail.conf |grep -v ^# |less
    

      

    [DEFAULT]                                 #全局设置 
    ignoreip = 127.0.0.1                     #忽略的IP列表,不受设置限制(白名单) 
    bantime  = 600                            #屏蔽时间,单位:秒 
    findtime  = 600                            #这个时间段内超过规定次数会被ban掉 
    maxretry = 3                               #最大尝试次数 
    backend = auto                            #日志修改检测机制(gamin、polling和auto这三种) 
     
    [ssh-iptables]                               #针对各服务的检查配置,如设置bantime、findtime、maxretry和全局冲突,服务优先级大于全局设置 
    enabled  = true                              #是否激活此项(true/false) 
    filter   = sshd                                #过滤规则filter的名字,对应filter.d目录下的sshd.conf 
    action   = iptables[name=SSH, port=ssh, protocol=tcp]             #动作的相关参数            
    sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com]   #触发报警的收件人 
    logpath  = /var/log/secure                #检测的系统的登陆日志文件 
    maxretry = 5                                  #最大尝试次数 
                                            
     

     三  应用

    ssh远程登录5分钟内3次密码验证失败,禁止用户IP访问主机

    动作文件(action.d/iptables.conf)以及日志匹配条件文件(filter.d/sshd.conf )是默认。

    所以配置主要在jail.conf文件

    [root@SeDion ~]# vi /etc/fail2ban/jail.conf
    

      

      改为3.

    启动服务:

      

    [root@SeDion ~]# service fail2ban start

      

    测试:

            测试发现确实有一定的延迟。多进行几次

      

    查看禁止ip

    [root@SeDion ~]# iptables -L |tail -4
    Chain fail2ban-SSH (1 references)
    target     prot opt source               destination       
    DROP       all  --  192.168.2.5          anywhere          
    RETURN     all  --  anywhere             anywhere     
    

      

    查看fail2ban记录文件:

    [root@SeDion ~]# vi /etc/fail2ban/jail.conf
    2014-01-11 20:26:02,453 fail2ban.actions: WARNING [ssh-iptables] Ban 192.168.2.5
    2014-01-11 20:26:20,923 fail2ban.actions: WARNING [ssh-iptables] 192.168.2.5 already banned
    2014-01-11 20:26:42,946 fail2ban.actions: WARNING [ssh-iptables] 192.168.2.5 already banned
    

      

  • 相关阅读:
    CSS截取字符串
    mysql数据库中列转行
    Html页面操作json串
    mysql批量上传数据
    常见的表单元素选中
    关于Connection must be valid and open.
    百度editor调用【图片上传阿里云】
    百度apistore第三方登陆
    如何提高网页运行性能
    Html页面加回滚
  • 原文地址:https://www.cnblogs.com/Alandre/p/3515305.html
Copyright © 2011-2022 走看看