LoginSignup
2
1

More than 3 years have passed since last update.

Fail2BanでRainLoopへの不正アクセスをBANする

Last updated at Posted at 2019-08-16

はじめに

WebベースのシンプルなメールクライアントRainLoopをサーバーにインストールすることで、Webブラウザから自分のメールアカウントにアクセスすることができます。
本記事では、Fail2Banを使ってRainLoopへの不正アクセスを対策し、不正なログインを試みたクライアントのIPアドレスをBANします。

対象読者

RainLoopを導入するサーバー管理者。

環境

  • Debian 9.9
  • Fail2Ban 0.9.6-2
  • RainLoop v1.13.0

Fail2Banのインストール

APTでインストール。

$ sudo apt install fail2ban   
$ sudo service fail2ban start

RainLoopのインストール

RainLoopは公式サイトから「Community edition」をダウンロードして/var/www/rainloop/に展開します。
基本的な設定は他の記事で解説されているので割愛します。

不正アクセスの対策をする

RainLoopとFail2Banの設定を変更します。1

RainLoopのログ出力を設定

RainLoopの設定ファイルは/var/www/rainloop/data/_data_/_default_/configs/application.iniにあります。
[logs]セクションの以下の項目を変更し、ログ出力時のデフォルトのタイムゾーンがUTCになっているのを日本標準時(システムのタイムゾーン)に合わせます。
また、出力されるログのファイル名をauth-fail.logにしておきます。

application.ini
time_offset = 9

auth_logging = On
auth_logging_filename = "fail2ban/auth-fail.log"
auth_logging_format = "[{date:Y-m-d H:i:s}] Auth failed: ip={request:ip} user={imap:login} host={imap:host} port={imap:port}"

Fail2Banに設定を追加

/etc/fail2ban/filter.d/rainloop.confを作成してauth-fail.logの出力にマッチするフィルタを設定します。

rainloop.conf
[Definition]
failregex = Auth failed: ip= user=.* host=.* port=.*$

また、/etc/fail2ban/jail.localを作成し、RainLoop用の設定を追加します。ここでは、作成したffilter.d/rainloop.confをフィルタに設定し、対象ログにauth-fail.logを指定します。

jail.local
[rainloop]
enabled = true
filter  = rainloop
logpath = /var/www/rainloop/data/_data_/_default_/logs/fail2ban/auth-fail.log

設定ファイルを作成したら、fail2ban-clientコマンドから設定を読み込みます。

$ sudo fail2ban-client reload

これにより、jail.confの設定に基づき、600秒以内に5回ログインに失敗したクライアントのIPアドレスを600秒間BANし、サーバーへのアクセスを遮断するiptablesが設定されます。なお、この設定を変更する場合もjail.confは変更せず、jail.localに新たな項目を追加して上書きします。

動作確認

/var/log/fail2ban.logから、ログインの失敗と対象のBANが確認できます。また、iptables -LコマンドよりChain f2b-rainloopが追加されていることが分かります。
なお、BANされている間はSSHでサーバーに接続することもできなくなってしまうため動作を確認する際は注意しましょう。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1