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
安装
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.