最近の有名どころのLinuxディストリビュージョンでは、インストールしてすぐに使用できるような状態でApacheやnginxなどのWebサーバーアプリケーションなどのパッケージを公開しています。
そのため、自分で動作のカスタマイズをしたい場合以外は、ほとんどパッケージをインストールして、ファイルを指定の場所に置くだけで、Webサーバーとして機能させることができます。
ところが、これらのパッケージに含まれるサーバーの設定では、デバッグなどでも利用できるように、少し緩めの設定になっている場合が多いです。
ネット上には公開していないテスト環境としてであれば問題はありませんが、本番環境であったりテスト環境であってもネット上に公開されている場合は、デフォルトのままで使用してしまうと危険な設定が含まれている場合があります。
たとえば、CentOS版のApacheパッケージのデフォルト設定では、HTTPヘッダに
“Server”
“X-Powered-By”
といった内容がつきます。
ServerヘッダにはWebサーバーの種類・バージョンが記載されます。
また、X-Powered-Byにはサーバー側でプログラムを使って処理を行った場合に、どの言語・バージョンを使用しているのか、といった情報が載ってきます。
インターネット上にサーバーを公開する際、使用中のソフトウェアのバージョン情報などがわかってしまうと、悪意ある利用者がどういった脆弱性を用いれば攻撃が可能となるかのヒントを与えてしまうことになり、自分のサーバーが攻撃を受ける危険性を高めてしまいます。
したがって、こういった内部の情報は、可能な限り公開しないようにした方がよいとされています。
これらのヘッダ情報は設定を変更するだけで簡単に非表示にすることができます。
Serverヘッダについては、Apacheでは、
/etc/httpd/conf/httpd.conf
内の
ServerTokens OS
などとなっている部分を
ServerTokens Prod
とするとどのバージョンのApacheを使用しているかを非表示にすることができます。
nginxの場合は”http”ディレクティブ内の”server_tokens”のオプションを”off”に書き換えることで同様の設定ができます。
http {
...省略...
server_tokens off;
...省略...
}
また、PHPを使用していて、X-Powered-Byがヘッダに含まれている場合は、php.iniの
expose_php = On
を
expose_php = Off
に変更することで X-Powered-By の記述そのものを削除することができます。
実際に今動作させているサイトが、どのようなヘッダーを吐き出しているのかを確認することも大事です。
Chrome・Firefoxなどの主要ブラウザでは、F12キーを押すと開発者ツールが開きますが、その中の”Network”タブを確認すると、どんなヘッダが各コンテンツにくっついているのかを確認することができます。
ネット上に公開する際は、どういった情報をサーバーが公開しているのかを調べておくのがおすすめです。