GNU/Linux >> Linux の 問題 >  >> Ubuntu

mod_evasiveを使用してApacheでDoSおよびDDoSを防御する

はじめに

mod_evasiveモジュールは、攻撃が発生した場合にサーバーの実行を維持するのに役立つApacheWebサービスモジュールです。一般的なタイプのサイバー攻撃は、サービス拒否(DoS)、分散型サービス拒否(DDoS)、またはセキュリティを圧倒しようとするブルートフォースの形で発生します。

これらの攻撃の性質は、いくつかの異なるコンピューターを使用して、サーバーに対して繰り返し要求を行うことです。これにより、サーバーの処理能力、メモリ、ネットワーク帯域幅が不足し、応答しなくなります。

このガイドでは、DoSおよびDDoSから保護するためのmod_evasiveの構成とインストールについて説明します。

前提条件

  • インストールおよび構成されたLAMP(Linux、Apache、MySQL、PHP)スタック
  • sudoを使用したユーザーアカウントへのアクセス またはroot権限
  • 機能しているメールサーバー(メールアラート用)

Apachemod_evasiveはどのように機能しますか

mod_evasive Apache ユーティリティは、着信サーバー要求を監視することによって機能します。このツールは、次のような1つのIPからの疑わしいアクティビティも監視します。

  • 1秒間に同じページに対する複数のリクエスト。
  • 1秒あたり50を超える同時リクエスト。
  • IPが一時的にブラックリストに登録されている間に行われたリクエスト。

これらのいずれかが発生した場合、モジュールは403エラーを送信します。デフォルトでは、これにはブラックリストの10秒間の待機期間も含まれます。リクエストを行っているIPアドレスがその10秒のウィンドウで再試行すると、待機時間が長くなります。

mod_evasive ネットワークの検出と管理を通じて、この種の攻撃からの防御に役立ちます。

mod_evasiveApacheユーティリティをインストールする手順

ステップ1:ApacheWebサーバーユーティリティをインストールする

ユーティリティをインストールする前に、Linuxディストリビューションのコマンドでパッケージリポジトリを更新してください:

Debian /Ubuntu

sudo apt update

RedHat / CentOS

sudo yum update

システムがソフトウェアリストを更新および更新できるようにします。

次に、ヘルパーユーティリティをインストールします:

Debian / Ubuntu

sudo apt install apache2-utils

RedHat / CentOS

sudo yum install httpd-devel

出力の最後のセクションは次のようになります:

このユーティリティは、 mod_evasiveのインストールに必要です。 。

ステップ2:mod_evasiveをインストールする

Debian / Ubuntu

mod_evasiveをインストールするには Debian / Ubuntuのモジュールには、次のように入力します。

sudo apt install libapache2-mod-evasive

プロンプトが表示されたら、[ OK]を選択します 構成を選択します。

不明な場合は、構成なしを選択します またはローカルのみ。

CentOS / RedHat

mod_evasiveモジュールをRedHat/CentOSにインストールするには:

EPELリポジトリを追加します:

sudo yum install epel-release

次に、次のように入力します。

sudo yum install mod_evasive

プロセスが完了するのを待ちます。

ステップ3:mod_evasiveを構成する

ほとんどのLinuxソフトウェアパッケージと同様に、 mod_evasive 構成ファイルによって制御されます。 DDoS攻撃を防ぐための最初のステップとして、構成ファイルに次の変更を加えます。

1.次のコマンドを使用して、選択したテキストエディタを使用します。

Debian /Ubuntu

sudo nano /etc/apache2/mods-enabled/evasive.conf

RedHat / CentOS

sudo nano /etc/httpd/conf.d/mod_evasive.conf

2.次のエントリを見つけます:

#DOSEmailNotify        [email protected]

#を削除します 署名してから、 [email protected]を置き換えます 実際のメールアドレスで。定期的にチェックするメールを使用してください。これは、ツールがアラートを送信する場所です。

3.次のエントリからコメントタグを削除して、ログファイルが次のようになるようにします。

DOSHashTableSize 3097

DOSPageCount 2

DOSSiteCount 50

DOSPageInterval 1

DOSSiteInterval 1

DOSBlockingPeriod 10

DOSEmailNotify [email protected]

DOSLogDir "/var/log/apache2/"

4.ファイルを保存して終了します。次のように入力して、Apacheサービスをリロードします。

Debian /Ubuntu

sudo systemctl reload apache2

RedHat / CentOS

sudo systemctl restart httpd.service

テストmod_evasive

それでは、モジュールが正しく機能していることを確認しましょう。

この例では、 test.plを使用します mod_evasiveをテストするスクリプト。

スクリプトは次の場所にあります: /usr/share/doc/libapache2-mod-evasive/examples/test.pl

次のコマンドを使用して、スクリプトを実行します。

perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl

出力は次のメッセージを返す必要があります:

パラメータと設定

構成できるmod_evasiveパラメーターは多数あります:

  • DOSSystemCommand まず、このオプションがコメントとして無効にされていることに気付いたかもしれません。このコマンドを使用すると、IPアドレスがブラックリストに追加されたときに実行されるシステムコマンドを指定できます。これを使用して、ファイアウォールまたはIPフィルターにIPアドレスを追加するコマンドを起動できます。
  • DOSHashTableSize 忙しいWebサーバーの場合はこれを増やします。この構成では、ルックアップ操作を実行するためのスペースが割り当てられます。サイズを大きくすると、メモリを犠牲にして速度が向上します。
  • DOSPageCount ブラックリストへの登録をトリガーする個々のページのリクエスト数。これは2に設定されており、低い(そして積極的)–この値を増やして、誤検知を減らします。
  • DOSSiteCount 同じIPアドレスによる同じサイトへのリクエストの総数。デフォルトでは、これは50に設定されています。誤検知を減らすために100に増やすことができます。
  • DOSPageInterval DOSPageCountの秒数 。デフォルトでは、これは1秒に設定されています。つまり、変更しない場合、1秒間に2ページをリクエストすると、一時的にIPアドレスがブラックリストに登録されます。
  • DOSSiteInterval DOSPageIntervalに似ています 、このオプションは、 DOSSiteCountの秒数を指定します モニター。デフォルトでは、これは1秒に設定されています。つまり、1つのIPアドレスが1秒間に同じウェブサイトで50のリソースを要求すると、一時的にブラックリストに登録されます。
  • DOSBlockingPeriod IPアドレスがブラックリストにとどまる時間。デフォルトでは10秒に設定されていますが、これは任意の値に変更できます。この値を大きくすると、ブロックされたIPアドレスがより長期間タイムアウト状態になります。
  • DOSLogDir デフォルトでは、これはログを/ var / log/mod_evasiveに書き込むように設定されています。これらのログは、後でクライアントの動作を評価するために確認できます。

新しいディレクトリを作成して、これらのapacheアクセスログを保存できます。所有者をApacheに変更してから、次のエントリの場所を更新してください。

sudo mkdir /var/log/apache/mod_evasive
sudo chown -R apache:apache /var/log/apache/mod_evasive
sudo nano /etc/apache2/mods-enabled/evasive.conf
DOSLogDir "/var/log/apache/mod_evasive"

IPアドレスのホワイトリストへの登録: このオプションは、 evasive.conf fには含まれていません。 デフォルトではファイル。

編集のためにファイルをもう一度開いてから、次の行を追加します。

DOSWhitelist 192.168.0.13

DOSWhitelist 192.168.0.*

IPアドレスをホワイトリストに登録するアドレスに置き換えます。また、1行に1つのエントリのみをリストする必要があります 。これは通常、Webサイトと大量のデータを交換する信頼できるクライアントで使用されます。

このツールは、ボットとスクリプトの検出に適しています。許可したいボットまたはスクリプトがある場合は、それらをホワイトリストに登録して、これらのボットとスクリプトがブラックリストアクションをトリガーしないようにすることができます。

必ずファイルを保存して終了してください。次に、これらのオプションのいずれかをテストする前に、Apacheサービスをリロードします。


Ubuntu
  1. mod_evasiveを使用してApacheでDoSおよびDDoSを防御する

  2. Ubuntu18.04でLetsEncryptを使用してApacheを保護する

  3. Ubuntu16.04でFastcgiを使用してApache2.4を設定する– Php7.0-fpm.confで何をしますか?

  1. Ubuntu18.04でApacheを使用してNextcloudをインストールおよび構成する方法

  2. Ubuntu18.04にApacheを使用してJoomlaをインストールする方法

  3. Ubuntu20.04でLetsEncryptを使用してApacheを保護する

  1. CentOS8でLetsEncryptを使用してApacheを保護する

  2. Debian9でLetsEncryptを使用してApacheを保護する

  3. Debian10でLetsEncryptを使用してApacheを保護する