LoginSignup
2
1

初めに

fb001.png

サーバーのログを見たことがある方は、何度も繰り返し行われる不正なログイン試行やその他の攻撃的ログを目にしたことがあるかもしれません。

グローバルに公開されているサーバーに対して上記の様な悪意のある試みが行われる事はもはや日常と言って良いのではないでしょうか?

エンジニアにとって日々の脆弱性の確認や対応、セキュリティの強化は必須となっております。

侵入防止を導入する事でセキュリティリスクを低める事が可能となっております。

そこで今回はAlmaLinuxにFail2banを導入する方法についてご紹介致します。

Fail2banとは?

Fail2banは「侵入防止ソフトウエア」となります。

具体的な機能は一定期間内にログイン失敗した接続元をブロックするソフトウエアです。

Fail2banを導入する事でパスワード解読などを狙った総当たり攻撃のリスクを低める事が出来ます。

Fail2banを導入する

それではAlmaLinuxにFail2banを導入していきます。

今回使用するOSは「AlmaLinux9」となります。

AlmaLinux9ではdnfを使用してインストールする事が出来ます。

下記コマンドを実行しインストールを行います。

dnf install epel-release
dnf install fail2ban

下記の様に表示されますので「y」を選択します。

dnf install fail2ban
Last metadata expiration check: 1:38:42 ago on Tue 25 Jun 2024 07:45:23 AM JST.
Dependencies resolved.
=============================================================================================================================================================================================================================================
 Package                                                            Architecture                                      Version                                                        Repository                                         Size
=============================================================================================================================================================================================================================================
Installing:
 fail2ban                                                           noarch                                            1.0.2-12.el9                                                   epel                                              8.8 k
Upgrading:
 selinux-policy                                                     noarch                                            38.1.35-2.el9_4.2                                              baseos                                             49 k
 selinux-policy-targeted                                            noarch                                            38.1.35-2.el9_4.2                                              baseos                                            6.5 M
Installing dependencies:
 fail2ban-firewalld                                                 noarch                                            1.0.2-12.el9                                                   epel                                              8.9 k
 fail2ban-selinux                                                   noarch                                            1.0.2-12.el9                                                   epel                                               29 k
 fail2ban-sendmail                                                  noarch                                            1.0.2-12.el9                                                   epel                                               12 k
 fail2ban-server                                                    noarch                                            1.0.2-12.el9                                                   epel                                              444 k

Transaction Summary
=============================================================================================================================================================================================================================================
Install  5 Packages
Upgrade  2 Packages

Total download size: 7.0 M
Is this ok [y/N]: 

下記の様に表示されていればインストール完了です。

Complete!

念のため下記コマンドでもインストール確認を行っておきます。

dnf list fail2ban

Fail2banの設定

続いてFail2banの設定を行います。

ail2banの設定ファイルは以下のパス内に格納されております。

/etc/fail2ban/

デフォルトの「jail.conf」を書き換える事は推奨されていない為、「jail.local」を作成し設定してきます。

vi /etc/fail2ban/jail.local

今回は「sshd」「vsftpd」「postfix」「dovecot」「apache」「mysql」の項目を有効化します。

下記の様に記述する事で設定可能です。

[DEFAULT]
maxretry = 5
findtime = 600
bantime = 1h

[sshd]
enabled = true
filter = sshd

[vsftpd]
enabled = true
filter = vsftpd

[postfix]
enabled = true
filter = postfix

[dovecot]
enabled = true
filter = dovecot

[apache]
enabled = true
filter = apache-auth

[apache-403]
enabled = true
filter = apache-badbots

[mysql]
enabled = true
filter = mysqld-auth

上記では10分間に5回ログインに失敗した場合、1時間ブロックする設定としました。

基本的には「DEFAULT」を使用しルールの適応をおこなっております。

検知回数やブロック期間等は各項目内でも設定可能です。

またログのパスやポート等の指定はデフォルト設定まま使用しています。

自動起動設定

次に自動起動設定を行います。

下記を実行し自動起動を有効化します。

systemctl enable fail2ban

上記によりサーバー再起動時でも利用できるようになります。

Fail2ban起動

最後にFail2banの起動を行います。

始めに下記コマンドを使用して現在の起動状況を確認します。

systemctl status fail2ban

初期状態では下記の様に起動していない状況となっておりました。

○ fail2ban.service - Fail2Ban Service
     Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; preset: disabled)
     Active: inactive (dead)
       Docs: man:fail2ban(1)

それでは下記コマンドを使用し起動を行います。
対象のログが無い場合は起動に失敗します。

systemctl start fail2ban

次に「fail2ban-client」コマンドを使用して監視が行われているか確認します。

#コマンド
fail2ban-client status

#結果
fail2ban-client status
Status
|- Number of jail:      7
`- Jail list:   apache, apache-403, dovecot, mysql, postfix, sshd, vsftpd

上記の様に有効化した項目が「Jail list」に表示されていれば正常に監視されております。

最後に動作確認を行い完了となります。

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