end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

apache 2.2.22のHTTP TRACEメソッドをOFFる

はじめに - HTTP TRACEメソッドによる影響

って、次のurlが分かりやすいです。
http://d.hatena.ne.jp/masudaK/20110225/1298636093

「実はそんなに怖くないTRACEメソッド 」とおっしゃっる方もいますが、私の場合、念の為、TRACEメソッドは禁止する派です。
http://blog.tokumaru.org/2013/01/TRACE-method-is-not-so-dangerous-in-fact.html

2.2系なら、デフォルトOFFでしょ

と思い、telnetコマンドで確認したら、なんと有効でした。

$ telnet localhost 8081
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

OPTIONS / HTTP/1.0

HTTP/1.1 200 OK
Date: Wed, 27 Nov 2013 01:56:24 GMT
Server: Apache/2.2.22 (Unix) mod_perl/2.0.5 Perl/v5.10.1
Allow: GET,HEAD,POST,OPTIONS,TRACE  ★ココ
Content-Length: 0
Connection: close
Content-Type: text/html

Connection closed by foreign host.

手元にあるapacheはver.2.2.22 で、これをport:8081で動かしています。

httpd.confを編集して、HTTP TRACEメソッドを無効化

httpd.confに次の1行を追加し、apacheを再起動するだけでOK

TraceEnable Off

で、次のように無効化できました。

$ telnet localhost 8081
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

OPTIONS / HTTP/1.0

HTTP/1.1 200 OK
Date: Wed, 27 Nov 2013 01:58:05 GMT
Server: Apache/2.2.22 (Unix) mod_perl/2.0.5 Perl/v5.10.1
Allow: GET,HEAD,POST,OPTIONS  ★ココ
Content-Length: 0
Connection: close
Content-Type: text/html

Connection closed by foreign host.

古いapacheでは、mod_rewriteを使って無効化するようですが、古いapacheであれば、他のセキュリティホールが残っているかと思うので、最新verにした方がよいかと