Fail2banは、サーバーを保護するPythonで記述されたオープンソースのセキュリティフレームワークです。 ブルートフォース攻撃。 ログファイルをスキャンし、ログイン試行に失敗したIPアドレスを禁止します。 ファイアウォールを更新して、構成可能な期間、これらのIPアドレスからの新しい接続を拒否することで機能します。
デフォルトでは、Fail2banはIptablesを使用し、他のファイアウォールで使用することができます。 IPv4とIPv6の両方に対するFail2banのサポート。
デフォルトで監視するように構成されたFail2ban SSHログインの試行 のような他のログファイルを監視できます Apache、vsftpd、Postfixなど。
このチュートリアルでは、インストールと構成の方法を説明します fail2ban の上 Ubuntu 20.04。
UbuntuにFail2banをインストールする
開始するには、ターミナルを開き、パッケージリストを更新します。
$ sudo aptアップデート
Fail2Banは、ほとんどのLinuxディストリビューションにすでにパッケージ化されています。 APTパッケージマネージャーを使用してfail2banをインストールするには、次のコマンドを実行します。
$ sudo apt install fail2ban
インストールしたら、次の方法で実行されているかどうかを確認します。
$ sudo systemctl status fail2ban
出力から、fail2banサービスがアクティブであり、期待どおりに実行されていることがわかります。

fail2banプロセスの実行を確認するには、次のように入力します。
$ sudo ps -efww | egrep fail2ban
出力:
ルート13108431 0 11:17? 00:00:02 / usr / bin / python3 / usr / bin / fail2ban-server -xf start
すごい。 Fail2banに関連付けられている構成ファイルの概要と、IPアドレスをブラックリストまたはホワイトリストに設定する方法について説明します。
構成ファイルの概要
Fail2banの設定ファイルは /etc/fail2ban
示されているディレクトリ。

主な構成ファイルは /etc/fail2ban/jail.conf
と /etc/fail2ban/jail.d/defaults-debian.conf
。
何をするにしても、fail2banパッケージが更新されると上書きされる可能性が高いため、これらのファイルを変更することはお勧めしません。
回避策として、Fail2banを構成するための推奨される方法は、 jail.conf
にファイルする jail.local
後で独自の設定を定義します。 からのすべての設定を含める必要はありません jail.conf
ファイル、オーバーライドしたいものだけ。
それでは、最初に作成しましょう jail.local
設定ファイルは次のとおりです。
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
次に、お気に入りのテキストエディタを使用して、ファイルを開きます。 ここでは、vimエディターを使用しています。
$ sudo vim /etc/fail2ban/jail.local
IPアドレスのホワイトリストへの登録
を使用して ignoreip
ディレクティブを使用すると、IPアドレス、IPの範囲、またはサブネット全体を禁止から除外できます。 ここで、ホワイトリストに登録する、または簡単にアクセスを許可するリモートマシンのIPアドレスを追加します。 スペースまたはコンマを使用して、複数のIPを追加できます。
にとって example、IPアドレスをホワイトリストに登録するには 192.168.2.50 、 192.168.2.100 次のようにエントリを追加します。

禁止設定
禁止条件は、次のパラメータによって定義されます。
- 禁止時間
- findtime
- maxretry
禁止時間 -これは、IPアドレスがサーバーとの再接続を試みることを禁止または拒否されている期間です。 デフォルトでは10分に設定されていますが、お好みに応じて自由に設定してください。
findtime -これは、ログイン試行が失敗してから禁止が実装されるまでの期間です。 これは10分に設定されています。 これが意味するのは、SSHログインを試みていて、失敗が maxtry 10分以内の値の場合、接続元のIPは禁止されます。
maxretry -これは、IPが禁止されるまでに失敗した接続試行の最大数を表します。 Bのデフォルトでは、これは5秒に設定されていますが、接続の試行による攻撃を最小限に抑えるために3秒をお勧めします。

電子メール通知
Fail2banには、IPアドレスが禁止された後に電子メールアラートを送信する機能があります。 電子メールを送受信するには、SMTPサーバーをインストールして構成する必要があります。 メール通知機能を使用するには、以下の行を追加してください
アクション=%(action_mw)s
パラメータ %(action_mw)s
疑わしいIPアドレスを禁止し、に電子メールを送信します admin 詳細なwhoisレポート付き。 ログメッセージを含めるには、パラメータを次のように設定します %(action_mwl)s
。
さらに、送信者の電子メールアドレスと受信者を定義します。

Fail2ban刑務所
Fail2banの手口はjailの概念を使用しています。 つまり、問題のあるIPアドレスがサービスへのログインまたはアクセスに失敗した場合、そのIPアドレスは「刑務所」に入れられ、 禁止時間 経過します。
刑務所は、簡単に言えば、フィルターとアクションを備えたサービスです。 Fail2banはログエントリを確認し、一致するログエントリが特定されて条件が満たされると、アクションが実装されます。
SSH jailは通常、疑わしいIPアドレスからの不正なSSH接続にリーシュをかけるためにデフォルトで有効になっています。 別のサービスの刑務所を有効にするには、単に追加します 有効= true 刑務所の見出しの後の属性。 前に見たように、禁止設定を提供することもできます。

Fail2banクライアント
Fail2banは、Fail2banと対話するためのコマンドラインツールを提供します。 fail2ban-クライアント。 IPアドレスの禁止や禁止解除など、無数のタスクを実行できます。
Fail2banのステータスを確認し、禁止されたIPまたは違反したフィルターがあるかどうかを確認するには、次のコマンドを実行します。
$ sudo fail2ban-クライアントステータスsshd
以下の出力は、SSHログインの試行が失敗した後、禁止またはブラックリストに登録されたIPアドレスの存在を確認します。 IPアドレスは現在SSH刑務所にあります。

また、fail2ban.logファイルをフィルタリングして、禁止されているすべてのIPアドレスを一覧表示することもできます。
$ sudo zgrep’Ban ‘/var/log/fail2ban.log *
出力:
2021-04-29 11:17:55,081 fail2ban.actions [1310843]: 知らせ [sshd] 禁止117.221.69.372021-04-29 11:17:55,123 fail2ban.actions [1310843]: 知らせ [sshd] 禁止49.233.251.1332021-04-29 11:17:55,131 fail2ban.actions [1310843]: 知らせ [sshd] 禁止106.52.93.2022021-04-29 11:17:55,139 fail2ban.actions [1310843]: 知らせ [sshd] 禁止222.187.232.2052021-04-29 11:17:55,147 fail2ban.actions [1310843]: 知らせ [sshd] 禁止222.187.239.107
ブラックリストに登録されたIPアドレスの禁止を解除するには、次のコマンドを実行します。
$ sudo fail2ban-client set sshd unbanip 192.168.2.102
ここで、Fail2banのステータスを再度確認します。今回は、禁止されたIPが登録されなくなりました。

IPアドレスを禁止するには、次のように入力します。
$ sudo fail2ban-client set sshd banip 192.168.2.102
その他のコマンドラインオプションについては、次のコマンドを実行してください。
$ fail2ban-client -h

結論
Fail2banは、システムを保護するために使用されるファイアウォールやその他のセキュリティ対策に代わるものではないことに注意してください。 これは単にセキュリティの追加レイヤーであり、特に自動化されたボットやスクリプトからのブルートフォース攻撃に対するサーバーの保護をさらに強化します。 これで、Ubuntu20.04にFail2banをインストールして構成する方法に関するこのチュートリアルは終了です。