Memo

メモ > サーバ > 構築: 本稼働前設定

パッケージ管理システム更新制限
※yum-cronでパッケージ自動更新を行う際、 無条件にすべてをアップデートすると、環境が変わって正しくプログラムが動作しなくなることがある。 その対策に、サーバ構築完了後に以下の設定を行う。 ※yum install php-xml など、追加インストールなども行えなくなるので注意。 (専用のオプションを使うか、一時的な解除が必要。) ※自動更新については以下も注意。 「Apache1 → Apache2」「PHP5 → PHP7」のような大きな更新はされない。 カーネルが更新された場合、OSを再起動しないと変更が反映されない。 Webサーバなどデーモンとして動作しているものが更新された場合、デーモンの再起動を推奨。 ライブラリなど、OSやデーモンから参照されているものが更新された場合、OSもしくはデーモンの再起動を推奨。
$ yum -y update … 一旦インストール済パッケージの一括アップデートを行う場合。 $ vi /etc/yum.conf … yumの設定ファイルを編集。
[main] exclude=gcc* glibc* kde* openssh* kernel* httpd* php* mysql* … [main]部分に除外対象を追加。
使用しているプログラミング言語やデータベースが他にもあれば、それも追加しておくといい。 例えばRubyを使用している場合「ruby*」も、PostgreSQLを使用している場合「postgresql*」も追加する。
$ service yum-cron restart … パッケージ自動更新再起動。
yum を使って システムアップデートを行う (自動化も) http://server-setting.info/centos/firststep.html
$ yum -y update --disableexcludes=all … excludeの設定を無視して一括更新する場合。
参考:【Linux】 yumのexclude設定の挙動に振り回された話 http://blog.hylogics.com/entry/yum_disableexcludes
PHP設定調整
※要検証。
# vi /etc/php.ini … phpの設定ファイルを編集。
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED … エラーの通知内容を調整。 display_errors = Off … エラーを画面に表示しない。 display_startup_errors = Off … PHP起動時のエラーを画面に表示しない。 log_errors = On … エラーをファイルに記録する。 error_log = "/var/log/php_error_log" … エラーの記録場所を指定。
# service httpd restart … httpdを再起動。
※expose_phpもOffにしておくと良さそう。 エラーを専用ファイルに記録する場合、ログローテートの設定も行う。 ファイルアップロードサイズの上限が大丈夫かも確認する。 ※要検証。 参考:【logrotate】PHP エラーログでローテーションを!【できました!】 http://oki2a24.com/2013/03/19/set-logrotate-php-error-log/ PHPのエラーログが肥大してPHPが動かなくなった話 http://zapanet.info/blog/item/2489
Apache設定調整
ロボットのアクセスを許可するか否か考える。 AWSの場合、ロボットのアクセスで維持費が大きく変わることもある。 (とは言え、一般的なロボットは弾くべきではない。) 不正アクセス対策に、HTTPヘッダも設定しておく。 商用環境で設定しておきたいセキュリティ関連 HTTP ヘッダまとめ - A Memorandum http://etc9.hatenablog.com/entry/2018/01/18/215626 ApacheでPHPを使用する場合の.htaccess - Qiita https://qiita.com/refirio/items/a1d5f2675bb853bba23f
サーバ再起動
緊急でサーバを再起動した時、何らかの問題が発生しないかの確認のために、サーバの再起動を行っておく。 (サービス自動起動の設定を忘れていた、など。) その後、ひととおり動作確認を行う。
緊急対応手段確認
コントロールパネルから直接rootログインできるなど、緊急対策手段が用意されていることがある。(さくらVPSなど。) いざというときすぐに使えるように、動作を確認しておく。
テスト
本格稼働前のテストについては、Test.txt や Tuning.txt についても参考にする。
AWS
【10分で確認】AWSでやりがちなセキュリティ脆弱性を生み出すアンチパターン集(随時追加・更新) - Qiita https://qiita.com/WebEngrChild/items/7a91783c9172fadf3533
その他確認事項
リリース前に、以下などについて確認する。 ・マシンスペックアップ。 ・可用性向上施策。(AWSでのマルチAZなど。) ・マシンイメージ作成。(AWSでのAMIなど。) ・サーバ再起動。(各種サービスの自動起動の設定忘れが無いか、監視が反応するか、などの確認を兼ねて。) ・メール到達。(SPFやKDIMなど。) ・SSL設定。 ・ログの保存期間。(プロバイダ責任制限法での情報開示に応じられるように、3ヶ月以上ログを保存しておく。) ・ウイルス対策。(ソフトの導入など。) ・コンテンツバックアップの仕組み。 ・データベースバックアップの仕組み。 ・Zabbixによる監視。 ・CloudWatchによる監視。(AWSの場合。) ・CloudWatchLogsによるログ保存。(AWSの場合。) ・Basic認証の解除。 ・決済やAPIなどのテストモード解除。

Advertisement