はじめに
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サービスをリロードします。