Nextcloud管理画面で以下のような警告が表示されていたので、いろいろ対応。
その作業メモです。
- The PHP memory limit is below the recommended value of 512MB
- The "..." is not set to "..." This is a potential security or privacy risk,
- Your web server is not properly set up to resolve "..."
- Your installation has no default phone region set.
- Your PHP does not have FreeType support,
- This instance is missing some recommended PHP modules.
- おまけ - X-Powered-Byを削除 -
- 動作確認
- 終わりに
The PHP memory limit is below the recommended value of 512MB
これは簡単。
php-fpm設定ファイルで以下の通りphp_admin_value[memory_limit]を指定するだけ。
自分の場合はphp-fpm起動インスタンス数を併せて減らしました。
-pm.max_children = 50 -pm.start_servers = 20 -pm.min_spare_servers = 20 -pm.max_spare_servers = 40 +pm.max_children = 15 +pm.start_servers = 5 +pm.min_spare_servers = 5 +pm.max_spare_servers = 10 +php_admin_value[memory_limit] = 512M
githubのコミット貼り付けておきます。
The “…” is not set to “…” This is a potential security or privacy risk,
具体的にはこの警告。
The "X-Content-Type-Options" HTTP header is not set to "nosniff" This is a potential security or privacy risk, The "X-Robots-Tag" HTTP header is not set to "none" This is a potential security or privacy risk, The "X-Frame-Options" HTTP header is not set to "SAMEORIGIN" This is a potential security or privacy risk, The "X-Download-Options" HTTP header is not set to "noopen" This is a potential security or privacy risk, The "X-Permitted-Cross-Domain-Policies" HTTP header is not set to "none" This is a potential security or privacy risk, The "X-XSS-Protection" doesn't contain "1; mode=block" This is a potential security or privacy risk, The "Strict-Transport-Security" HTTP header is not set at least "15552000" This is a potential security or privacy risk, The "Referrer-Policy" HTTP header is not set to "no-referrer" This is a potential security or privacy risk,
これもNginxのserverブロックで追加するだけ。
add_header X-Content-Type-Options nosniff; add_header X-Robots-Tag none; add_header X-Frame-Options SAMEORIGIN; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; add_header X-XSS-Protection "1; mode=block"; add_header Strict-Transport-Security 15552000; add_header Referrer-Policy no-referrer always;
githubのコミットはこちら。
add_header X-XSS-Protection “1;mode=block”; となっていますが、正しくは
add_header X-XSS-Protection “1; mode=block”; とする必要があります。
1;とmodeとの間に半角スペースを入れる。
Your web server is not properly set up to resolve “…”
この部分です。
Your web server is not properly set up to resolve "/.well-known/webfinger". Your web server is not properly set up to resolve "/.well-known/nodeinfo". 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".
結論として
webfinger, nodeinfoは警告を消すことを諦めた
放置しても問題なさそうなので、いったんこのままで
caldav, carddavは対応した
としました。
Nginxのserverブロックに以下を追加します。
location ^~ /.well-known { location = /.well-known/carddav { return 301 /remote.php/dav/; } location = /.well-known/caldav { return 301 /remote.php/dav/; } location ^~ /.well-known/ { return 301 /index.php$uri; } }
githubのコミットはこれ。
Your installation has no default phone region set.
Nextcloudのconfig.phpに以下を追加します。
国のコードはここを参考に適切なものを選んでください。
'default_phone_region' => 'JP',
Your PHP does not have FreeType support,
Dockerfileで
aptでlibfreetype6-devを追加
docker-php-ext-configure gdで–with-freetypeを追加
とします。
見づらかったので、一部抜粋。
-docker-php-ext-configure gd --with-jpeg --with-webp && \ +apt -y install libfreetype6-dev libjpeg-dev libwebp-dev && \ +docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp && \
githubのコミットはこれです。
This instance is missing some recommended PHP modules.
Dockerfileにてintl, gmpを追加。
apt install libgmp-dev && \ docker-php-ext-install intl gmp && \ docker-php-ext-enable intl gmp && \
githubのコミットはこれ。
おまけ – X-Powered-Byを削除 –
デフォルトだとX-Powered-Byヘッダーが出ていたので、隠します。
Nginxのserverブロックに追加。
fastcgi_hide_header X-Powered-By;
githubのコミットはこれ。
動作確認
Nextcloudの管理画面では以下の通り、ほぼすべての警告が消えました。
webfinger/nodeinfoは非対応なので残っている。
また、公式のセキュリティレベルチェックツールがあるので、確認してみました。
レベルA+ということで、ひとまず安心できるレベルのようです。
終わりに
いかがでしたか。
Nextcloudを外部公開する際、最低でもこれはやっておくほうがいいです!
Comments