apacheのバージョン確認方法とバージョンを隠す方法

 検索頂いたフレーズに基づき情報を追加していこうと思い、本エントリを書くことにした。

 今回検索頂いたフレーズはこちら。

apache httpd.conf バージョン 見分け方

 うーん、実際には何をお知りになりたかったのか分からないが、とりあえずApacheのバージョンの確認方法などを書くことにする。これは基本中の基本でもある。

 まず、Apacheが導入されているサーバにsshなどでリモートログインできる場合。

[root@localhost root]# httpd -v

 これだけです。結果としては下記例のように表示される。

[root@localhost root]# httpd -v
Server version: Apache/2.0.46
Server built: Dec 3 2004 23:38:20

 IEやfirefoxなどのブラウザをベースとして対象wwwサーバのApacheのバージョンを確認したい場合は、ひとつの方法として存在しないページにアクセスし、404エラー(404 Not Found)を表示させることが考えられる。httpd.confのServerTokensおよびServerSignatureディレクティブの値が下記のようにデフォルト値の場合は、

ServerTokens OS
ServerSignature On

 以下のようにOSやらバージョンやらが表示されてしまうだろう。

Not Found

The requested URL xxxxx was not found on this server.
Apache/2.0.46 (CentOS) Server at www.xxxxxxxxx.com Port 80

 もちろんセキュリティ的にはこれは好ましいことではないので、一応この値は、

ServerTokens ProductOnly
ServerSignature Off

 といったように変更し、httpdをリロードし反映しておこう。これでOSもApacheのバージョンも一応は表示されなくなる。

 但し、上記はあくまでバージョンやらの情報を隠すだけの効果があるだけで、気休め程度でしかないと考えたほうが良い。脆弱性のあるバージョンのApacheを使用していれば元も子もないのである。バージョンアップ、パッチ適用、バックアップは面倒でもこまめに行うこと。

Apacheな本とかリアルなアパッチとか