フリーで利用でき、実質Linux上で動作するWebサーバーのデファクトスタンダードとなっているApacheですが、セットアップしてすぐの時によくやってしまうミスの一つとして、エラーページにバージョン情報を公開してしまう、ということがあります。
これはApacheのデフォルト設定が、ApacheのバージョンとOS名を表示するようになっているからです。
何がまずいのか、と思う方もいらっしゃるかもしれませんが、ApacheのバージョンやOSがわかる状態になっていると、もしそのバージョンに脆弱性が発見された際、攻撃者にヒントを与えてしまうことになります。
バージョンが見えてしまったからと言って必ず攻撃されるわけではありませんが、セキュリティ的にはよろしくないので、公開する環境においては非表示にすることが推奨されています。
ということで今回はエラーページからバージョン表示を無効化する方法をご紹介します。
なお、debian系OSとRedHat系OSで編集する設定ファイルが異なりますので注意が必要です。
debian系の場合
設定ファイルは
/etc/apache2/conf-available/security.conf
にあります。
このファイル中の25行目あたりに
ServerTokens OS
という項目がありますので
ServerTokens Prod
と変更しておきます。
この状態で
sudo service apache2 restart
とすれば反映されます。
RedHat系の場合
RedHat系の場合はデフォルトで設定ファイルに指定がないようなので
/etc/httpd/conf/httpd.conf
の末尾に一行書き足します。
ServerTokens Prod
書き足したら、下記コマンドを実行します。
sudo service httpd restart
これで設定は完了です。
この状態でサイトのエラーページを出してみると
このように、ApacheのバージョンとOSの表記を消した状態で表示されるようになります。
ApacheでWebサーバーを運用される方は是非参考にしてみてください。