5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cockpit (CMS) の初期設定の注意点

Posted at

Cockpit (Headless CMS)

フロントエンドはスクラッチで開発したい場合、ヘッドレスCMSを使うことになりますが、小規模なサイトだと Strapi では仕掛けが重すぎたり、リクエストが多いXserverなどのレンタルサーバーへの設置だとPHPで動くものの方が良かったりします

Wordpress をヘッドレスCMSとして利用しても良いのですが、そもそもなぜフロントエンドはスクラッチで開発となったのか考えた時、若干の疑問が生じてきます

弊社では Strapi で実装できない場合や小規模サイトの場合、動作と仕掛けが軽いので、Cockpit (Linuxの管理システムではないコックピット) を採用してます

ただ、そのまま設置するとセキュリティ上の疑念が出てくるため、その初期設定についてここでまとめて公開します(まとめてと言うほどたいそうなことではないですが、備忘録に近いです)

ちなみにいま Cockpit について興味を持たれた方や簡単な使い方は、他の記事を参考にしてください

サイトへの設置

まずは公式サイトの下部からソースコードをダウンロードして、設置するディレクトリで unzip します

次に初期設定ですが、<PATH_TO_COCKPIT>/install にアクセスして、user = adminpassword = admin でログインし、右上にあるハンバーガーの設定メニューからユーザー名・パスワードとその他必要事項を変更して保存します

設置は基本的にはこれだけです...が、この状態だと問題が出てきます

やっておいた方が良いこと

install ディレクトリの消去

Wordpress でも同じですが、インストール関連は消しておいた方が無難です

CLI コマンドのパーミッション設定

Cockpit には tower っていうCLI用の管理コマンドが付属していて、これを上位フォルダに移動すると正常に動かないので、そのままだと外部に晒され続けます(アクセスしてもソースが読まれるだけで動作はしなさそうなので放っておいても良いかもしれませんが、気味が悪いです)

なので、パーミッション設定で所有者のみ実行できるように700で設定しておきます1

$ chmod 0700 tower

bootstrap.phpへのアクセス禁止

bootstrap.php も外部からアクセスできる状態である必要は多分ありませんので、.htaccess でアクセスを禁止しておきます2tower へのアクセスを同じ方法で制限しても良いです)

# Deny access to bootstrap.php
<FilesMatch "^bootstrap\.php$">
    Order Allow,Deny
    Deny from all
</FilesMatch>

Composer用のJSONへのアクセス禁止

さらに、composer.jsonpackage.json も外部から見えてしまう状態になっているので、アクセスできないように、以下のような記述をデフォルトの.htaccess に追加しておきます

# Deny access to JSON files
<FilesMatch "\.json$">
    Order Allow,Deny
    Deny from all
</FilesMatch>

おわり

以上でひとまずの初期設定は完了です、あとはAPI鍵を生成してフロントエンドとつなげてください!

  1. グループの実行を許す場合は750とかアレンジしてください

  2. もしエラーが出た場合は、この設定を疑ってみてください

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?