Apache の Server情報の隠蔽
2008年11月現在の私の Linux マシンのバージョンです。
OS : CentOS 5.2 (Kernel 2-6-18-92.1.18.el5 on an i686)
ブラウザで検索をかけたページがないときなど、404のエラーページが表示される事があります。
上の画像では、Apacheのバージョンなどの情報が表示されてしまっていますが、これはセキュリティ上好ましい事ではありません。この情報は管理者としては、本来見せてはならないものだと私は思っています。
そこで、このバージョン情報などを隠してしまおうと思います。
これらの操作は root ユーザでの作業となります。
ServerSignature
編集するファイルは Apache の設定ファイルである httpd.conf です。
CentOS5.2 では /etc/httpd/conf/ にありますので、そこまで cd コマンドで移動します。
以下のように入力し、Enter キーを押します。
# cd /etc/httpd/conf/
中にある httpd.conf を less コマンドで開きます。
以下のように入力してEnter キーを押します。
# less httpd.conf
すると以下のようにファイルが開かれます。
開かれた httpd.conf の中で ServerSignature と書かれた箇所をページ内検索します。
カーソルは多分、端末の一番下にあると思いますので、そのままキーボードを半角英数字モードで、スラッシュ( / )を入力し、その後へ ServerSignature の ServerSig (ちょっとでも横着をしたい・・・)までを入力し、Enter キーを押します。
この時に最初に入力するスラッシュ( / )は上から下への検索コマンドで、下から上への検索コマンドは クエスチョンマーク( ? )になります。検索文字列を次へ移動するときには、"次" と云う言葉である next のエヌ( n )のキーを叩きます。
見つかった検索文字列は黒く反転して表示されます。
ここで less から vi の編集モードに入ります。編集モードの入り方は「 v 」キーを押し、「 i 」キーを押すことで insert モードになります。すると画面の一番下に「-- INSERT --」が表示されますので、編集する文字まで矢印キーで移動してください。httpd.conf の254行目あたりにあるこの文字列をシャープ( # )でコメントアウトしておいてその下へ以下のように記述します。
ServerSignature Off
私は変更点を明らかにするためにシャープ( # )でコメントアウトした元の文字列をなるべく残すようにしていますが、ここはそれぞれご判断くださいますように。
編集終了後はふたたびエスケープキーを2度ほど叩くと vi のコマンドモードへ移りますので、その後 コロン( : )を打ち、「 w 」「 q 」 と続けて打ち、最後に Enterキーを打てば httpd.confを上書き保存をします。
保存できたら「 q 」コマンドで less を終了し、ひとまず httpd -t で httpd.conf の文法をチェックしてください。
# httpd -t
文法エラーが出ないことを確かめたら、設定を反映させるために Apache を再起動します。
具体的にはコマンドラインから以下のように入力して Enter キーを押します。
# service httpd restart
再起動が無事に済みましたら、ブラウザでわざとありもしないアドレスを入力して、Apacheがどのようなエラーメッセージを返すかを確認してみます。
バージョン情報が表示されなくなりました。
CentOS5.2 では /etc/httpd/conf/ にありますので、そこまで cd コマンドで移動します。
以下のように入力し、Enter キーを押します。
# cd /etc/httpd/conf/
中にある httpd.conf を less コマンドで開きます。
以下のように入力してEnter キーを押します。
# less httpd.conf
すると以下のようにファイルが開かれます。
開かれた httpd.conf の中で ServerSignature と書かれた箇所をページ内検索します。
カーソルは多分、端末の一番下にあると思いますので、そのままキーボードを半角英数字モードで、スラッシュ( / )を入力し、その後へ ServerSignature の ServerSig (ちょっとでも横着をしたい・・・)までを入力し、Enter キーを押します。
この時に最初に入力するスラッシュ( / )は上から下への検索コマンドで、下から上への検索コマンドは クエスチョンマーク( ? )になります。検索文字列を次へ移動するときには、"次" と云う言葉である next のエヌ( n )のキーを叩きます。
見つかった検索文字列は黒く反転して表示されます。
ここで less から vi の編集モードに入ります。編集モードの入り方は「 v 」キーを押し、「 i 」キーを押すことで insert モードになります。すると画面の一番下に「-- INSERT --」が表示されますので、編集する文字まで矢印キーで移動してください。httpd.conf の254行目あたりにあるこの文字列をシャープ( # )でコメントアウトしておいてその下へ以下のように記述します。
ServerSignature Off
私は変更点を明らかにするためにシャープ( # )でコメントアウトした元の文字列をなるべく残すようにしていますが、ここはそれぞれご判断くださいますように。
編集終了後はふたたびエスケープキーを2度ほど叩くと vi のコマンドモードへ移りますので、その後 コロン( : )を打ち、「 w 」「 q 」 と続けて打ち、最後に Enterキーを打てば httpd.confを上書き保存をします。
保存できたら「 q 」コマンドで less を終了し、ひとまず httpd -t で httpd.conf の文法をチェックしてください。
# httpd -t
文法エラーが出ないことを確かめたら、設定を反映させるために Apache を再起動します。
具体的にはコマンドラインから以下のように入力して Enter キーを押します。
# service httpd restart
再起動が無事に済みましたら、ブラウザでわざとありもしないアドレスを入力して、Apacheがどのようなエラーメッセージを返すかを確認してみます。
バージョン情報が表示されなくなりました。
ServerTokens
上記で設定してきたのは、Apacheのバージョンを隠す方法でしたが、Apacheはこの他にも、 PHPなどの情報も返してしまったりします。これらはレスポンスヘダーのServer情報であり、管理者としては、最低限これらServerのシステム情報も返さないようにしてしまいたいと思います。
上で設定したのと同じ httpd.conf に ServerTokens OS と記述されている部分がありますので、これを編集する事により、Serverのシステム情報を隠す事ができるようになります。
開かれた httpd.conf の中で ServerTokens OS と書かれた箇所をページ内検索します。
上のバージョン情報の時にページ内検索をしたのと同じように、半角英数字モードで、スラッシュ( / )を入力し、その後へ Server とだけ入力し、Enter キーを押します。
見つかった検索文字列は黒く反転して表示されます。
less から vi で編集するモードへの入り方は覚えていますよね?
では、httpd.conf の44行目あたりにあるこの元の文字列をシャープ( # )でコメントアウトしておいてその下へ以下のように記述してください。
ServerTokens ProductOnly
後はさっきやったように httpd.conf を上書き保存し、編集した情報を反映させるために Apache を再起動させます。
以上で、Apacheのバージョン情報及びServerのシステム情報を隠す方法の設定は終了です。
なお、以下は補足となりますが、less から vi を使うのはちょっと敷居が高いと思う方は、X画面から gedit か、 kedit を起動して httpd.conf を編集するといいかもしれません。
gedit も kedit も、 window のメモ帳のような感覚で使えるグラフィカルエディタですので、どなたにもわかりやすいと思います。
上で設定したのと同じ httpd.conf に ServerTokens OS と記述されている部分がありますので、これを編集する事により、Serverのシステム情報を隠す事ができるようになります。
開かれた httpd.conf の中で ServerTokens OS と書かれた箇所をページ内検索します。
上のバージョン情報の時にページ内検索をしたのと同じように、半角英数字モードで、スラッシュ( / )を入力し、その後へ Server とだけ入力し、Enter キーを押します。
見つかった検索文字列は黒く反転して表示されます。
less から vi で編集するモードへの入り方は覚えていますよね?
では、httpd.conf の44行目あたりにあるこの元の文字列をシャープ( # )でコメントアウトしておいてその下へ以下のように記述してください。
ServerTokens ProductOnly
後はさっきやったように httpd.conf を上書き保存し、編集した情報を反映させるために Apache を再起動させます。
以上で、Apacheのバージョン情報及びServerのシステム情報を隠す方法の設定は終了です。
なお、以下は補足となりますが、less から vi を使うのはちょっと敷居が高いと思う方は、X画面から gedit か、 kedit を起動して httpd.conf を編集するといいかもしれません。
gedit も kedit も、 window のメモ帳のような感覚で使えるグラフィカルエディタですので、どなたにもわかりやすいと思います。