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 ] 関連記事の目次
-
インストール、設定全般、運用
- Apacheのインストール
- Apache初期設定確認
- Apacheの静的、DSOモジュールの確認、インストール方法
- Apacheでconf.dディレクトリ内の設定ファイルのインクルードに注意
- Apacheのhttpdサービスの使用方法
- WordPressパーマリンク設定時のApache設定
- Apache mod_rewriteの仕組み、設定方法、動作確認
- Apacheで特定の拡張子を含むリクエストをログ対象から外す
- CentOS Stream9でApache、PHPを設定する際の注意点
- ApacheのTraceメソッドを無効にする
- ヘッダーにApacheバージョンが表示されないようにする
- PHPのバージョン情報とApacheの設定
- Apacheでディレクトリ内一覧表示を無効にする
- Apacheで不要なモジュールはロードしない
- Apacheで不要なモジュールはロードしない(1)ベーシック認証と認証プロバイダ
- Apacheで不要なモジュールはロードしない(2)ダイジェスト認証
- Apacheで不要なモジュールはロードしない(3)mod_rewrite、LDAP、WebDAV
- Apacheで不要なモジュールはロードしない(4)Server Side Includes
- Apacheで不要なモジュールはロードしない(5)mod_mime_magic
- Apacheで不要なモジュールはロードしない(6)mod_info、mod_status
- Apacheで不要なモジュールはロードしない(7)mod_speling、mod_userdir
- Apacheで不要なモジュールはロードしない(8)プロキシ関連のモジュール
- Apacheで不要なモジュールはロードしない(9)キャッシュ関連のモジュール
- Apacheで不要なモジュールはロードしない(10)CGI関連のモジュール
- Apacheで不要なモジュールはロードしない(11)フィルター、expires、圧縮のモジュール
- Apacheでディレクトリへのアクセスを制限する設定方法
- Apacheベーシック認証の設定手順とセキュリティ上の注意
- Apacheで使用できるHTTPメソッドを制限する
- FIPS140-2とApacheのmod_nss
- Apacheにおける自己証明書作成手順
- ApacheにおけるSSL証明書インストール手順
- DoS攻撃からWebサーバーを保護するApacheモジュール
- Apacheに関するLinux側のセキュリティ設定(パーミッション、iptables、chroot)
- Modsecurityの概要と特徴
- Modsecurityのインストール方法
- modsecurityの設定方法と設定例
- Apacheのパフォーマンスに影響を与えるOS、ハードウェアの要素、注意点
- ApacheのMPMの概要とチューニング
- ApacheのMaxClientsのチューニングとListenBacklog
- HostnameLookupsを有効にして名前解決を行う場合のApacheパフォーマンスに与える影響
- FollowSymLinks、SymLinksIfOwnerMatchの設定とApacheのパフォーマンス
- AllowOverrideの設定とApacheのパフォーマンス
- コンテントネゴシエーションの設定とApacheのパフォーマンス
- Apacheのプロセス生成とパフォーマンスに与える影響
セキュリティ
パフォーマンス