ホームページ システムチュートリアル Linux 回避モジュールは、アプリケーション層の DOS 攻撃から Web サイトを保護します。

回避モジュールは、アプリケーション層の DOS 攻撃から Web サイトを保護します。

Apr 30, 2024 pm 05:34 PM
linux apache Linuxチュートリアル レッドハット Linuxシステム Linuxコマンド Linux 認定 レッドハットリナックス Linuxビデオ

Web サイトをオフラインにする可能性のある攻撃方法は多数あり、より複雑な方法ではデータベースとプログラミングの技術的な知識が必要です。より単純な方法は、「Denial Of Service」(DOS) 攻撃として知られています。この攻撃手法の名前は、一般の顧客や Web サイト訪問者からの通常のサービス要求を拒否させるという目的に由来しています。

evasive 模块保护您的网站免受应用层 DOS 攻击

一般に、DOS 攻撃には 2 つの形式があります:

    OSI モデルの 3 番目と 4 番目の層、つまりネットワーク層攻撃
  1. OSI モデルの 7 層、つまりアプリケーション層攻撃
DOS 攻撃の最初のタイプであるネットワーク層は、大量のジャンク トラフィックが Web サーバーに流れるときに発生します。スパム トラフィックがネットワークの処理能力を超えると、Web サイトがダウンします。

2 番目のタイプの DOS 攻撃はアプリケーション層で行われ、ジャンク トラフィックではなく正規のサービス リクエストを悪用します。ページリクエストの数が Web サーバーの容量を超えると、正規の訪問者であっても Web サイトを使用できなくなります。

この記事では、アプリケーション層の攻撃を軽減することに焦点を当てます。ネットワーク層の攻撃を軽減するには、大量の利用可能な帯域幅と上流のプロバイダーの協力が必要ですが、ネットワーク サーバーの構成では通常は不可能です。

通常の Web サーバーを構成することで、Web ページをアプリケーション層の攻撃から少なくとも中程度まで保護できます。 Cloudflare

[1] が最近、ネットワーク層の攻撃の数が減少している一方、アプリケーション層の攻撃の数が増加していると [2] 報告したため、この形式の攻撃を防ぐことが重要です。

この記事では、zdziarski

[3]が開発したApache2モジュールmod_evasive[4]の使い方を紹介します。

さらに、mod_evasive は、何百ものユーザー名とパスワードの組み合わせを試す攻撃者の推測の試み (つまり、ブルート フォース攻撃) をブロックします。

mod_evasive は、各 IP アドレスからのリクエストの数をログに記録します。この数値が、対応する IP アドレスのいくつかのしきい値の 1 つを超えると、エラー ページが表示されます。エラー ページに必要なリソースは、正規のアクセスに応答できるオンライン Web サイトよりもはるかに少なくなります。

Ubuntu 16.04にmod_evasiveをインストールします

Ubuntu 16.04 のデフォルトのソフトウェア ライブラリには、「libapache2-mod-evasive」という名前の mod_evasive が含まれています。 apt-get を使用してインストールを完了できます:

リーリー

次に、mod_evasive を設定する必要があります。

その設定ファイルは /etc/apache2/mods-available/evasive.conf にあります。デフォルトでは、インストール後にすべてのモジュール設定がコメントアウトされます。したがって、構成ファイルが変更されるまで、モジュールは Web サイトのトラフィックに干渉しません。

リーリー

パラメータの最初の部分の意味は次のとおりです:

  • DOSHashTableSize - Web サイトにアクセスしている IP アドレスとそのリクエスト数の現在のリスト。
  • DOSPageCount - 特定の時間間隔内の各ページのリクエストの数。時間間隔は DOSPageInterval によって定義されます。
  • DOSPageInterval - mod_evasive はページリクエストの時間間隔をカウントします。
  • DOSSiteCount - DOSPageCountと同じですが、同じIPアドレスからサイト内の任意のページへのリクエストの数をカウントします。
  • DOSSiteInterval - mod_evasive は Web サイトリクエストの時間間隔をカウントします。
  • DOSBlockingPeriod - IP アドレスがブラックリストに登録されている秒数。

上記のデフォルト設定を使用すると、次の場合に IP アドレスがブラックリストに登録されます。

    同じページを 1 秒間に 2 回以上リクエストします。
  • 1 秒あたり 50 を超える異なるページをリクエストします。
IP アドレスがこれらのしきい値を超えると、10 秒間ブラックリストに登録されます。

これは長い時間ではないように思えるかもしれませんが、mod_evasive は常にブラックリストに登録された IP アドレスのページリクエストを監視し、ブラックリストの開始時刻をリセットします。 IP アドレスが Web サイトへの DOS 試行を続ける限り、その IP アドレスは常にブラックリストに掲載されます。

残りのパラメータは次のとおりです:

  • DOSEmailNotify - DOS 攻撃情報と IP アドレスのブラックリストを受信するための電子メール アドレス。
  • DOSSystemCommand - DOS 攻撃が検出されたときに実行するコマンド。
  • DOSLogDir - mod_evasive の一時ファイルを保存するために使用されるディレクトリ。
mod_evasiveを設定する

默认的配置是一个很好的开始,因为它不会阻塞任何合法的用户。取消配置文件中的所有参数(DOSSystemCommand 除外)的注释,如下所示:

<IfModule mod_evasive20.c>
   DOSHashTableSize   3097
   DOSPageCount       2
   DOSSiteCount       50
   DOSPageInterval    1
   DOSSiteInterval    1
   DOSBlockingPeriod  10

   DOSEmailNotify       JohnW@example.com
   #DOSSystemCommand    "su - someuser -c '/sbin/... %s ...'"
   DOSLogDir            "/var/log/mod_evasive"
</IfModule>
ログイン後にコピー

必须要创建日志目录并且要赋予其与 apache 进程相同的所有者。这里创建的目录是 /var/log/mod_evasive ,并且在 Ubuntu 上将该目录的所有者和组设置为 www-data ,与 Apache 服务器相同:

mkdir /var/log/mod_evasive
chown www-data:www-data /var/log/mod_evasive
ログイン後にコピー

在编辑了 Apache 的配置之后,特别是在正在运行的网站上,在重新启动或重新加载之前,最好检查一下语法,因为语法错误将影响 Apache 的启动从而使网站宕机。

Apache 包含一个辅助命令,是一个配置语法检查器。只需运行以下命令来检查您的语法:

apachectl configtest
ログイン後にコピー

如果您的配置是正确的,会得到如下结果:

Syntax OK
ログイン後にコピー

但是,如果出现问题,您会被告知在哪部分发生了什么错误,例如:

AH00526: Syntax error on line 6 of /etc/apache2/mods-enabled/evasive.conf:
DOSSiteInterval takes one argument, Set site interval
Action 'configtest' failed.
The Apache error log may have more information.
ログイン後にコピー

如果您的配置通过了 configtest 的测试,那么这个模块可以安全地被启用并且 Apache 可以重新加载:

a2enmod evasive
systemctl reload apache2.service
ログイン後にコピー

mod_evasive 现在已配置好并正在运行了。

测试

为了测试 mod_evasive,我们只需要向服务器提出足够的网页访问请求,以使其超出阈值,并记录来自 Apache 的响应代码。

一个正常并成功的页面请求将收到如下响应:

HTTP/1.1 200 OK
ログイン後にコピー

但是,被 mod_evasive 拒绝的将返回以下内容:

HTTP/1.1 403 Forbidden
ログイン後にコピー

以下脚本会尽可能迅速地向本地主机(127.0.0.1,localhost)的 80 端口发送 HTTP 请求,并打印出每个请求的响应代码。

你所要做的就是把下面的 bash 脚本复制到一个文件中,例如 mod_evasive_test.sh

#!/bin/bash
set -e

for i in {1..50}; do
        curl -s -I 127.0.0.1 | head -n 1
done
ログイン後にコピー

这个脚本的部分含义如下:

  • curl - 这是一个发出网络请求的命令。
    • -s - 隐藏进度表。
    • -I - 仅显示响应头部信息。
  • head - 打印文件的第一部分。
    • -n 1 - 只显示第一行。

然后赋予其执行权限:

chmod 755 mod_evasive_test.sh
ログイン後にコピー

在启用 mod_evasive 之前,脚本运行时,将会看到 50 行 “HTTP / 1.1 200 OK” 的返回值。

但是,启用 mod_evasive 后,您将看到以下内容:

HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
...
ログイン後にコピー

前两个请求被允许,但是在同一秒内第三个请求发出时,mod_evasive 拒绝了任何进一步的请求。您还将收到一封电子邮件(邮件地址在选项 DOSEmailNotify 中设置),通知您有 DOS 攻击被检测到。

mod_evasive 现在已经在保护您的网站啦!


以上が回避モジュールは、アプリケーション層の DOS 攻撃から Web サイトを保護します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Deepseek Webバージョンの入り口Deepseek公式ウェブサイトの入り口 Deepseek Webバージョンの入り口Deepseek公式ウェブサイトの入り口 Feb 19, 2025 pm 04:54 PM

DeepSeekは、Webバージョンと公式Webサイトの2つのアクセス方法を提供する強力なインテリジェント検索および分析ツールです。 Webバージョンは便利で効率的であり、公式ウェブサイトは包括的な製品情報、ダウンロードリソース、サポートサービスを提供できます。個人であろうと企業ユーザーであろうと、DeepSeekを通じて大規模なデータを簡単に取得および分析して、仕事の効率を向上させ、意思決定を支援し、イノベーションを促進することができます。

DeepSeekをインストールする方法 DeepSeekをインストールする方法 Feb 19, 2025 pm 05:48 PM

DeepSeekをインストールするには、Dockerコンテナ(最も便利な場合は、互換性について心配する必要はありません)を使用して、事前コンパイルパッケージ(Windowsユーザー向け)を使用してソースからコンパイル(経験豊富な開発者向け)を含む多くの方法があります。公式文書は慎重に文書化され、不必要なトラブルを避けるために完全に準備します。

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

Bitget公式ウェブサイトのインストール(2025初心者ガイド) Bitget公式ウェブサイトのインストール(2025初心者ガイド) Feb 21, 2025 pm 08:42 PM

Bitgetは、スポット取引、契約取引、デリバティブなど、さまざまな取引サービスを提供する暗号通貨交換です。 2018年に設立されたこのExchangeは、シンガポールに本社を置き、安全で信頼性の高い取引プラットフォームをユーザーに提供することに取り組んでいます。 Bitgetは、BTC/USDT、ETH/USDT、XRP/USDTなど、さまざまな取引ペアを提供しています。さらに、この取引所はセキュリティと流動性について評判があり、プレミアム注文タイプ、レバレッジド取引、24時間年中無休のカスタマーサポートなど、さまざまな機能を提供します。

gate.ioインストールパッケージを無料で入手してください gate.ioインストールパッケージを無料で入手してください Feb 21, 2025 pm 08:21 PM

Gate.ioは、インストールパッケージをダウンロードしてデバイスにインストールすることで使用できる人気のある暗号通貨交換です。インストールパッケージを取得する手順は次のとおりです。Gate.ioの公式Webサイトにアクセスし、「ダウンロード」をクリックし、対応するオペレーティングシステム(Windows、Mac、またはLinux)を選択し、インストールパッケージをコンピューターにダウンロードします。スムーズなインストールを確保するために、インストール中に一時的にウイルス対策ソフトウェアまたはファイアウォールを一時的に無効にすることをお勧めします。完了後、ユーザーはGATE.IOアカウントを作成して使用を開始する必要があります。

OUYI OKXインストールパッケージが直接含まれています OUYI OKXインストールパッケージが直接含まれています Feb 21, 2025 pm 08:00 PM

世界をリードするデジタル資産交換であるOuyi Okxは、安全で便利な取引体験を提供するために、公式のインストールパッケージを開始しました。 OUYIのOKXインストールパッケージは、ブラウザに直接インストールでき、ユーザー向けの安定した効率的な取引プラットフォームを作成できます。インストールプロセスは、簡単で理解しやすいです。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

OUYI Exchangeダウンロード公式ポータル OUYI Exchangeダウンロード公式ポータル Feb 21, 2025 pm 07:51 PM

OKXとしても知られるOUYIは、世界をリードする暗号通貨取引プラットフォームです。この記事では、OUYIの公式インストールパッケージのダウンロードポータルを提供します。これにより、ユーザーはさまざまなデバイスにOUYIクライアントをインストールすることが容易になります。このインストールパッケージは、Windows、Mac、Android、およびiOSシステムをサポートします。インストールが完了した後、ユーザーはOUYIアカウントに登録またはログインし、暗号通貨の取引を開始し、プラットフォームが提供するその他のサービスを楽しむことができます。

See all articles