この記事では 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 など、自分で防御する必要がある環境の場合は絶対入れましょう。
コメント