「NextCloudでWEBストレージサービスを自前で作成する」でNextCloudのDocker環境を構築しましたが、そのままだと設定→概要でセキュリティ警告が表示されています。消せる警告は消していきたいと思います。
信頼できるプロキシーの設定
docker-compose.ymlにTRUSTED_PROXIESとOVERWRITEHOSTを追加します。
services: nextcloud: ... environment: ... - TRUSTED_PROXIES=127.0.0.1 - OVERWRITEHOST=next.code-lab.net - OVERWRITEPROTOCOL=https ...
以下のコマンドを実行して設定を反映します。
sudo docker-compose up -d
「リバースプロキシヘッダーの構成が正しくないか、信頼できるプロキシからNextcloudにアクセスしています。そうでない場合、これはセキュリティに問題があり、攻撃者がNextcloudを表示できるようにIPアドレスを偽装することができます。詳細については、ドキュメント↗をご覧ください。」の警告が消えて居ることを確認して下さい。
Strict-Transport-Securityの設定
リバースプロキシサーバーにはNginxを使用しているので、/etc/nginx/sites-available/next.code-lab.net.confを編集して「add_header Strict-Transport-Security ‘max-age=15552000; includeSubDomains; preload’;」を追加します。
server { ... add_header Strict-Transport-Security 'max-age=15552000; includeSubDomains; preload'; ... }
以下のコマンドを実行して設定を反映します。
sudo service nginx restart
「Strict-Transport-Security “HTTP ヘッダーの秒数が少なくとも”15552000” に設定されていません。セキュリティを強化するには、セキュリティのヒント↗で説明されているようにHSTSを有効にすることをお勧めします。」 の警告が消えて居ることを確認して下さい。
default_phone_regionの設定
./html/config/config.phpを編集してdefault_phone_regionを追加します。残念ながらDockerの環境変数から指定する事はできないようです。
<?php $CONFIG = array ( ... 'default_phone_region' => 'JP', ... );
以下のコマンドを実行して設定を反映します。
sudo docker-compose restart
「ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、国コードなしでプロファイル設定の電話番号を検証するために必要です。国コードなしで番号を許可するには、地域のそれぞれの ISO3166-1コード↗とともに “default_phone_region” を設定ファイルに追加してください。」 の警告が消えて居ることを確認して下さい。
DBにインデックスを作成する
以下のコマンドを実行します。
$ sudo docker-compose exec --user www-data nextcloud php occ db:add-missing-indices Check indices of the share table. Check indices of the filecache table. Adding additional size index to the filecache table, this can take some time... Filecache table updated successfully. Adding additional path index to the filecache table, this can take some time... Filecache table updated successfully. Check indices of the twofactor_providers table. Check indices of the login_flow_v2 table. Check indices of the whats_new table. Check indices of the cards table. Check indices of the cards_properties table. Check indices of the calendarobjects_props table. Check indices of the schedulingobjects table. Check indices of the oc_properties table.
「データベースにいくつかのインデックスがありません。~」 の警告が消えて居ることを確認して下さい。
「php-imagickモジュールはSVGをサポートしていません。」の警告が残っています。Dockerイメージを更新すれば良さそうですが、メリットが薄そうなのでこの警告は容認する事とします。