sakibmoon.fail2ban

役割名

Ansible Galaxy Build Status
Fail2banをインストールおよび管理するためのAnsibleロールです。

要件

Ansibleのバージョンは2.6以降

インストール

Ansible Galaxy

ansible-galaxy install sakibmoon.fail2ban を使用してください。

Git

git clone https://github.com/sakibmoon/ansible-role-fail2ban.git を使用してください。

基本的な使い方

fail2banをインストールして有効にし、sshをfail2banで設定します。

    - hosts: servers
      vars:
        fail2ban_services:
          - name: "sshd"
            enabled: "true"
            port: "ssh"
            filter: "sshd"
            logpath: "/var/log/auth.log"
            maxretry: 6       
      roles:
         - sakibmoon.fail2ban

より複雑な使用例やオプションの詳細については、役割変数例のプレイブック を参照してください。

役割変数

サービス監視オプション

fail2ban_services
fail2banが監視するサービスのリストです。各リストの項目には、サービス名とログパスを含める必要があります。変更したい設定だけを指定します。その他の設定はグローバルな刑務所設定から取得されます こちら を参照。

サービスオプション:

name: サービスの名前
logpath: 監視するサービスのログパス
port: 監視するポート(カンマ区切り)
enabled: この牢獄を有効にするかどうか

アクションリスト

fail2ban_actionlist
作成するアクションのリストです。アクションは /etc/fail2ban/action.d/ ディレクトリに保存されます。アクションは次のオプションを含むことができます。

name: アクション名。ファイルの名前
sections: Definition, Initなどのセクションのリスト。エントリの辞書が含まれます。
file_ext: (オプション)ファイルの拡張子。localまたはconfのいずれか。デフォルトはlocalです。

例:

    fail2ban_actionlist:
      - name: toy-action1
        sections:
          - name: Definition
            options:
              - name: actionstart
                value: "ActionStart value"
              - name: actionflush
                value: "Actionflush value"
          - name: Init
            options:
              - name: timeout
                value: "timeout value"
        file_ext: "local"
      - name: toy-action2
        sections:
          - name: INCLUDES
            options:
              - name: before
                value: something-to-include.local
          - name: Definition
            options:
              - name: actionstart
                value: "ActionStart value"
              - name: actionflush
                value: "Actionflush value"
          - name: Init
            options:
              - name: timeout
                value: "timeout value"

フィルターリスト

fail2ban_filterlist
作成するフィルターのリストです。フィルターも /etc/fail2ban/action.d/ ディレクトリに保存されます。フォーマットは上記と同じです。

Fail2banの設定オプション

変数名 Fail2banオプション名 オプション値 デフォルト値 説明
fail2ban_confpath [FILE] /etc/fail2ban/fail2ban.local fail2banの設定が書き込まれるパス。
fail2ban_loglevel loglevel CRITICAL
ERROR
WARNING
INFO
DEBUG
0-3
ERROR(バージョン > 0.8.x
1(バージョン 0.8.x
ログ出力のレベルを設定します。
fail2ban_logtarget logtarget [FILE]
STDOUT
STDERR
SYSLOG
/var/log/fail2ban.log ログのターゲットを設定します。
fail2ban_syslogsocket syslogsocket auto
[FILE]
auto syslogソケットファイルを設定します。
fail2ban_socket socket [FILE] /var/run/fail2ban/fail2ban.sock デーモンと通信するためのソケットファイル。
fail2ban_pidfile pidfile [FILE] /var/run/fail2ban/fail2ban.pid fail2banサーバーのプロセスIDを保存するPIDファイル。
fail2ban_dbfile dbfile None
:memory:
[FILE]
/var/lib/fail2ban/fail2ban.sqlite3 fail2banの永続データを保存するファイル。
fail2ban_dbpurgeage dbpurgeage [SECONDS] 86400 データベースからバンを削除する年齢を設定します。
fail2ban_dbmaxmatches dbmaxmatches [INT] 20 チケットごとにデータベースに保存されるマッチの数。
fail2ban_stacksize stacksize [SIZE] 0 新しく作成されるスレッドのためのスタックサイズを指定します。

グローバル刑務所設定オプション

変数名 Fail2banオプション名 オプション値 デフォルト値 説明
fail2ban_jailpath [FILE] /etc/fail2ban/jail.local Fail2banのデフォルト設定を書くファイル。
fail2ban_ignoreself ignoreself boolean
true
false
true 自分のIPアドレスを禁止するかどうか。
fail2ban_ignoreip ignoreip IPアドレスのリスト バンしないIPのリスト。
fail2ban_ignorecommand ignorecommand /path/to/command 無視するIPを受け取り、trueまたはfalseを返す外部コマンド。
fail2ban_ignorecache ignorecache disabled 無視の失敗チェックのためのキャッシュパラメータを提供。
fail2ban_bantime bantime [SECONDS] 600 有効なバンの期間(秒)。
fail2ban_findtime findtime [SECONDS] 600 バンにカウントされる失敗の時間間隔(秒)。
fail2ban_maxretry maxretry [INT] 5 ホストが禁止される前の失敗数。
fail2ban_backend backend pyinotify
gamin
polling
systemd
auto
auto ファイル変更を取得するためのバックエンドを指定。
fail2ban_usedns usedns yes
warn
no
raw
warn ログ内のホスト名を信頼するかどうか。
fail2ban_logencoding logencoding auto
ascii
utf-8
etc.
auto ログファイルのエンコーディングを指定。
fail2ban_mode mode normal
ddos
extra
aggressive
normal フィルタのモード。
fail2ban_filter filter フィルタ名 %(__name__)s[mode=%(mode)s] 刑務所が使用するフィルタ。
fail2ban_logtimezone logtimezone UTC
UTC+0200
GMT-0100
etc.
ログ行のタイムゾーンを強制設定。
fail2ban_banaction banaction iptables, iptables-new, iptables-multiport, shorewall, etc iptables-multiport デフォルトの禁止アクション。
fail2ban_banaction_allports banaction_allports iptables, iptables-new, iptables-multiport, shorewall, etc iptables-allports "allports" 刑務所のための禁止アクション。
fail2ban_action action %(action_)s デフォルトアクションを選択。
fail2ban_failregex failregex Python正規表現 フィルタのfailregexesに追加されるregex。
fail2ban_ignoreregex ignoreregex ログ行が一致した場合、その行を無視します。

依存関係

依存関係はありません。

サポートされているプラットフォーム

このロールは、すべてのRedhatまたはDebianベースのLinuxディストリビューションで動作するはずです。以下のプラットフォームでテストされています。

  • CentOS 8
  • CentOS 7
  • Ubuntu 18.04
  • Ubuntu 16.04
  • Debian 10
  • Debian 9

例のプレイブック

以下のプレイブックは、fail2banをインストールし、有効にし、ssh牢獄を追加します。

    - hosts: servers
      vars:
        fail2ban_services:
          - name: "sshd"
            enabled: "true"
            port: "ssh"
            filter: "sshd"
            logpath: "/var/log/auth.log"
            maxretry: 6       
      roles:
         - sakibmoon.fail2ban

ライセンス

MIT

著者情報

このロールはsakibmoonによって2020年に作成されました。

プロジェクトについて

An ansible role to install and manage Fail2ban

インストール
ansible-galaxy install sakibmoon.fail2ban
ライセンス
mit
ダウンロード
592
所有者