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について
サーバーID /トークンヘッダーは、「 ServerTokens "ディレクティブ(mod_core
によって提供される)によって制御されます。 Apache HTTPDソースコードを変更するか、mod_security
モジュールを使用する以外に、サーバーIDヘッダーを完全に抑制する方法はありません。
mod_security
アプローチを使用すると、modsecurity.conf
ファイル内のモジュールのすべてのディレクティブ/関数を無効にし、追加の「手荷物」なしでサーバーヘッダーIDディレクティブのみを利用できます。
mod_securityは素晴らしいですが、目標を達成するために本当に必要なわけではありません。
すべてのmodがhttpd.conf
に含まれた後、選択したヘッダーの設定を解除できます。
Header unset Server
ServerSignature Off
ServerTokens Prod
http://httpd.Apache.org/docs/2.4/mod/core.html#serversignature
まだ見ている人のためにこれを更新するだけです。 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をインストールしました。幸運を祈ります。今後の読者の皆さんのお役に立てれば幸いです。
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
。
。