centos6 安装 Fail2ban

Fail2ban 能够监控系统日志,匹配日志中的错误信息(使用正则表达式),执行相应的屏蔽动作(支持多种,一般为调用 iptables ),是一款很实用、强大的软件。

如:攻击者不断尝试穷举 SSH 、SMTP 、FTP 密码等,只要达到预设值,fail2ban 就会调用防火墙屏蔽此 IP ,并且可以发送邮件通知系统管理员。

安装

#CentOS内置源并未包含fail2ban,需要先安装epel源
yum -y install epel-release
#安装fial2ban
yum -y install fail2ban

安装成功后fail2ban配置文件位于/etc/fail2ban,其中jail.conf为主配置文件,相关的匹配规则位于filter.d目录,其它目录/文件一般很少用到,如果需要详细了解可自行搜索。

在jail.d文件夹下新增 jail.local文件,编辑内容如下:


    vim /etc/fail2ban/jail.d/jail.local

- centos6.8 所使用环境 新增内容如下:

    #defalut这里是设定全局设置,如果下面的监控没有设置就以全局设置的值设置。
    [DEFAULT]
    # 用于指定哪些地址ip可以忽略 fail2ban 防御,以空格间隔。
    ignoreip = 127.0.0.1/8
    # 客户端主机被禁止的时长(默认单位为秒)
    bantime  = -l
    # 过滤的时长(秒)
    findtime  = 600
    # 匹配到的阈值(次数)
    maxretry = 3
    
    [ssh-iptables] #   策略 释放时可用
    # 是否开启
    enabled  = true
    # 过滤规则
    filter   = sshd
    # 动作  发送邮件一定要加在action 后面,一定要注意位置
    action   = iptables[name=SSH, port=2222, protocol=tcp]
               mail-whois[name=SSH,[email protected]]
    # 日志文件的路径
    logpath  = /var/log/secure
    # 匹配到的阈值(次数)
    maxretry = 2


- 若 是firewall 防火墙, 使用如下配置(配置说明:是如果同一个IP,在10分钟内,如果连续超过5次错误,则使用Firewalld将他IP ban了。输入systemctl start fail2ban启动fail2ban来试试效果。):

    [DEFAULT]
    ignoreip = 127.0.0.1/8
    bantime  = 86400
    findtime = 600
    maxretry = 5
    #这里banaction必须用firewallcmd-ipset,这是fiewalll支持的关键,如果是用Iptables请不要这样填写
    banaction = firewallcmd-ipset
    action = %(action_mwl)s
    
    [sshd]
    enabled = true
    filter  = sshd
    port    = 22
    action = %(action_mwl)s
    logpath = /var/log/secure

- 参数说明 

    ignoreip:IP白名单,白名单中的IP不会屏蔽,可填写多个以(,)分隔
    bantime:屏蔽时间,单位为秒(s)
    findtime:时间范围
    maxretry:最大次数
    banaction:屏蔽IP所使用的方法,上面使用firewalld屏蔽端口

    [sshd]:名称,可以随便填写
    filter:规则名称,必须填写位于filter.d目录里面的规则,sshd是fail2ban内置规则
    port:对应的端口
    action:采取的行动
    logpath:需要监视的日志路径


查看当前被禁止登陆的ip:

 fail2ban-client status ssh-iptables

根据策略释放禁止的ip

fail2ban-client set ssh-iptables unbanip 14.120.90.183

其他命令

start	启动fail2ban server和监狱
reload	重新加载配置文件
stop	暂停fail2ban和监狱
status	查看运行的监控服务数量和列表
set loglevel 	设置日志等级,有 CRITICAL, ERROR, WARNING,NOTICE, INFO, DEBUG
get loglevel	获取当前日志的等级
set <JAIL> idle on|off 	设置某个监控(监狱)的状态。
set <JAIL> addignoreip <IP>	设置某个监控(监狱)可以忽略的ip
set <JAIL> delignoreip <IP>	删除某个监控(监狱)可以忽略的ip
set <JAIL> banip <IP>	将ip加入 监控(监狱)
set <JAIL> unbanip <IP>	将ip从监控(监狱)移除

相关链接

猜你喜欢

转载自blog.csdn.net/it201441402325/article/details/82820573
今日推荐