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

インストールしたら、次の方法で実行されているかどうかを確認します。
$ sudo systemctl status fail2ban
出力から、fail2banサービスがアクティブであり、期待どおりに実行されていることがわかります。

fail2banプロセスの実行を確認するには、次のように入力します。
$ sudo ps -efww | egrep fail2ban
出力:
root 1310843 1 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を追加できます。
たとえば、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 = %(action_mw)s
パラメータ %(action_mw)s
疑わしいIPアドレスを禁止し、詳細なwhoisレポートを記載したメールを管理者に送信します。ログメッセージを含めるには、パラメータを %(action_mwl)s
。
さらに、送信メールアドレスと受信者を定義します。

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

Fail2banクライアント
Fail2banは、 fail2ban-clientとして知られるFail2banと対話するためのコマンドラインツールを提供します 。 IPアドレスの禁止や禁止解除など、無数のタスクを実行できます。
Fail2banのステータスを確認し、禁止されたIPまたは違反したフィルターがあるかどうかを確認するには、次のコマンドを実行します。
$ sudo fail2ban-client status 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]: NOTICE [sshd] Ban 117.221.69.37 2021-04-29 11:17:55,123 fail2ban.actions [1310843]: NOTICE [sshd] Ban 49.233.251.133 2021-04-29 11:17:55,131 fail2ban.actions [1310843]: NOTICE [sshd] Ban 106.52.93.202 2021-04-29 11:17:55,139 fail2ban.actions [1310843]: NOTICE [sshd] Ban 222.187.232.205 2021-04-29 11:17:55,147 fail2ban.actions [1310843]: NOTICE [sshd] Ban 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をインストールして構成する方法に関するこのチュートリアルは終了です。