■パッケージ管理システム更新制限
※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などのテストモード解除