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

ModセキュリティでApacheWebサーバーを保護する

ModSecとも呼ばれるModSecurityは、ApacheWebサーバー用の無料のオープンソースWebアプリケーションファイアウォールです。 ModSecurityは、SQLインジェクション、XSS、トロイの木馬、ボット、セッションキャプチャ/ハイジャックなど、さまざまな種類の攻撃からWebサーバーを保護するのに役立つApacheモジュールです。 ModSecurityは、リアルタイムのWeb監視、ロギング、およびアクセス制御を備えた強力なルールセットを提供します。

このチュートリアルでは、Ubuntu18.04にApacheを使用してModSecurityをインストールおよび構成する方法を示します。

前提条件

  • Atlantic.Netクラウドプラットフォーム上の新しいUbuntu18.04VPS。
  • サーバーに構成されている静的IPアドレス。

ステップ1–Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてUbuntu18.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

apt-get update -y

ステップ2–LAMPスタックをインストールする

まず、サーバーにLAMPスタックをインストールする必要があります。次のコマンドを実行してインストールできます:

apt-get install apache2 mariadb-server php7.2-mysql php7.2 libapache2-mod-php7.2 unzip git -y

LAMPをインストールした後、Apacheサービスを開始し、次のコマンドを使用してシステムの再起動後にサービスを開始できるようにします。

systemctl start apache2
systemctl enable apache2

この時点で、ApacheWebサーバーがサーバーにインストールされて実行されています。

ステップ3–ModSecurityをインストールする

apt-get install libapache2-mod-security2 -y

インストールが完了したら、Apacheサービスを再起動して変更を適用します。

systemctl restart apache2

次に、次のコマンドを実行して、モジュールがロードされているかどうかを確認することもできます。

apachectl -M | grep security

次の出力が得られるはずです:

security2_module (shared)

ステップ4–ModSecurityを構成する

デフォルトで設定されているセキュリティルールはないため、最初に有効にする必要があります。これを行うには、ModSecurityのデフォルト構成ファイルの名前を/etc/modsecurity/modsecurity.confに変更します-/etc/modsecurity/modsecurity.confに推奨されます。

cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

次に、お好みのテキストエディタを使用してファイルを編集します:

nano /etc/modsecurity/modsecurity.conf

次の行を見つけます:

SecRuleEngine DetectionOnly

次のように置き換えます:

SecRuleEngine On

終了したら、ファイルを保存して閉じます。次に、変更を有効にするためにApacheサービスを再起動します。

systemctl restart apache2

ステップ5–ModSecurityコアルールをダウンロードして構成する

ModSecurityのデフォルトのルールセットは/usr/ share / modsecurity-crsディレクトリ内にありますが、GitHubから新しいルールセットをダウンロードすることをお勧めします。

まず、次のコマンドで古いルールを削除します。

rm -rf /usr/share/modsecurity-crs

次に、次のコマンドを使用して最新のルールセットをダウンロードします。

git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git /usr/share/modsecurity-crs

次に、apache構成でこのルールセットを有効にする必要があります。ファイル/etc/apache2/mods-enabled/security2.confを編集することで有効にできます:

nano /etc/apache2/mods-enabled/security2.conf

「」

の行の上に次の行を追加します
     IncludeOptional "/usr/share/modsecurity-crs/*.conf
     IncludeOptional "/usr/share/modsecurity-crs/rules/*.conf

ファイルを保存して閉じます。次に、Apacheサービスを再起動し、Apacheヘッダーモジュールが変更を実装できるようにします。

a2enmod headers
systemctl restart apache2

この時点で、ModSecurityはApacheWebサーバーと連携するように構成されています。

ステップ6–ModSecurityのテスト

ModSecurityを構成した後、Webブラウザーで悪意のあるスクリプトを実行して、ModSecurityルールがトリガーされるかどうかを確認できます。

Webブラウザーを開き、URL http://your-server-ip/index.html?exec=/bin/bashを入力します 。次のページに禁止されたエラーメッセージが表示されます。

シミュレートされたXSS攻撃から保護するためのModSecurityのルールをテストするには、URL http:// your-server-ip /?q =”> にアクセスします。 Webブラウザから。次の画面が表示されます。

Nessusスキャンに対してModSecurityのルールをテストするには、以下に示すように、Nessusスキャナーでcurlコマンドを使用して、ApacheサーバーにHTTPリクエストを送信します。

curl -i http://your-server-ip -A Nessus

ModSecurityがユーザーエージェントをNessusスキャンとして識別したため、403Forbidden応答が返されるはずです。

HTTP/1.1 403 Forbidden
Date: Sat, 21 Dec 2019 04:17:24 GMT
Server: Apache/2.4.29 (Ubuntu)
Content-Length: 278
Content-Type: text/html; charset=iso-8859-1

ステップ7–ModSecurityから特定のドメインを除外する

場合によっては、特定のドメインをModSecurity保護から除外する必要があります。特定のドメインのModSecurityを無効にするには、特定のドメインのApache仮想ホスト構成ファイルを開きます。

nano /etc/apache2/site-enabled/your-domain.conf

ブロック内に次の行を追加します。

<IfModule security2_module>
    SecRuleEngine Off
</IfModule>

ファイルを保存して閉じます。次に、Apacheサービスを再起動して変更を適用します。

systemctl restart apache2

結論

悪意のある攻撃からApacheWebサーバーを保護するためにModSecurityをインストールおよび構成する方法を確認しました。詳細については、ModSecurityのModSecurityドキュメントをご覧ください。


Linux
  1. Apacheを使用してCentos7.xにmodセキュリティをインストールするにはどうすればよいですか?

  2. cPanel Security Advisor を使用してサーバーをスキャンする方法

  3. Debian Apache PHP サーバーの保護

  1. ApacheWebサーバーを構成する方法

  2. LynisでLinuxセキュリティをスキャンする

  3. ApacheWebサーバーのキープアライブのチューニング

  1. Linuxサーバーを保護するための7つのステップ

  2. ApacheWebサーバーで複数のWebサイトを構成する方法

  3. ApacheWebサーバーにアクセスする上位10個のIPアドレスを検索する