セキュリティを気にしたApacheの設定(バージョン非表示)
Apacheで少なくても気にしてほしいセキュリティ対策につきまして記載いたします。
ヘッダー情報やエラーページ情報からApacheやphpのバージョン等が特定されてしまい、そのバージョンのセキュリティホールをついた攻撃を受ける可能性があります。そのバージョン情報を第三者から特定できないように対策して下さい。
まず現状のサーバ情報をコマンドから確認を行います。
> telnet (サーバホスト名) 80
HEAD / HTTP/1.0[Enter] HTTP/1.1 200 OK
Date: Sun, 13 Jul 2008 07:39:25 GMT
Server: Apache/2.0.59
X-Powered-By: PHP/4.4.8
Connection: close
Content-Type: text/html; charset=Shift_JIS
※[Enter]はエンターキーを押すことです。
上記はApacheのバージョン、PHPのバージョンが表示されています。そこで上記のバージョン情報を消すためには以下の設定を行います。
php.iniファイル(phpの設定ファイル)の設定を以下のように変更します。
expose_php=On → expose_php=Off
httpd.confファイル(Apacheの設定ファイル)の設定を以下のように変更します。
ServerTokens OS → ServerTokens ProductOnly
またエラーページが表示されるとApacheのバージョンが表示されてしまうので以下のように追加します。
ServerSignature Off
以上でApacheを再起動して再度telnetコマンドで確認を行ってください。以下のようにApache,phpのバージョン情報は表示されなくなりました。
> telnet (サーバホスト名) 80
HEAD / HTTP/1.0[Enter] HTTP/1.1 200 OK
Date: Sun, 13 Jul 2008 07:39:25 GMT
Server: Apache
Connection: close
Content-Type: text/html; charset=Shift_JIS

