Apacheのバージョン番号やその他の機密情報を非表示にする方法


リモートリクエストがApacheWebサーバーに送信されると、デフォルトでは、Webサーバーのバージョン番号、サーバーのオペレーティングシステムの詳細、インストールされているApacheモジュールなどの貴重な情報が、サーバーで生成されたドキュメントとともにクライアントに返送されます。

これは、攻撃者が脆弱性を悪用してWebサーバーにアクセスするための大量の情報です。 Webサーバー情報が表示されないようにするために、この記事では、特定のApacheディレクティブを使用してApacheWebサーバーの情報を非表示にする方法を示します。

2つの重要なディレクティブは次のとおりです。

これにより、エラーメッセージ、mod_proxy ftpディレクトリリスト、mod_info出力など、サーバーで生成されたドキュメントの下にサーバー名とバージョン番号を示すフッター行を追加できます。

3つの可能な値があります。

  1. On – which allows the adding of a trailing footer line in server-generated documents,
  2. Off – disables the footer line and
  3. EMail – creates a “mailto:” reference; which sends a mail to the ServerAdmin of the referenced document.

クライアントに返送されるサーバー応答ヘッダーフィールドに、サーバーのOSタイプの説明と有効なApacheモジュールに関する情報が含まれているかどうかを判別します。

このディレクティブには、次の可能な値があります(さらに、特定の値が設定されたときにクライアントに送信されるサンプル情報)。

ServerTokens   Full (or not specified) 
Info sent to clients: Server: Apache/2.4.2 (Unix) PHP/4.2.2 MyMod/1.2 

ServerTokens   Prod[uctOnly] 
Info sent to clients: Server: Apache 

ServerTokens   Major 
Info sent to clients: Server: Apache/2 

ServerTokens   Minor 
Info sent to clients: Server: Apache/2.4 

ServerTokens   Min[imal] 
Info sent to clients: Server: Apache/2.4.2 

ServerTokens   OS 
Info sent to clients: Server: Apache/2.4.2 (Unix) 

注:Apacheバージョン2.0.44以降、ServerTokensディレクティブは、ServerSignatureディレクティブによって提供される情報も制御します。

Webサーバーのバージョン番号、サーバーのオペレーティングシステムの詳細、インストールされているApacheモジュールなどを非表示にするには、お気に入りのエディターを使用してApacheWebサーバーの構成ファイルを開きます。

$ sudo vi /etc/apache2/apache2.conf        #Debian/Ubuntu systems
$ sudo vi /etc/httpd/conf/httpd.conf       #RHEL/CentOS systems 

そして、以下の行を追加/変更/追加します。

ServerTokens Prod
ServerSignature Off 

ファイルを保存し、次のようにApacheWebサーバーを終了して再起動します。

$ sudo systemctl restart apache2  #SystemD
$ sudo service apache2 restart     #SysVInit

この記事では、Apache Webサーバーのバージョン番号を非表示にする方法に加えて、特定のApacheディレクティブを使用してWebサーバーに関する多くの情報を説明しました。

Apache WebサーバーでPHPを実行している場合は、PHPのバージョン番号を非表示にすることをお勧めします。

いつものように、あなたは下のコメントセクションを通してこのガイドにあなたの考えを加えることができます。