パッケージ管理システム更新制限
※yum-cronでパッケージ自動更新を行う際、
無条件にすべてをアップデートすると、環境が変わって正しくプログラムが動作しなくなることがある。
その対策に、サーバ構築完了後に以下の設定を行う。
※yum install php-xml など、追加インストールなども行えなくなるので注意。
(専用のオプションを使うか、一時的な解除が必要。)
※自動更新については以下も注意。
「Apache1 → Apache2」「PHP5 → PHP7」のような大きな更新はされない。
カーネルが更新された場合、OSを再起動しないと変更が反映されない。
Webサーバなどデーモンとして動作しているものが更新された場合、デーモンの再起動を推奨。
ライブラリなど、OSやデーモンから参照されているものが更新された場合、OSもしくはデーモンの再起動を推奨。
$ yum -y update … 一旦インストール済パッケージの一括アップデートを行う場合。
$ vi /etc/yum.conf … yumの設定ファイルを編集。
使用しているプログラミング言語やデータベースが他にもあれば、それも追加しておくといい。
例えばRubyを使用している場合「ruby*」も、PostgreSQLを使用している場合「postgresql*」も追加する。
[main]
exclude=gcc* glibc* kde* openssh* kernel* httpd* php* mysql* … [main]部分に除外対象を追加。
$ 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の設定ファイルを編集。
※expose_phpもOffにしておくと良さそう。
エラーを専用ファイルに記録する場合、ログローテートの設定も行う。
ファイルアップロードサイズの上限が大丈夫かも確認する。
※要検証。
参考:【logrotate】PHP エラーログでローテーションを!【できました!】
http://oki2a24.com/2013/03/19/set-logrotate-php-error-log/
PHPのエラーログが肥大してPHPが動かなくなった話
http://zapanet.info/blog/item/2489
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を再起動。
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などのテストモード解除。