VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

VPS(レンタル)サーバー上のApache初期設定確認

VPSサーバーのApacheの初期設定状態を確認し、セキュリティ的に問題のある設定項目は修正します。
管理人の環境は、”お名前.com”のVPSサーバーでCentOS6.2です。

設定ファイルの保存場所の確認


 
(実行例)
# rpm -qc httpd
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/logrotate.d/httpd
/etc/sysconfig/httpd
/var/www/error/HTTP_BAD_GATEWAY.html.var


 
たくさん表示されましたが、Apacheの本体の設定ファイル名は”httpd.conf”ですので、”/etc/httpd/conf/httpd.conf”が設定ファイルの保存場所になります。
 

追加の設定ファイルの確認


 
“/etc/httpd/conf/httpd.conf”のなかに、下記設定がされている場合は、”/etc/httpd/conf.d/”ディレクトリに内にある”.conf”がつく名前のファイルも設定ファイルとして読み込まれます。
 
Include conf.d/*.conf
 
PHPなどをインストールすると、自動でこのディレクトリ内にApacheに対するPHPの設定ファイルが追加される事があります。
PHPの場合、php.confというファイルが追加されていました。
 
Apacheの動作内容に問題があって調べる際は、httpd.conf内の設定ではなく、こちらのconf.dディレクトリ内にあるファイルに問題がある場合がありますので注意します。
 

セキュリティに問題のある設定を無効にする


 
どのレベルまでセキュリティ的に問題があるかと判断するかは人それぞれ異なるかと思います。
 
管理人は、下記設定を無効または変更しています。
 
1)デフォルトのバナー表示を変更する
 
ServerTokens OS
  ↓
ServerTokens Prod
 
デフォルト設定では、”Server: Apache/2.2.15 (CentOS)”のように、バージョンやOSの名前も表示されてしまうので、”Server: Apache”とプロダクト名だけ表示するようにしました。
 
2)autoindex_moduleを無効にする
 
Webサイトのコンテンツを保持しているディレクトリ内の情報が見られてしまう可能性がありますので無効にしました。
 
下記のモジュールをロードしている箇所と
#LoadModule autoindex_module modules/mod_autoindex.so
上記モジュールが使用している下記設定箇所をコメントアウトしました。
#IndexOptions
#AddIcon
#AddIconByEncoding
#DefaultIcon
#ReadmeName
#HeaderName
#IndexIgnore
 
3)TRACEメソッドを無効にする
 
“Trace”メソッドが有効になっていて、外部から情報を搾取されるリスクがあるので無効にしました。下記記述を追加しました。
 
TraceEnable Off
 
4)ユーザーディレクトリの使用を無効
 
サーバー内の各ユーザー内のディレクトリにWebコンテンツを置く事ができるようにする設定ですが、情報漏えいのリスクが高まりますので無効にしました。
 
#LoadModule userdir_module modules/mod_userdir.so

#
# UserDir public_html
#
 

起動スクリプトの配置場所の確認


 
(実行例)
# rpm -ql httpd | grep init
/etc/rc.d/init.d/httpd
 
Apacheの再起動
 
(実行例)
# /etc/rc.d/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
モバイルバージョンを終了