さくらのVPS
さくらVPS
セキュリティ
centos7
チェックリスト

CentOS7 セキュリティ対策チェックリスト @ さくらのVPS

チェックリスト

OS(CentOS7)をインストールした直後に設定するセキュリティ対策の ToDo リスト。

インラインコードや括弧内はキーワードで、各々に可能な限り関連リンクを張っています。

また、主に Apache の設定がメインであるものの、さくらの VPS ユーザーは『VPS 設定マニュアル』は必読だと思います。


  • アップデート(yum update, WordPress, plug-inなど)

    • yum --enablerepo=remi,remi-php56 update -y && reboot (KUSANAGIの場合)
  • root のパスワードを他のユーザと同じにしない

  • root になれるユーザの作成と限定

  • .ssh ディレクトリのパーミッション

  • SSH 接続ユーザの公開鍵のアップロード

  • authorized_keys ファイルのパーミッション変更

  • /etc/ssh/sshd_config の編集

    ランダムな空きポートの取得ワンライナー
    (netstat --listening --all --tcp --numeric | sed '1,2d; s/[^[:space:]]*[[:space:]]*[^[:space:]]*[[:space:]]*[^[:space:]]*[[:space:]]*[^[:space:]]*:\([0-9]*\)[[:space:]]*.*/\1/g'| sort -n | uniq; seq 1 $PORT_NUM_MIN; seq 1 $PORT_NUM_MAX ) | sort -n | uniq -u | shuf -n 1
    
  • log を監視しやすい体制を整える

  • 接続失敗を繰り返す IP をブロックする

  • 不要なポートを閉じる

  • Web サーバ(主に nginx)

    • http 接続を https に転送させる(/etc/nginx/conf.d/*_http.conf
    • Let's Encrypt/SSLの更新(有効期限確認)
    • HTTP応答ヘッダー
      • OS のバージョン情報を含めない(server_tokens
      • SSL 用に HSTS を含める設定(Strict-Transport-Security)
      • CSP を含める設定(Content-Security-Policy
      • X-Frame-Option を SAMEORIGIN に設定にする(iframe での利用拒否、DENY が理想)
      • ファイルの種類をファイルの内容から決定させない(X-Content-Type-Options
      • ダウンロードしたファイルを自動で開かせない(X-Download-Options
    • SSL の conf に SSLv2, SSLv3 が含まれていないか確認(ssl_protocols
    • デフォルトの Welcome ページを変更する
    • DocumentRoot 以下の各ディレクトリ直下に index.html を設置する(ない場合)
  • Wordpress の設定

    • DB の接頭辞を "WP_" 以外にする
    • ソース内のWordpressバージョンを非表示にする(remove_action,generator
    • 重要ファイルはWEBアクセス圏外のディレクトリに移動する(wp-config
    • ファイル・ディレクトリの所有者の確認(wp-config.php,0600
    • ファイル・ディレクトリのアクセス権の確認(0700
    • 管理者向けディレクトリはベーシック認証もかける(.htaccess, 0600, wp-admin
    • Wordpress セキュリティ 対策 を Qiita に絞って検索 @ Google
  • セキュリティチェック

  • その他(やった方がいいが諸事情でペンディングにしているもの)

    • HTTP 応答ヘッダー
      • HPKP(PIN)を設定する(HTTP Public Key Pinning
      • Referrer-Policy を設定する
    • IDS(ファイル改ざん検知ツール)を入れる(AIDE
    • ウィルス検知ツールを入れる(Sophos AV, Clam AV


最近、バニラ状態からの検証のために OS を入れ直すことが多いのですが、毎回設定している項目の私的チェック・リストです。VPS だと簡単に入れ直すことが出来て便利ですね。

毎回行うことなので、作業効率的にはスクリプトで設定した方がいいかもしれません。しかし、私は絶対忘れる+最低限のセキュリティ設定は体で覚えたいなと思って毎回ゴリゴリ設定しています。

基本的に自分用(メモを見てあっ!と思い出せるもの)なので詳しい内容は記載していませんが、せっかくなので Qiita でシェアします。

「これ忘れとるよー」とお気付きの点や、おすすめの項目などありましたらコメントいただけるとありがたいです。