PR

ubuntu に fail2ban を導入する手順メモ

インフラ
この記事は約3分で読めます。
記事内に広告が含まれています。

この記事では Ubuntu で fail2ban を設定する手順を備忘録として記載します。

サーバーを運用していると、SSH への不正アクセス試行やブルートフォース攻撃が頻繁に発生します。

個人でも VPS を使用するときはかなり気にしないといけないです。

fail2ban は、ログファイルを監視して不審なアクセスパターンを検出し、自動的に IP アドレスをブロックするセキュリティツールです(重宝します)。

fail2ban とは

fail2ban は以下の機能(一例)を提供してくれるので、外部に晒す ubuntu のセットアップ時には必須級です。

  • ログファイルの継続的な監視
  • 失敗したログイン試行の検出
  • 指定回数以上の失敗で IP アドレスを自動ブロック
  • 一定時間後の自動ブロック解除

インストール手順

1. パッケージの更新

sudo apt update
sudo apt upgrade -y

2. fail2ban のインストール

sudo apt install fail2ban -y

3. インストールの確認

sudo systemctl status fail2ban

正常にインストールされていれば、active (running) と表示されます。

基本設定

1. 設定ファイルのコピー

fail2ban のデフォルト設定は /etc/fail2ban/jail.conf にありますが、アップデート時に上書きされる可能性があるため、カスタム設定ファイルを作成します。

jail.local として作るのが王道のようです。

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

2. 基本設定の編集

sudo nano /etc/fail2ban/jail.local

主要な設定項目を設定します。 一応、スキップしてもいいです。

[DEFAULT]
# IP アドレスをブロックする時間(秒)
bantime = 3600

# 監視期間(秒)
findtime = 600

# 最大試行回数
maxretry = 3

# 除外する IP アドレス(自分の IP を追加推奨)
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24

3. SSH 保護の有効化

[sshd] セクションを見つけて以下のように設定します。

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600

ちなみに、ssh port 22 のままにしている恐ろしい運用はないと思いますが、port = ssh の箇所は変えているならそのポート番号に変えておきましょう。

サービスの起動と確認

1. fail2ban の再起動

sudo systemctl restart fail2ban
sudo systemctl enable fail2ban

2. 動作確認

# サービス状態の確認
sudo systemctl status fail2ban

# アクティブな jail の確認
sudo fail2ban-client status

# SSH jail の詳細確認
sudo fail2ban-client status sshd

運用コマンド

ブロック状況の確認

# 全体の状況
sudo fail2ban-client status

# 特定の jail の状況
sudo fail2ban-client status sshd

手動での IP ブロック解除

sudo fail2ban-client set sshd unbanip [IP アドレス]

おわりに

fail2ban を導入することで、サーバーへの不正アクセス試行を自動的にブロックし、セキュリティを大幅に向上させることができます。

vps など、自分で防御する必要がある環境の場合は絶対入れましょう。

コメント

タイトルとURLをコピーしました