Image

ナレッジベース → Fail2Ban を使用してメールサーバーをパスワード推測から保護する

[仮想サーバー]
公開日: 30.05.2023

Fail2Banを設定します。このサービスは、サーバーをフラッド攻撃やサービスへのパスワードクラックから保護します。サーバーには毎日数千の外部サービスからアクセスがありますが、その一部は悪意のあるものです。Fail2Banを使用することで、複数回の認証失敗が発生した際にIPアドレスをブロックします。

このガイドでは、すでにメールサーバーが設定されていることを前提としており、パスワードクラックやその他の望ましくないネットワークアクティビティからの保護を設定します。メールサーバーの詳細な設定方法についてはこちらをご覧ください:


また、事前に設定されたOSを持つVPSを注文して、VPSサーバーの価格で企業メールサーバーを取得することもできます。


1. Fail2Banサービスをインストールします 

apt install fail2ban

設定を編集します

vi /etc/fail2ban/jail.d/defaults-debian.conf

[sshd]

enabled = true

[postfix]

enabled = true filter = postfix port = smtp,465,submission,imap,imaps,pop3,pop3s action = iptables[name=Postfix, port=smtp, protocol=tcp] logpath = /var/log/mail.log bantime = 120m maxretry = 3 findtime = 60m

この設定では、sshおよびpostfixサービスの保護を有効にし、ログファイルを処理して、複数回の認証失敗が発生した際にIPアドレスをブロックします。

一致するパターンがあるかどうかを確認するには、次のコマンドを使用します

fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/postfix.conf

デフォルトのフィルタを使用し、この場合、すぐに正常に動作しました。

2. サービスの起動

systemctl enable --now fail2ban

サービスを起動し、自動起動に追加しました。

ログを確認できます:

more /var/log/fail2ban.log

3. サービスの管理

状態や最新のアクティビティを確認するには、次のコマンドを使用します

fail2ban-client status - すべてのジェイルとその状態を表示します。

fail2ban-client status postfix - ジェイルのアクティビティ、現在ブロックされているIPアドレスを表示します。

IPアドレスを解除するには、次のコマンドを使用します

fail2ban-client set postfix unbanip xxx.xxx.xxx.xxx

ここで、postfixはジェイル名、xxx.xxx.xxx.xxxは#fail2ban-client status postfixのリスト内のIPアドレスです。

4. Rouncube認証のジェイルを追加します

次の内容をファイルに追加します

vi /etc/fail2ban/jail.d/defaults-debian.conf

[roundcube-auth]

enabled    = true

filter = roundcube-auth

port    = http,https

action = iptables[name=Roundcube-auth, port=http, protocol=tcp]

logpath    = /usr/share/nginx/html/webmail/logs/errors.log

bantime = 120m

maxretry = 3

findtime = 60m

Webメールで3回認証に失敗すると、2時間アクセスがブロックされます。

サービスを再起動します:

service fail2ban restart

フィルタの設定が完了しました。





No Comments Yet