CentOSへのDoSおよびDDoS攻撃を防ぐためにmod_evasiveを構成する

この記事では、CentOSに対するDoSおよびDDoS攻撃を防ぐためにmod_evasiveをインストールおよび構成する方法を学習します。

このデモでは、CentOS 764ビット専用サーバーを使用しました。

始めましょう。

mod_evasiveApacheモジュール。これは、Apache Webサーバーに対する分散型サービス拒否(DoSおよびDDoS)攻撃とブルートフォース攻撃を維持するのに役立ちます。mod_evasiveは、着信要求を監視し、電子メールおよびsyslog機能を介して不正使用を報告することによって動作します。これは、検出およびネットワーク管理ツールとなることを目的としており、ipchains、ファイアウォール、ルーターなどと通信するようにすばやく構成されます。

mod_evasiveは疑わしい要求を監視し、次のいずれかからの単一のIPアドレスを拒否します。

  • 1秒間に数回以上同じページをリクエストする
  • 1秒あたり同じ子に対して50を超える同時リクエストを行う
  • 一時的にブラックリストに登録されている間にリクエストを行う

前提条件

  • CentOS 7 64ビット専用サーバーまたはクラウドサーバー(CentOS 6でも動作します)
  • Apache WebサーバーLAMP(Linux、Apache、MySQL、PHP)がインストールおよび構成されている
  • メールサーバー

1.サーバーを最新の状態に保ちます。

# yum update -y

2. EPEL(Enterprise Linux用の追加パッケージ)をインストールします。

# yum install epel-release -y

3.mod_evasiveの前提条件をインストールします

# yum install httpd-devel

4.mod_evasiveをインストールします。

# yum install mod_evasive -y

これで、mod_evasiveがインストールされました

5. mod_evasive構成をApache構成ファイルに追加するには、次のようにします。

デフォルトでは、LoadModule行が構成ファイルmod_evasive.confに追加されますファイルを開き、まだ存在しない場合は次の行を追加します。

# vi /etc/httpd/conf.d/mod_evasive.conf

LoadModule evasive20_module modules/mod_evasive24.so

構成ファイルmod_evasive.confを開き、次のエントリを確認します。

DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify

要件に応じて、上記のエントリを構成できます。DOSEmailNotifyを電子メールIDに変更します。

IPアドレスをホワイトリストに登録するには、構成ファイルに次の行を追加します。

DOSWhitelist 127.0.0.1

DOSWhitelist 127.0.0.*

複数のIPアドレスを追加することもできます。

もう1つのエントリでDOSLogDirを変更する必要があります。デフォルトでは、ロックメカニズムの/ tmpを参照します。

/ var / log /に新しいディレクトリを作成します:

# mkdir /var/log/mod_evasive

所有権をapacheユーザーに設定します。

# chown -R apache:apache /var/log/mod_evasive

ここで、mod_evasive構成の次の行を編集し、ディレクトリパスを変更します。

DOSLogDir  /var/log/mod_evasive

mod_evasive構成ファイルを保存して終了します。

次に、Apacheを再起動します。

# systemctl restart httpd.service

これで、mod_evasiveがインストールおよび構成されました。

mod_evasive構成オプションの詳細
これらの構成オプションの説明は、READMEファイルから直接取得されました。

DOSHashTableSize

ハッシュテーブルのサイズは、各子のハッシュテーブルの最上位ノードの数を定義します。この数を増やすと、レコードに到達するために必要な反復回数が減ることでパフォーマンスが向上しますが、表スペースのためにより多くのメモリーを消費します。ビジーなWebサーバーがある場合は、これを増やす必要があります。指定した値は、素数リスト内の次の素数まで自動的に階層化されます(使用されるプライマーのリストについては、mod_evasive.cを参照してください)。

DOSPageCount

これは、ページ間隔ごとの同じページ(またはURI)に対する要求数のしきい値です。その間隔のしきい値を超えると、クライアントのIPアドレスがブロックリストに追加されます。

DOSSiteCount

これは、サイト間隔ごとの同じリスナー上の同じクライアントによる任意のオブジェクトに対する要求の総数のしきい値です。その間隔のしきい値を超えると、クライアントのIPアドレスがブロックリストに追加されます。

DOSPageInterval

ページ数のしきい値の間隔。デフォルトは1秒間隔です。

DOSSiteInterval

サイト数のしきい値の間隔。デフォルトは1秒間隔です。

DOSBlockingPeriod

ブロック期間は、クライアントがブロックリストに追加された場合にクライアントがブロックされる時間(秒単位)です。この間、クライアントからの後続のすべての要求は403(禁止)になり、タイマーはリセットされます(たとえば、さらに10秒)。タイマーは後続のリクエストごとにリセットされるため、長いブロッキング期間を設定する必要はありません。DoS攻撃が発生した場合、このタイマーはリセットされ続けます。

DOSEmailNotify

この値が設定されている場合、IPアドレスがブラックリストに登録されるたびに、指定されたアドレスに電子メールが送信されます。/ tmpを使用するロックメカニズムは、継続的な電子メールの送信を防ぎます。

ノート:

MAILERがmod_evasive.c(またはmod_evasive20.c)で正しく設定されていることを確認してください。デフォルトは「/ bin / mail-t%s」です。ここで、%sは、構成で設定された宛先電子メールアドレスを示すために使用されます。Linuxまたは別の種類のメーラーを備えた他のオペレーティングシステムで実行している場合は、これを変更する必要があります。

DOSSystemCommand

この値を設定すると、IPアドレスがブラックリストに登録されるたびに、指定されたシステムコマンドが実行されます。これは、IPフィルターまたは他のツールへのシステムコールを有効にするように設計されています。/ tmpを使用するロックメカニズムは、継続的なシステムコールを防ぎます。ブラックリストに登録されたIPのIPアドレスを示すには、%sを使用します。

DOSLogDir

別の一時ディレクトリを選択する
デフォルトでは、ロックメカニズムに「/ tmp」が使用されます。これにより、システムがシェルユーザーに公開されている場合、セキュリティ上の問題が発生します。非特権シェルユーザーがいる場合は、Apacheが実行されているユーザー(通常はroot)のみが書き込み可能なディレクトリを作成し、これをhttpd.confに設定します。

この記事では、CentOSに対するDoSおよびDDoS攻撃を防ぐために、サポートエンジニアがmod_evasiveをインストールおよび構成する方法について説明しました。


グーテンベルクの代わりにWordPressのデフォルトエディタとしてクラシックエディタを設定する方法

グーテンベルクの代わりにWordPressのデフォルトエディタとしてクラシックエディタを設定する方法

グーテンベルクエディターはまもなくWordPressのデフォルトエディターになります。クラシックエディタを選択するオプションがあります

WordPressで未使用のCSSを削除する方法

WordPressで未使用のCSSを削除する方法

WordPressサイトで有料のWordPressテーマ、または公式のWordPressテーマリポジトリの人気のあるテーマを使用している場合は、

WordPressホームページで変更された日付で投稿を表示する方法

WordPressホームページで変更された日付で投稿を表示する方法

新しい情報で定期的に更新されるブログの特定の投稿を維持している場合は、投稿を並べ替えるのが最善です。

修正:Windows10アップデート後にタスクバーにバッテリーアイコンが表示されない

修正:Windows10アップデート後にタスクバーにバッテリーアイコンが表示されない

Windows 10ラップトップでバッテリーアイコンが突然なくなった?まあ、問題はいずれかで発生する可能性があります

WindowsおよびMac用のグーテンベルクキーボードショートカット

WindowsおよびMac用のグーテンベルクキーボードショートカット

ブロガー、コンテンツライター、マーケターのほとんどがGoogleドキュメントやMicrosoftWordでの執筆を好む理由を知っていますか

🔧修正:PHPインストールにWordPressに必要なMySQL拡張機能がないようです

🔧修正:PHPインストールにWordPressに必要なMySQL拡張機能がないようです

自己管理のWordPressサイトを運営したいですか?素晴らしい。あなたは無数のことを学ぶでしょう。設定の重要な部分の1つ

修正:更新後のWordPressで「エディターで予期しないエラーが発生しました」

修正:更新後のWordPressで「エディターで予期しないエラーが発生しました」

WordPressの新しいブロックエディターを使用して新しい投稿を書くことができませんか?「編集者」を取得している可能性があります

WordPress5.0でブロックエディターを無効にしてクラシックエディターをインストールする方法

WordPress5.0でブロックエディターを無効にしてクラシックエディターをインストールする方法

WordPress 5.0以降、WordPressのデフォルトのエディターは新しいブロックエディターです。新しいエディターは根本的に異なります

Windows11でフォルダアイテムを更新する方法

Windows11でフォルダアイテムを更新する方法

コンテキストメニューの[更新]オプションがない場合、Windows11のファイルエクスプローラーでアイテムを更新する方法は次のとおりです。

🔨修正:WordPressNginxサーバーのGutenbergで「更新に失敗しました」または「公開に失敗しました」エラー

🔨修正:WordPressNginxサーバーのGutenbergで「更新に失敗しました」または「公開に失敗しました」エラー

Nginxサーバーで実行されているWordPressサイトのGutenbergで「更新に失敗しました」または「公開に失敗しました」というエラーが発生しますか?私たち