Nextcloudセキュリティ対策

Nextcloudをインストールした後、管理画面の「セキュリティ&セットアップ警告」にて、警告やら注意やらアドバイスやらが出ていたので全て対応してみた。

data/ ディレクトリ

クラウドに共有されるファイルが保存されるディレクトリだが、デフォルトでもdata/ディレクトリの中身は見えないのだがアクセス自体は可能なので重大な問題として警告があがる。

ということで、Apache側の apache2.conf に設定を追加して dataディレクトリを「Require all denied」とした。これにより、リダイレクトされるようになり、エラーは消えた。

HTTPヘッダ

さらに、「 “Strict-Transport-Security” HTTPヘッダが最低でも “15552000” 秒に設定されていません。 」と注意がでたのでマニュアルを見ながら修正。virtualhostの設定に以下の<IfModule mod_headers.c>から</IfModule>までを追加。

<VirtualHost *:443>
  ServerName cloud.nextcloud.com
    <IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
    </IfModule>
 </VirtualHost>

以下のサイトを参考にした。

https://docs.nextcloud.com/server/17/admin_manual/installation/harden_server.html

/.well-known/caldav

さらにさらに、「 Webサーバーは適切にホスト名 “/.well-known/caldav” が引けるように設定されていません。 」、「 Webサーバーは適切にホスト名 “/.well-known/carddav” が引けるように設定されていません。 」と出たので、以下を参考に修正(多分バグ???)。

https://help.nextcloud.com/t/solved-well-known-caldav-check-in-13-0-7-explained/38957

上記の解決策で結論付けられている内容を /etc/apache2/apache2.confに記入する。

メモリキャッシュ

さらにさらにさらに、「 メモリキャッシュが設定されていません。 」とでた。こちらは対応しなくてもよさそうだが、アドバイスに素直に従い設定。

以下のサイトのAPCuの部分を参考とした。

https://docs.nextcloud.com/server/15/admin_manual/configuration_server/caching_configuration.html

なお、「 /etc/php/7.2/fpm/php.ini 」に追加する「apc.enable_cli = 1」は[opcache]の直下に追加した。

因みに、以下のサイトは若干だけ参考にした。

Ubuntu 18.04 に Nextcloud をインストール

これで全ての警告等が消えたので、セキュリティとしては問題ないということだろう。あとは、各ディレクトリのパーミッションを念のため見直しておく程度か。