Oefenweb.fail2ban

fail2ban

CI Ansible Galaxy

在类似Debian的系统中设置fail2ban。

要求

变量

  • fail2ban_loglevel:[默认:3,在较新版本中为INFO]:设置日志级别输出(例如,1 = 错误2 = 警告3 = 信息4 = 调试

  • fail2ban_logtarget:[默认:/var/log/fail2ban.log]:设置日志目标。可以是文件、SYSLOG、STDERR或STDOUT

  • fail2ban_syslog_target:[默认:/var/log/fail2ban.log]:

  • fail2ban_syslog_facility:[默认:1]:

  • fail2ban_socket:[默认:/var/run/fail2ban/fail2ban.sock]:设置用于与守护进程通信的套接字文件

  • fail2ban_pidfile:[默认:/var/run/fail2ban/fail2ban.pid]:设置pid文件,用于存储守护进程的进程ID(仅适用于fail2ban >= 0.8.9

  • fail2ban_dbpurgeage:[默认:86400]:设置应从数据库中清除的禁用时间

  • fail2ban_ignoreips:[默认:[127.0.0.1/8]]:应被fail2ban忽略的IP地址/CIDR掩码/DNS主机

  • fail2ban_bantime:[默认:600]:设置禁用时间

  • fail2ban_maxretry:[默认:3]:主机被禁用之前的最大重试次数

  • fail2ban_findtime:[默认:600]:如果主机在过去的fail2ban_findtime内产生了fail2ban_maxretry,则会被禁用

  • fail2ban_backend:[默认:auto]:指定用于获取文件修改的后端。对于Debian 12,要求使用systemd

  • fail2ban_banaction:[默认:iptables-multiport]:设置全局/默认的禁用操作

  • fail2ban_banaction_allports:[默认:iptables-allports]:为所有端口设置全局/默认的禁用操作

  • fail2ban_mta:[默认:sendmail]:电子邮件操作

  • fail2ban_protocol:[默认:tcp]:设置默认协议

  • fail2ban_chain:[默认:INPUT]:指定在iptables-*操作中需要添加跳转的链

  • fail2ban_action:[默认:%(action_)s]:默认操作。注意,变量(包括在配置文件其他地方定义的操作)必须用python样式的%()s包裹,以便展开

  • fail2ban_sendername:[默认:Fail2ban]:通过mta操作发送电子邮件时的发件人名称。注意:使用fail2ban_sender设置发件人电子邮件地址。

  • fail2ban_sender:[可选]:通过mta操作发送电子邮件时的发件人地址。

  • fail2ban_filterd_path:[可选]:包含过滤器的目录路径(注意末尾的斜杠

  • fail2ban_actiond_path:[可选]:包含操作的目录路径(注意末尾的斜杠

  • fail2ban_jaild_path:[可选]:包含监狱的目录路径(注意末尾的斜杠

  • fail2ban_services [默认见 defaults/main.yml]:服务定义

  • fail2ban_services.{n}.name [必需]:服务名称(例如 ssh

  • fail2ban_services.{n}.enabled [默认:true]:是否启用

  • fail2ban_services.{n}.* [可选]:选项名称

  • fail2ban_services.{n}.*.* [可选]:选项的值

对于版本 >= 0.11.1

  • fail2ban_bantime_increment:[默认:true]:在之前被禁用后增加禁用时间
  • fail2ban_bantime_factor:[默认:1]:用于bantime_formulabantime_multipliers的禁用时间增加因子
  • fail2ban_bantime_formula:[默认:'ban.Time * (1<<(ban.Count if ban.Count<20 else 20)) * banFactor']:用于计算增加的禁用时间的公式。注意,您可以使用bantime_formulabantime_multipliers,但bantime_multipliers优先。
  • fail2ban_bantime_overalljails:[默认:false]:如果定义了多个监狱,则对所有监狱禁用IP
  • fail2ban_bantime_rndtime:[可选]:针对在禁用时间后立即尝试访问的智能机器人选项
  • fail2ban_bantime_multipliers:[可选]:替代bantime_formula使用的乘数。例如 1 2 4 8 16 32 64注意,对于bantime = 600bantime_factor = 1,这将是600*1*1, 600*1*2...

依赖关系

示例

简单示例

---
- hosts: all
  roles:
    - oefenweb.fail2ban

启用sshd过滤器(带非默认设置)

---
- hosts: all
  roles:
    - oefenweb.fail2ban
  vars:
    fail2ban_services:
      # 在较旧版本中,Fail2Ban称为ssh
      - name: sshd
        port: 2222
        maxretry: 5
        bantime: -1

添加自定义过滤器(来自角色外部)

---
- hosts: all
  roles:
    - oefenweb.fail2ban
  vars:
    fail2ban_filterd_path: ../../../files/fail2ban/etc/fail2ban/filter.d/
    fail2ban_services:
      - name: apache-wordpress-logins
        port: http,https
        filter: apache-wordpress-logins
        logpath: /var/log/apache2/access.log
        maxretry: 5
        findtime: 120

许可证

MIT

作者信息

Mischa ter Smitten(基于ANXS的工作)

反馈、错误报告、请求等...

欢迎!

关于项目

Set up fail2ban in Debian-like systems

安装
ansible-galaxy install Oefenweb.fail2ban
许可证
mit
下载
351.4k
拥有者