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

プロジェクトについて

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.