nickjj.fail2ban
ansible-fail2banとは? 
ansible-fail2banは、fail2banをインストールおよび設定するためのansibleロールです。
どんな問題を解決し、なぜ便利なのか?
セキュリティは重要であり、fail2banは最小限の構成または設定なしでサーバーを強化する優れたツールです。
ロール変数
以下は、デフォルト値のリストとそれらの説明です。
# 出力すべきログレベルは?
# 1 = ERROR, 2 = WARN, 3 = INFO, 4 = DEBUG
fail2ban_loglevel: 3
# ログ出力はどこへ送信されるべきか?
# SYSLOG, STDERR, STDOUT, file
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が監視すべきサービスは?
# 何も監視しないために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.