2026年5月19日
2026年5月19日
fail2banでPostfix・Dovecotを保護する方法
はじめに
PostfixやDovecotは多くのメールサーバーで使用される基本的なSMTP(電子メール送信)とPOP3/IMAP(電子メール受信)のソフトウェアです。しかし、これらのサービスは攻撃者からも標的となります。fail2banはそのような攻撃を防ぐためのツールであり、頻繁に失敗する認証試行や不正なアクセスをブロックします。
症状・背景
- Dovecotでのログイン試行: 一部のユーザーがパスワードを間違えて何度もログインしようとすると、攻撃者がそのチャンスを使う可能性があります。
- PostfixでのSPF/FWHELMチェック: 暴力的なメール送信者のIPアドレスから来る大量のSPF/FWHELM失敗報告により、サーバー自体が負担を受けます。
手順・設定方法
ステップ1: fail2banインストール
まず、必要なパッケージをインストールします。Ubuntu/Debianの場合:
# apt-getコマンドを使用してfail2banをインストール
sudo apt-get update
sudo apt-get install fail2ban
ステップ2: Postfix用のfilterとaction設定
Postfixのログファイルから不正な認証試行を検出し、それをブロックするためのフィルタを作成します。まず/etc/fail2ban/filter.d/postfix-sasl.confファイルを開きます。
# postfixの認証失敗を監視するためのfilter設定
sudo nano /etc/fail2ban/filter.d/postfix-sasl.conf
# 必要な行を追加または修正します。以下は一部例です:
failregex =\s*=post\s+<.*>\s+\[<HOST>\]
同様に、Dovecotの認証失敗も監視するためのフィルタを作成します。
# Dovecotの認証失敗を監視するためのfilter設定
sudo nano /etc/fail2ban/filter.d/dovecot-login.conf
# 必要な行を追加または修正します。以下は一部例です:
failregex =\s*login:[^=]*authentication failure\s+for\s+user\s+[^,]*\s+from\s+<HOST>\s+\(ip=[^\)]*\)
ステップ3: action設定
次に、不正なIPアドレスをブロックするためのaction設定を行います。/etc/fail2ban/jail.localファイルを開き、必要な設定を行います。
# PostfixとDovecotの保護用のjail設定
sudo nano /etc/fail2ban/jail.local
[postfix-sasl]
enabled = true
filter = postfix-sasl
action = iptables[name=postfix-sasl, port=smtp, protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5
[dovecot-login]
enabled = true
filter = dovecot-login
action = iptables[name=dovecot-login, port=pop3,pop3s,imap,imaps,protocol=all]
logpath = /var/log/dovecot-access.log
maxretry = 5
ステップ4: fail2banサービスを再起動
設定が完了したら、fail2banサービスを再起動して有効にします。
# fail2banのサービスを再起動
sudo systemctl restart fail2ban
注意事項
- パフォーマンスへの影響: fail2banは定期的にログファイルをチェックします。頻繁なチェックはサーバー負荷を増やす可能性があります。
- 誤ったブロック: 不正な認証試行以外の原因でもIPがブロックされることがあります。そのため、定期的にリストを見直すことが重要です。
- セキュリティ上の注意: フィルタとアクションの設定は細かく調整することが推奨されます。
まとめ
1. fail2banインストール: PostfixやDovecotの保護を開始するために必要です。
2. フィルタ作成: 特定のログから不正な認証試行を検出します。
3. アクション設定: 不正なIPアドレスをブロックする方法を指定します。
4. サービス再起動: 新しい設定を有効にするために必要です。
関連記事: