はじめに
Apache インターネットで使用される最も人気のあるWebサーバーです。また、ほとんどの状況に理想的であり、共有環境に柔軟性をもたらします。このチュートリアルでは、 Apacheを保護する方法を説明します。 Webサーバー。このチュートリアルでは、Centos8を使用します。apacheのインストールチュートリアルはここにあります。 Apacheを変更する方法を説明します Ubuntu/Debianシステムでの構成も。
1。 Apacheを最新の状態に保つ
rootまたはsudo特権ユーザーアカウントを使用してシステムにログインします。 Apacheを確認してください 次のコマンドを実行してバージョンを作成します。
httpd -v
2。 ApacheのバージョンとサーバーのOS情報を非表示にする 。
システムで使用しているWebサーバーのバージョンを公開したくないため、最初に考慮する必要があります。バージョンとOSの情報を公開するということは、ハッカーが攻撃プロセスを迅速に行えるよう支援していることを意味します。下の写真では、その Apacheを見ることができます バージョンを表示します OSがインストールされている サーバー上で。
Apacheを防ぐため バージョンとオペレーティングシステムの情報を公開することから、 Apacheを変更する必要があります のメイン構成ファイル。次のコマンドを実行して構成ファイルを開きます-
nano /etc/httpd/conf/httpd.conf
nano /etc/apache2/apache.conf (Ubuntu / Debian)
次に、以下の2つのディレクティブをメイン構成ファイルに追加して保存します。
ServerTokens Prod
ServerSignature Off
そして、 Apacheを再起動します 次のコマンドを実行してサーバー-
systemctl restart httpd.service
下の画像でわかるように、 Apache バージョンは公開されておらず、操作情報も表示されません。
3。ディレクトリインデックスを無効にする
デフォルトでは、 Apache インデックスファイルがない場合のWebrootディレクトリのすべてのコンテンツを表示します。下の画像のように、
ブラウザでディレクトリのインデックス作成を防ぐには、 Apacheのoptionsディレクティブを変更する必要があります 構成ファイル。構成を開き、以下のようにエントリを変更します。
<Directory /var/www/html>
Options -Indexes
</Directory>
ブラウザを開き、アドレスバーにIPまたはURLを入力します。そして、以下のような画像が表示されます
4。 ETagを無効にする
Etag Webキャッシングの動作を管理するためにHTTPヘッダーで使用されます。ただし、 Etag セキュリティの問題を引き起こす可能性があります。リモートの攻撃者は、iノード番号、mimeタイプ、 ETagによる処理などの機密情報を取得できます。 ヘッダ。攻撃や情報漏えいを防ぐために、 Apacheに次のディレクティブを追加してください 構成。
これを実現するには、次の行を Apacheに追加するだけです。 構成ファイルを作成し、 Apacheを再起動します 。
FileEtag None
5。 CGIとSSIを無効にする
SSI(サーバーサイドインクルード)は、動的コンテンツを含むHTMLページを作成するために使用されるディレクティブであり、CGIは、Webコードに悪意のあるスクリプトを挿入するために使用されます。次のオプションディレクティブをApache構成に追加して、CGIとSSIを制限します。
Options -Includes -ExecCGI
6。ディレクトリアクセスを制限する
「許可と拒否」を使用してWebルートディレクトリへのアクセスを制限することをお勧めします。 構文。これを実現するには、 apacheで次の変更を行います。 構成ファイル。 ディレクトリの構成ファイルとサーバーを開きます ディレクトリディレクティブをブロックして次のように記述し、保存します。次に、Apacheを再起動して、効果を変更します
<Directory />
Options None
Order deny,allow
Deny from all
</Directory>
上記の設定は、ルートディレクトリへの誰からの要求も拒否します。ルートディレクトリには誰もアクセスできません。
7。 Mod_SecurityでApacheを保護する
Mod_securityはセキュリティツールであり、Webサイトまたはアプリケーションのファイアウォールとして機能します。これは、Webサイトまたはアプリケーションを、許可されていないアクセスやブルートフォース攻撃から保護するのに役立ちます。次のコマンドを実行してmod_securityをインストールし、Apacheを再起動してmod_securityを操作します。
dnf -y install mod_security
8。 HTTPリクエストメソッドを定義する
現在のHTTP プロトコルでは、多くのリクエストは不要であり、セキュリティ上のリスクがあるものもあります。ただし、Webアプリケーションで GETを許可するだけで十分です。 、 HEAD 、および POST リクエストメソッド。それぞれのDirectoryディレクティブを追加することで、この設定を構成できます。これを実現するには、 Apacheを開きます 構成ファイル、ディレクトリを検索し、次の内部ディレクティブを追加して、 Apacheを再起動します
<LimitExcept GET POST HEAD>
deny from all
</LimitExcept>
9。 XSS保護ヘッダーを有効にする
クロスサイトスクリプティングは(XSS)と呼ばれ、Webアプリケーションに見られる一般的な脆弱性です。クロスサイトスクリプティング(XSS)保護は、多くのブラウザーでスキップされる可能性があります。ただし、 Apache に次のエントリを追加することで、一部のXSS攻撃を防ぐことができます。 構成ファイルとそれを保存します。そして、 Apacheを再起動します サーバー。
Header set X-XSS-Protection "1; mode=block"
次に、ブラウザ開発者ツールでリクエストヘッダーを確認します。下の画像で、そのヘッダーが正常に実装されていることがわかります。
10。 TRACEHTTPリクエストを無効にする
デフォルトでは、TraceHTTPRequestはApacheで開きます クロスサイトトレーシングを可能にします。このオプションを使用すると、ハッカーはCookie情報を簡単に盗むことができます。これを防ぐには、次のパラメータを Apacheに追加します 構成ファイル。そして、 Apacheを再起動します 。
TraceEnable off
11。クリックジャッキング攻撃を防ぐ
クリックジャッキング は、「ユーザーインターフェースの救済攻撃」とも呼ばれ、感染したユーザーのクリックを収集する悪意のある手法です。 クリックジャッキング 被害者(訪問者)をだまして、感染したサイトをクリックさせます。このインシデントを防ぐには、 Apacheで「X-FRAME-OPTION」を使用する必要があります 構成ファイル。これを行うには、構成ファイルに次の行を追加します。
Header set X-FRAME-OPTIONS "SAMEORIGIN"
Apache にX-FRAME-OPTIONSが正常に追加されたことがわかるので、ブラウザ開発者ツールでリクエストヘッダーを確認します。 構成ファイル。
13。 HTTPOnlyフラグでCookieを保護する
HttpOnlyとSecureがないと、WebアプリケーションセッションとCookieを盗んだり操作したりする可能性があり、危険です。これを軽減するには、 mod_header モジュールはサーバー側で実行されています。
apachectl -M | grep header
上の画像では、mod_headerモジュールがロードされて Apacheで有効になっていることがわかります。 。次に、Apacheのメイン構成ファイルに次の行を追加し、 Apacheを再起動します。 サーバー。
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
14。 リクエストサイズの制限
デフォルトでは、 ApacheのHTTPリクエスト 無制限です。したがって、Webサーバーは、多数の要求に対して開いたままにすることで、DoS攻撃の影響を受けやすくなります。次に、ファイルリクエストの制限を設定することが重要です。これは、 LimitRequestBodyを追加することで実行できます。 Apacheのディレクティブ 構成ファイル。
たとえば、unixcopは、ユーザーによってアップロードされたファイルを含むディレクトリです。現在、アップロードサイズを 2Kに制限しています ユーザーがこれ以上ファイルをアップロードできないようにします。
<Directory "/var/www/html/unixcop">
LimitRequestBody 20000
</Directory
結論
このチュートリアルから、Apacheサーバーを攻撃者から保護する方法を学びました。私たちの記事があなたのサーバーを保護するのに役立つことを願っています。他の記事をフォローすることもできます。