web-dev-qa-db-ja.com

Apache httpd "Server:" HTTPヘッダーを変更する

Apache httpd が応答データとともに返すHTTPヘッダーの1つは「サーバー」です。たとえば、私のWebサーバーマシンは比較的最新のArch Linuxです。次のようなヘッダーを送り返します。

HTTP/1.1 404 Not Found
Date: Thu, 10 Apr 2014 17:19:27 GMT
Server: Apache/2.4.9 (Unix)
Content-Length: 1149
Connection: close
Content-Type: text/html

ServerSignature off/etc/httpd/conf/httpd.confがありますが、 "Server:"ヘッダーはまだ表示されます。 mod_headers を試してみました。私はそれを有効にし、いくつかのことを試しました:

<IfModule headers_module>
Header set ProcessingTime "%D"
Header set Server BigJohn
</IfModule>

上記の構成でhttpdを停止して開始した後、HTTPヘッダーにはProcessingTime: 1523のようなものが含まれますが、「Server:」ヘッダー行は変更されません。したがって、「mod_headers」がインストールされて有効になっており、機能していることはわかっていますが、希望どおりではありません。

「mod_security」と呼ばれる何かがこれを行うと主張しているのを見ますが、私はmod_securityが携行する残りのすべての荷物を欲しくない。

UPDATE:

mod_securityをインストールしたら、必要なディレクティブはわずかです。

<IfModule security2_module>
SecRuleEngine on
ServerTokens Full
SecServerSignature "Microsoft-IIS/6.0"
</IfModule>

mod_security 2.7.7について

34
Bruce Ediger

サーバーID /トークンヘッダーは、「 ServerTokens "ディレクティブ(mod_coreによって提供される)によって制御されます。 Apache HTTPDソースコードを変更するか、mod_securityモジュールを使用する以外に、サーバーIDヘッダーを完全に抑制する方法はありません。

mod_securityアプローチを使用すると、modsecurity.confファイル内のモジュールのすべてのディレクティブ/関数を無効にし、追加の「手荷物」なしでサーバーヘッダーIDディレクティブのみを利用できます。

13
Chipster

mod_securityは素晴らしいですが、目標を達成するために本当に必要なわけではありません。

すべてのmodがhttpd.confに含まれた後、選択したヘッダーの設定を解除できます。

Header unset Server

ServerSignature Off
ServerTokens Prod

http://httpd.Apache.org/docs/2.4/mod/core.html#serversignature

25
Matt Ryan

まだ見ている人のためにこれを更新するだけです。 HTTPヘッダーのServer行を変更できませんでした。このアドバイスは、systemdとApache 2.4.7を使用するDebianブランチディストリビューションで機能するはずです。具体的には、Ubuntu Server LTS 14.04.03を使用しています。私が見つけたいくつかのアドバイスはすることでした

grep -Ri servertokens /etc/Apache2

これにより、ServerTokensとServerSignatureの両方が指定されている/etc/Apache2/conf-available/security.confに移動しました。したがって、私が/etc/Apache2/Apache2.confに加えた変更は、すでにsecurity.confで指定されているディレクティブによって上書きされていました。

Security.confのディレクティブを変更するだけで、Apacheが思い通りに機能し始めました。

ServerTokens Prod
ServerSignature Off

Header unset Serverのトピックで、Apache開発者が修正できない問題であるとバグレポートを見つけました。 HTTP/1.1の仕様であるTim Berners-Leeが一部執筆したRFC 2616であるにもかかわらず、Serverタグはオプションであると述べているにもかかわらず、彼らにとってはそれは哲学的問題です。

Qualysスキャンを円滑にするために、Serverタグを「Unknown」に設定したかったのです。だから、私は このDigitalOceanチュートリアル に続いてlibapache2-modsecurityと呼ばれるmod_securityをインストールしました。幸運を祈ります。今後の読者の皆さんのお役に立てれば幸いです。

14
slmaq

Oracle HTTP Server 11.1.1.9(Apache 2.2.22上に構築されています)で、ある程度は動作するものをテストしました。

「ServerTokens」を「none」に設定すると、「Server」ヘッダー値が削除されるようですが、ヘッダー自体は応答で送信され続けますが、現在はnull値を持っています。

ServerTokensなし

応答ヘッダーは次のようになります。

HTTP/1.1 200 OK

日付:2015年12月28日月曜日07:02:45 GMT

サーバー:

最終変更日:2015年12月27日07:29:13 GMT

1
Mohab Elsayed