nickjj.fail2ban

什么是 ansible-fail2ban? 构建状态

这是一个用于安装和配置 fail2ban 的 ansible 角色。

它解决了什么问题,为什么有用?

安全很重要,而 fail2ban 是一个优秀的工具,可以在最小或甚至无需配置的情况下增强服务器的安全性。

角色变量

以下是默认值的列表及其说明。

# 输出的日志级别是多少?
# 1 = 错误,2 = 警告,3 = 信息,4 = 调试
fail2ban_loglevel: 3

# 日志输出应该发送到哪里?
# SYSLOG, STDERR, STDOUT, 文件
fail2ban_logtarget: /var/log/fail2ban.log

# 套接字应该创建在哪里?
fail2ban_socket: /var/run/fail2ban/fail2ban.sock

# 哪个 IP 地址、CIDR 标记或 DNS 主机应该被忽略?
fail2ban_ignoreip: 127.0.0.1/8

# 禁止持续多长时间(秒)?
fail2ban_bantime: 600

# 尝试多少次才会被禁止?
fail2ban_maxretry: 6

# 应如何检测文件变更?
# gamin, polling, auto
fail2ban_backend: polling

# 邮件报告应该发送到哪里?
fail2ban_destemail: root@localhost

# 应如何应用禁止?
# iptables, iptables-new, iptables-multiport, shorewall 等
fail2ban_banaction: iptables-multiport

# 应使用什么邮件动作?
# sendmail 或 mail
fail2ban_mta: sendmail

# 默认协议应该是什么?
fail2ban_protocol: tcp

# 在 iptables-* 中哪个链将添加 JUMPs?
fail2ban_chain: INPUT

# 默认的禁止动作应该是什么?
# action_, action_mw, action_mwl
fail2ban_action: action_

# 应监控哪些服务?
# 可以将 fail2ban_services 定义为空字符串以不监控任何内容。
# 可以将多个服务定义为标准 yaml 列表。
fail2ban_services:
    # 服务名称
    # 必填。
  - name: ssh

    # 是否启用?
    # 可选:默认为 "true"(必须是字符串)。
    enabled: "true"

    # 服务使用哪个端口?
    # 用逗号分隔多个端口,不要有空格。
    # 必填。
    port: ssh

    # 服务使用什么协议?
    # 可选:默认为上述列出的协议。
    protocol: tcp

    # 应使用什么过滤器?
    # 必填。
    filter: sshd

    # 监控哪个日志路径?
    # 必填。
    logpath: /var/log/auth.log

    # 尝试多少次后会被禁止?
    # 可选:默认为上述的 maxretry。
    maxretry: 6

    # 默认的禁止动作应该是什么?
    # 可选:默认为上述的 action。
    action: action_

    # 应如何应用禁止?
    # 可选:默认为上述的 banaction。
    banaction: iptables-multiport

# 缓存 apt-update 的时间(秒)。
apt_cache_valid_time: 86400

示例剧本

为了本示例假设您有一个名为 app 的组,并且您有一个典型的 site.yml 文件。

要使用这个角色,可以编辑您的 site.yml 文件,使其看起来像这样:

---
- name: 确保应用服务器已配置
- hosts: app

  roles:
    - { role: nickjj.fail2ban, sudo: true, tags: fail2ban }

假设您想编辑一些值,可以通过打开或创建位于 inventory 目录相对位置的 group_vars/app.yml 文件来完成,并将其设置如下:

---
fail2ban_services:
  - name: ssh
    port: ssh
    filter: sshd
    logpath: /var/log/auth.log
  - name: postfix
    port: smtp,ssmtp
    filter: postfix
    logpath: /var/log/mail.log

安装

$ ansible-galaxy install nickjj.fail2ban

要求

已在 Ubuntu 12.04 LTS 上测试,但在其他类似的版本上也应可以使用。

Ansible galaxy

如果您想评价,可以在官方 ansible galaxy 上找到它。

许可证

MIT

关于项目

Install and configure fail2ban.

安装
ansible-galaxy install nickjj.fail2ban
许可证
mit
下载
50.7k
拥有者
Currently a self employed freelance developer & teacher. I mainly work with Flask, Rails, Bash, Docker, Kubernetes, Ansible & Terraform. Also a @docker captain.