2010年4月19日月曜日

Apacheのヘッダ情報を隠す

スズキです。

CentOSで"yum"よりApacheとPHPをインストールして、
その状態で、下記のようにヘッダ情報を確認すると、
ApacheのバージョンやPHPのバージョンがわかってしまいます。

# telnet localhost 80
--------
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
HEAD / HTTP/1.1
Host: suz-lab.com

HTTP/1.1 200 OK
Date: Mon, 19 Apr 2010 09:54:34 GMT
Server: Apache/2.2.15 (Unix)
X-Powered-By: PHP/5.3.2
Connection: close
Content-Type: text/html; charset=UTF-8

Connection closed by foreign host.
--------

ということで、まずは、Apacheのバージョン情報を隠します。
これは、"httpd.conf"にて、"ServerTokens ProductOnly"を設定すれば、
OKです。

ついでに、"ServerSignature Off"も設定して、エラー画面などにも、
その手の情報が出ないようにしておきます。

次にPHPのバージョンに関してですが、こちらは"php.ini"に
"expose_php = Off"と設定することにより、実現できます。

この状態で、再度、ヘッダ情報を確認すると、
以下のように、情報が隠されたことが確認できます。

# telnet localhost 80
--------
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.

HEAD / HTTP/1.1
Host: suz-lab.com

HTTP/1.1 200 OK
Date: Mon, 19 Apr 2010 10:06:51 GMT
Server: Apache
Connection: close
Content-Type: text/html; charset=UTF-8

Connection closed by foreign host.
--------

この辺のノウハウは、Puppetですぐに利用できる形で管理していきたいなー...

--------
http://www.suz-lab.com

0 コメント: