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-authport = http,https
action = iptables[name=Roundcube-auth, port=http, protocol=tcp]logpath = /usr/share/nginx/html/webmail/logs/errors.log
bantime = 120mmaxretry = 3
findtime = 60m
Webメールで3回認証に失敗すると、2時間アクセスがブロックされます。
サービスを再起動します:
service fail2ban restart
フィルタの設定が完了しました。