Nextcloud では、インストールディレクトリ内のいくつかのシステムファイルが Web経由でアクセス可能となっていることがあります。今回は、これらのファイルの必要性とセキュリティ対策について整理してみました。
一例として次のようなファイルがWeb経由でアクセス可能になっています:
status.php
: システム状態監視用のエンドポイントcomposer.json
,composer.lock
: PHP依存関係定義ファイルpackage.json
: JavaScript依存関係定義ファイル
1.status.php
status.php は、公開アクセスできるように設計されており、アプリケーションサーバが稼働しているかどうかを確認するために必要な機能です。デスクトップクライアントなどからもアクセスが行われます。
アクセスをブロックすると、監視機能が動作しなくなる可能性がありますので、基本的に公開が推奨されます。
2.依存関係管理ファイル(composer.json等)
これらのファイルは、phpとJavaScriptパッケージの要件とバージョンを定義する依存関係管理ファイルです。機密情報は含まれていませんが、アクセスをブロックすることが可能です。
ただし、Nextcloud の機能ではファイルを非公開化することができないため、Webサーバの設定にてアクセスをブロックする必要があります。
以下は、WEBサーバに Nginx を使用している場合の制限方法の一例です。
依存関係管理ファイルをブロックする場合には、次の location 設定を追加します。
# Block access to dependency files
location ~ ^/(composer\.(json|lock)|package\.json)$ {
deny all;
return 404;
}
以上、現場よりお届けいたしました。