Apache httpd“ Server:” HTTPヘッダーを変更します


33

Apachehttpdが応答データとともに送信する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はなく、「サーバー:」ヘッダがまだ表示されます。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が運ぶ荷物の残りのすべてを望んでいません。

更新:

あなたが得ればmod_securityインストールし、あなただけのいくつかのディレクティブが必要になります。

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

それはのためだmod_security2.7.7


3
confファイルを変更してからapacheを再起動しましたか?また、「httpd.com」というファイルを見たことがありません。通常は「httpd.conf」と呼ばれます。
マイケルオゼルヤンスキー14

@MichaelOzeryansky-スペルミスを見つけてくれてありがとう。httpd.confを変更した後、httpdを停止および開始する「httpd.conf」です。
ブルースエディガー

回答:


12

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

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


これは機能します、ありがとうございます。mod_securityはArch Linuxの通常のパッケージではないことに注意してください。AURにはPKGBUILDがありますが、2011年(2014年4月12日)から更新されておらず、mod_securityの本当に古いバージョンを参照しています。いつものように、ディストリビューションは異なる場合があります。
ブルースエディガー14

25

mod_securityは優れていますが、目標を達成するために実際にそれを必要とするわけではありません。

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

Header unset Server

ServerSignature Off
ServerTokens Prod

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


2
mod_secは完全に非表示にするカスタムテキスト用のApacheそうでない場合は、作業ソリューションが良好であり、シンプルな:)必要とされている
intika

これは、
Centos

1
Apacheの2.4には、構文エラーとして報告されます。無効なコマンド[ヘッダー]、おそらくサーバ構成に含まれていないモジュールによってスペルミスまたは定義された
ラプター

3
@Raptor mod_headersをインストールする必要がありますsudo a2enmod headers
Ortomala Lokni

1
Header unset ServerApache 2.2および2.4では機能しません。応答ヘッダーにはまだ含まれていますServer: Apache
マリス

13

まだ探している人のためにこれを更新するだけです。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の仕様、RFC 2616がTim Berners-Leeによって部分的に作成されたにもかかわらず、Serverタグはオプションであると言っているのは、哲学的な問題です。

Qualysスキャンを満足させるために、Serverタグを「不明」に設定したかったのです。そこで、このDigitalOceanチュートリアルに従って、mod_security(現在libapache2-modsecurityと呼ばれています)をインストールしました。幸運なことに、今後の読者の皆さんの助けになれば幸いです。


1

Oracle HTTP Server 11.1.1.9(Apache 2.2.22上に構築)で、ある程度機能するものをテストしました。

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

ServerTokensなし

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

HTTP / 1.1 200 OK

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

サーバ:

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


2
Centos 6リポジトリのApache 2.2ストックでは、値を「none」に設定すると、Apacheはすべてのデータを出力します。たとえば、「サーバー:Apache / 2.2.15(CentOS)DAV / 2 PHP / 5.3.3 mod_ssl / 2.2.15 OpenSSL / 1.0.1e-fips Phusion_Passenger / 4.0.59 mod_perl / 2.0.4 Perl / v5.10.1」
-jph

同意、あなたが使用することはできませんnone最新のApache上:ServerTokens takes 1 argument: 'Prod(uctOnly)', 'Major', 'Minor', 'Min(imal)', 'OS', or 'Full'
vladkras
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.