Apacheディレクティブの確認・変更【ServerSignature】

Apacheディレクティブの確認・変更【ServerSignature】 サーバー

「Apacheのディレクティブがよくわからない・・・」
「ServerSignatureを値を変更したい」

このような場合には、この記事の内容が参考になります。
この記事では、Apacheディレクティブを確認・変更する方法を解説しています。

本記事の内容

  • Apache起動時の設定
  • Apache設定ディレクティブの確認方法
  • ServerSignatureの確認

それでは、上記に沿って解説していきます。

Apache起動時の設定

Apache起動時の設定とは、主に以下を指しています。

  • 設定ファイルのパス
  • ドキュメントルート
  • エラーログのパス
  • 実行ユーザー・グループ

そして、これらの情報は以下のコマンドで確認できます。

apache2ctl -t -D DUMP_RUN_CFG

実行した結果は、以下。

$ apache2ctl -t -D DUMP_RUN_CFG
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/run/apache2/" mechanism=default 
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used

Ubuntuであれば、普通は上記のような結果となります。
普通とは、aptコマンドでApacheをインストールしている場合を指します。

このコマンドを使えば、ドキュメントルートのパスを迷うこともありません。
エラーログのパスについても、記憶や勘に頼る必要もないです。

したがって、このコマンドは覚えておいて損はありません。

以上、Apache起動時の設定を説明しました。
次は、Apache設定ディレクティブの確認方法について説明します。

Apache設定ディレクティブの確認方法

Apacheには、ディレクティブが数多く存在しています。
その一覧は、次のページで確認できます。

ディレクティブ一覧 – Apache HTTP サーバ バージョン 2.4
https://httpd.apache.org/docs/2.4/mod/directives.html

内容やデフォルト値は、上記ページから確認できます。
しかし、利用中のApacheにおける設定値の確認はなかなか大変です。

例えば、「ServerSignature」の説明を確認してみましょう。

コンテキスト部分に注目です。

  • サーバ設定ファイル
  • バーチャルホスト
  • ディレクトリ
  • .htaccess

「ServerSignature」は、全部で4つの箇所で設定できます。
ここでは、Apache起動時のオプションによる設定などは省きます。
あくまで、設定ファイルに記載されているモノを対象にします。

この場合、.htaccess以外の設定ファイルはある場所に集約しています。
ある場所とは、「ServerRoot」です。

Apache起動時の設定の際に、「ServerRoot」を確認できています。

ServerRoot: "/etc/apache2"

Apacheの設定ファイルの場所については、次の記事で説明しています。

詳細について知りたい場合は、上記の記事を参考にしてください。

まとめると、「/etc/apache2」以下の設定ファイルを検索すればいいのです。
コマンドで表現すると、以下のコマンドとなります。

find /etc/apache2 -type f -name "*.conf" | xargs grep "ディレクティブ"

なお、.htaccessを対象にする場合は以下で対応できるでしょう。

find DocumentRootのパス -type f -name ".htaccess" | xargs grep "ディレクティブ"

DocumentRootもApache起動時の設定で確認できます。

Main DocumentRoot: "/var/www/html"

以上、Apache設定ディレクティブの確認方法を説明しました。
最後は、ServerSignatureを確認・変更してみましょう。

ServerSignatureの確認・変更

改めてServerSignatureの説明を確認しましょう。

機能としては、次の項目(下線)の表示を制御しています。

Onなら表示、Offなら非表示です。
Emailの場合は、Onで情報量が多くなります。

そして、デフォルト値は「Off」ということです。
ここで言う「デフォルト」については、後で説明します。

確認するには、以下のコマンドを利用します。

find /etc/apache2 -type f -name "*.conf" | xargs grep "ServerSignature"

上記コマンドを実行した結果は、以下。

$ find /etc/apache2 -type f -name "*.conf" | xargs grep "ServerSignature"
/etc/apache2/conf-available/security.conf:#ServerSignature Off
/etc/apache2/conf-available/security.conf:ServerSignature On
/etc/apache2/conf-available/localized-error-pages.conf:# ServerAdmin email address regardless of the setting of ServerSignature.

「security.conf」に「ServerSignature」が設定されていることを確認できます。

/etc/apache2/conf-available/security.conf

デフォルトでは、「On」が設定されています。
もちろん、インストール以降にこのファイルを触っていません。

「あれ、デフォルトはOffではないの?」
このように思う方がいると思います。

実際、私は思いました。
以下で言う「デフォルト」は、ディレクティブ自体が何も設定されてない場合を指します。

つまり、「ServerSignature」を検索しても何も出てこない場合のことを言います。
出てきてもコメントアウトされていたら、未設定と同じです。

それでは、「ServerSignature」を未設定の状態にしてみましょう。
すべてコメントアウトにしています。

この変更を反映するためには、Apacheの再起動が必要です。

$ sudo systemctl restart apache2

「ServerSignature」の変更を確認するために、403エラーを起こします。

何も表示されないようになりました。
デフォルトの「Off」が設定されているということですね。

ServerSignatureの値について説明しました。

タイトルとURLをコピーしました