You are currently viewing ログイン試行が鬱陶しいので「Fail2Ban」を入れてみた

ログイン試行が鬱陶しいので「Fail2Ban」を入れてみた

個人レンタルしているVPSに対してrootでのログイン試行が鬱陶しいのでFail2Banを入れてみることにしました。

Fail2Banを早速入れてみる

dnf(yum)で入れる事もできるようですが、最新版はgitから入れるらしいです
https://github.com/fail2ban/fail2ban

以下のコマンドで導入します(rootユーザーで実行しました)

cd /opt
git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
python setup.py install

以上でインストールは完了。以下のコマンドでヘルプが表示されます。

fail2ban-client -h

以下のコマンドでサービスを起動します
ディストリビューションごとにスクリプトが別れているため、適切なものをコピーする必要があります
自分の場合、「CentOS Linux release 7.9.2009 (Core)」なので、redhat用をコピーしました

cp files/redhat-initd /etc/init.d/fail2ban
service fail2ban start

サービス起動後、バージョン確認コマンドが発行できます

fail2ban-client version

Fail2Banでsshdログインをブロックする

導入が完了したので、実際にFail2Banを利用してsshdアクセスをブロックします
以下のブログを参考にさせていただきました
https://www.mechatronahibi.com/ssh-fail2ban/

vi /etc/fail2ban/jail.local

記入内容
[sshd]
enabled = true
bantime  = 3600
findtime  = 20
maxretry = 3

クライアントをリスタートして有効化します

fail2ban-client restart

エラー発生
2022-11-17 07:50:49,518 fail2ban [21167]: ERROR Failed during configuration: Have not found any log file for sshd jail

残念ながら上記エラーが表示されてしまいました。エラーメッセージに従ってエラーを修正します。
StackExchangeによると、単純にsshdのログへのパスが間違っているようなので、今回は直接confを修正することにしました

# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode   = normal
port    = ssh
# logpath = %(sshd_log)s
logpath = /var/log/secure
backend = %(sshd_backend)s

修正後、起動してみます

fail2ban-client start

warningが出ましたが、今回は無視で・・・
2022-11-17 07:59:32,949 fail2ban.configreader   [24029]: WARNING 'allowipv6' not defined in 'Definition'. Using default one: 'auto'
Server ready

ほんとにブロックできているか確認してみる

fail2banを確認してみます

tail -F /var/log/fail2ban.log

2022-11-17 07:59:37,236 fail2ban.filter         [24032]: INFO    [sshd] Found 159.223.103.26 - 2022-11-17 07:59:37
2022-11-17 07:59:46,050 fail2ban.filter         [24032]: INFO    [sshd] Found 191.55.54.77 - 2022-11-17 07:59:46
2022-11-17 07:59:56,674 fail2ban.filter         [24032]: INFO    [sshd] Found 197.50.231.196 - 2022-11-17 07:59:56
2022-11-17 08:00:22,511 fail2ban.filter         [24032]: INFO    [sshd] Found 20.102.27.117 - 2022-11-17 08:00:21

検知はできているようです。ただ、毎回IPが変わっているため、現時点ではブロックするに至っていないようですね

以上です

今回はFail2Banを導入してみたというお話でした
業務でFail2Banを利用するかという話が出てきて、そこで初めて存在を知ったので使ってみました。(結局、仕事では要件が合わずに採用はお流れになりました)

導入、設定も思ったよりも簡単に行えました。自分がブロックされなように注意が必要ですね!

コメントを残す