httpdでServerTokensを表示させない

表題の通り。Apache httpdで情報を隠す。

■ 環境

  • Apache Httpd 2.4.23
  • Docker for Mac 1.12.3
  • Mac OSX El Capitan

■ httpd

先日の下記エントリで起動したhttpd@Dockerで試す。

httpd@Docker

設定ファイルがどこにあるかを探してみると下記にあるようであった。

/usr/local/apache2/conf/httpd.conf

これを取得して編集を行う。

$ docker cp httpd:/usr/local/apache2/conf/httpd.conf .

編集した後に起動するコンテナは下記の通り。

$ docker run -ti --rm --name httpd -p 8000:80 -v `pwd`/httpd.conf:/usr/local/apache2/conf/httpd.conf httpd

■ ServerTokens

デフォルトではディレクティブが記載されていなかった。この状態で確認してみる。

$ curl -s --dump-header - localhost:8000 | grep Server
Server: Apache/2.4.23 (Unix)
$

では設定を変更してみる。

core – Apache HTTP サーバ バージョン 2.4
https://httpd.apache.org/docs/2.4/ja/mod/core.html#servertokens

マニュアルによると設定できる値は下記があるようである。

  • Prod
  • Major
  • Minor
  • Min
  • OS
  • Full

それぞれ取得できる値は下記のようであった。

  • Prod: Server: Apache
  • Major: Server: Apache/2
  • Minor: Server: Apache/2.4
  • Min: Server: Apache/2.4.23
  • OS: Server: Apache/2.4.23 (Unix)
  • Full: Server: Apache/2.4.23 (Unix)

WEBサーバの種類(nginx or apache)はやはり消せないのか。。

以上。

■ 関連