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>

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

Hardening and security guidance — Nextcloud latest Administration Manual latest documentationNextcloud aims to ship with secure defaults that do not need to get modified byadministrators. However, in some cases some additional security hardening can beapplied in scenarios were the administrator has complete control overthe Nextcloud instance. This page assumes that you run Nextcloud Server on Apache2in a Linux environment.
 docs.nextcloud.com
Hardening and security guidance — Nextcloud latest Administration Manual latest documentation

/.well-known/caldav

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

[solved] .well-known/caldav check in 13.0.7 explainedHi! I still don’t quite understand what’s wrong with my setup, if I get a _* Your web server is not properly set up to resolve “/.well-known/caldav”. _ * Your web server is not properly set up to resolve “/.well-known/carddav”. message after update to 13.0.7. My https://cloud.example.com/.well-known/caldav & carddav links forward me to https://cloud.example.com/remote.php/dav just fine, DAV clients works fine. I don’t see any issues after an upgrade except these warnings. I did tried to add ...
[solved] .well-known/caldav check in 13.0.7 explained help.nextcloud.com
[solved] .well-known/caldav check in 13.0.7 explained

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

メモリキャッシュ

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

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

Memory caching — Nextcloud 15 Administration Manual 15 documentationYou can significantly improve your Nextcloud server performance with memorycaching, where frequently-requested objects are stored in memory for fasterretrieval. There are two types of caches to use: a PHP opcode cache, which iscommonly called opcache, and data caching for your Web server. If you do notinstall and enable a local memcache you will see a warning on your Nextcloudadmin page. A memcache is not required and you may safely ignore the warningif you prefer.
 docs.nextcloud.com
Memory caching — Nextcloud 15 Administration Manual 15 documentation

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

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

Ubuntu 18.04 に Nextcloud をインストール | 雑廉堂の雑記帳雑廉堂の雑記帳
Ubuntu 18.04 に Nextcloud をインストール | 雑廉堂の雑記帳 www.rough-and-cheap.jp
Ubuntu 18.04 に Nextcloud をインストール | 雑廉堂の雑記帳

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