sakibmoon.fail2ban
役割名
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 |
booleantrue 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年に作成されました。