2025年12月17日水曜日

fail2ban で ban 情報を永続化する方法

fail2ban で ban 情報を永続化する方法

概要

これまでの方法だと docker compose down -> up -d すると ban 情報もクリアされてしまうので永続化する方法を紹介します

環境

  • Ubuntu 24.04
  • docker
  • linuxserver/fail2ban 1.1.0-r2-ls26
  • fail2ban 1.1.0

修正箇所

  • /config/fail2ban/fail2ban.sqlite3 を永続化する
  • fail2ban.sqlite3 をホスト側に先に作成する (ファイルがないとディレクトリマウントになり fail2ban の起動に失敗するため)

前回からの差分

先に

  • mkdir data
  • touch data/fail2ban.sqlite3

をしておきます
そして以下を書き換えて down -> up -d すれば OK です

diff --git a/compose.yaml b/compose.yaml
index 7a8a33f..5381790 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -20,6 +20,7 @@ services:
       - ./config/jail.local:/config/fail2ban/jail.d/jail.local
       - ./config/filter.d/nginx-404.conf:/config/fail2ban/filter.d/nginx-404.conf
       - ./config/action.d/slack.conf:/config/fail2ban/action.d/slack.conf
+      - ./data/fail2ban.sqlite3:/config/fail2ban/fail2ban.sqlite3
       - ./nginx/log:/remotelogs/nginx:ro  # nginxログを読み取り専用で監視
     environment:
       - PUID=1000  # 自身のユーザIDとグループIDに合わせて変更 (config/ 配下の権限がコンテナ側のユーザIDで変更されてしまうため編集ができなくなる)

最後に

sqlite3 のファイルを保持しましょう
down 中は解放状態になるので注意しましょう

0 件のコメント:

コメントを投稿