Webサーバーを作成し、ターミナルを開いて、オフライン中にログインの試行回数に気付いたことがありますか?攻撃者は「ブルートフォーシング」と呼ばれる方法を使用します。ブルートフォーシングは、アクセスを取得することを期待して、スクリプトを使用してランダムなパスワードを入力することにより、Webサーバーにアクセスする方法です。
これを防ぐために、Fail2Banというツールを使用します。
Fail2Banとは何ですか?
Fail2Banは、コンピュータサーバーをブルートフォース攻撃から保護する侵入防止ソフトウェアフレームワークです。 Pythonプログラミング言語で記述されており、iptablesやTCP Wrapperなど、ローカルにインストールされたパケット制御システムまたはファイアウォールへのインターフェイスを備えたPOSIXシステムで実行できます。 —ウィキペディア
Fail2Banのインストール
このガイドでは、Ubuntu20.04WebサーバーへのFail2Banのインストールと構成について説明します。
ステップ1—システムを更新してFail2Banをインストールします
更新コマンドを実行してみましょう。
$ sudo apt update &&sudo apt upgrade -y
それでは、Fail2Banをインストールしましょう。
$ sudo apt install fail2ban
インストールすると、Fail2Banが自動的に起動します。念のため、以下のコマンドを使用してステータスを確認してください。
$ sudo systemctl status fail2ban
Fail2Banのインストールがインストールされ、アクティブになっています。 :)
ステップ2—Fail2Banを構成する
Fail2Banをインストールすると、スクリプトは2つの構成ファイル /etc/fail2ban/fail.conf
を作成します。 および/etc/fail2ban/fail.d/defaults-debian.conf
。 これらのファイルへの変更は、パッケージの更新中に上書きされる可能性があります。
Fail2banは、この順序で構成ファイルを読み取ります。 .local
ファイルは.cong
の設定を上書きします ファイル。
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local
Fail2Banを構成する最も効率的な方法は、 jail.conf
のコンテンツをコピーすることです。 jail.local
へ 次に、ローカルファイルを変更します。
ステップ2.1—ローカルファイルを作成してサーバーを構成します
それでは、 jail.conf
をコピーしてみましょう。 jail.local
にファイルする ファイル。
$ sudo cp /etc/fail2ban/jail.{conf,local}
このコマンドを入力すると、端末はすぐに新しい行を開きます。*
jail.local
を開いて、Fail2Banサーバーを構成します nanoまたはお気に入りのテキストエディタでファイルします。
$ sudo nano /etc/fail2ban/jail.local
これで、 jail.local
にいるはずです。 ファイルを作成し、各構成の機能を説明するコメントを参照してください。
ステップ2.2—IPアドレスをホワイトリストに登録する
禁止から除外するIPアドレス、範囲、およびホストは、 ignoreip
に追加する必要があります ディレクティブ。
無視行のコメントを解除(#記号を削除)し、スペースで区切ってIPアドレスを追加します。
ステップ2.3—ルール設定の禁止
ignoreipコメントの数行下に、 bantime
があります。 、 findtime
、および maxretry
。
bantime
IPが禁止されている時間の長さです。デフォルトの禁止時間は10分です。多くの場合、 bantime
を長くする必要があります 。負の数を使用すると、ユーザーを永久に禁止できます。 サフィックスを使用しない場合(つまり、10dではなく10)、時間は秒単位になります。この時間を好きなように設定できます。10dを使用します。
bantime =10d
findtime
IPが禁止されるまでの障害の数の間の時間の長さです。これは、 maxretry
とは異なります これは、連続した回数ではなく、ログインの試行回数に基づいて禁止されないためです。
finetime =5m
maxretry
IPが禁止される前に失敗したログインの数です。繰り返しますが、これはお好みに合わせて設定できます。
maxretry =5
ステップ2.4—電子メール通知
Fail2Banは、IPが禁止されたときに電子メールアラートを送信するように設定できます。 WebサーバーでSMTPを構成する必要があります。最初のステップは、アクションコメントを変更する必要があることです。
action =%(action_MW)s
これにより、IPが禁止され、whoisレポートを含む電子メールアラートが送信されます。メールにログを含める場合は、%(action_MWl)s
を使用して追加します 代わりに。
また、システムがアラートを修正するために、送信メールアドレスと受信メールアドレスを調整する必要があります。
destemail=[メール保護]
送信者=[メール保護]
ステップ2.5—刑務所
Fail2Banのjailは、フィルターと1つまたは複数のアクションの組み合わせです。フィルタは、失敗したログイン試行または別の疑わしいアクティビティに対応するパターンに一致する正規表現を定義します。アクションは、フィルターが不正なIPアドレスをキャッチしたときに実行されるコマンドを定義します。 — Plesk
Fail2Banには、さまざまなサービス用のさまざまな刑務所が付属しています。独自のカスタムを作成するオプションを含みます。
Fail2Banのデフォルトのインストールでは、sshjailが有効になっています。刑務所を有効にするには、 enabled =true
を追加する必要があります 刑務所のタイトルの後。例としてOpenWebMailを使用する:
[openwebmail]
enabled =true
port =http、https
logpath =/var/log/openwemail.log
サービスの禁止ルールを設定する場合は、サービスの下で行うことができます。
[sshd]
enabled =true
maxretry =5
findtime =5m
bantime =10d
ignoreip =192.169.0.1/8 12.34.56.78 コード>
フィルタは/etc/fail2ban/filter.d
で編集できます ディレクトリ。
ステップ3—Fail2Banを再起動します
インストールと構成が完了するたびに、サービスを再開して変更を有効にすることをお勧めします。
$ sudo systemctl restart fail2ban
ステップ4—Fail2banコマンドライン
ツールfail2ban-client
を使用する Fail2Banスクリプトを使用して変更を加えることができます。コマンドラインを使用するには、次を使用します:
$ sudo fail2ban-client
[あなたの命令が続く]
利用可能なオプションを表示するには、次を使用します:
$ sudo fail2ban-client -h
IPアドレスの禁止を解除する:
$ sudo fail2ban-client set sshd unbanip 12.34.56.789
IPアドレスを禁止する:
$ sudo fail2ban-client set sddh banip 12.34.56.789