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

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

チェックリスト

OS(CentOS7)をインストールした直後に設定するセキュリティ対策のToDoリスト。(主に「さくらのVPS」。Apache の設定がメインですが VPS 設定マニュアル必読)


  • アップデート(yum update, WordPress, plug-inなど)
    • yum --enablerepo=remi,remi-php56 update -y && reboot (KUSANAGIの場合)
  • rootのパスワードを他のユーザと同じにしない(passwd, mkpasswd -l 12)
  • rootになれるユーザの作成と限定(useradd, wheel)
  • .sshディレクトリのパーミッション(chmod 0700)
  • ssh接続ユーザの公開鍵のアップロード(~/.ssh/authorized_keys)
  • authoried_keysファイルのパーミッション(chmod 0600)
  • /etc/ssh/sshd_config
    • パスワード認証によるsshの接続を禁止(PasswordAuthentication)
    • rootのssh接続を無効にする(PermitRootLogin)
    • ssh接続するユーザーを限定(AllowUsers)
    • sshポート番号の変更(Port)
      • /usr/lib/firewalld/services/ssh.xml
        ポート変更箇所は2箇所あるので、これ(ssh.xml)も忘れずに。
        yum update をすると ssh.xml のポートがデフォルトに戻ることがあるので注意!アップデート後 SSH 接続できなくなります。
  • ssh接続元をIP・ホスト名で限定(hosts.allow,hosts.deny)
  • logを監視しやすい体制を整える(Logwatch)
  • 接続失敗を繰り返すIPをブロックする(denyhosts)
  • 不要なポートを閉じる(firewalld)
  • 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)
    • セキュリティチェック https://observatory.mozilla.org/
  • その他(やった方がいいが諸事情でペンディングにしているもの)
    • HTTP応答ヘッダー
      • HPKP(PIN)を設定する(HTTP Public Key Pinning)
      • Referrer-Policyを設定する
    • IDS(ファイル改ざん検知ツール)を入れる(AIDE)
    • ウィルス検知ツールを入れる(Sophos AV,Clam AV)


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

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

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

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