ロリポップ(ハイスピードプラン)に Nextcloud をインストールし、右上のユーザーアイコンから管理者設定に進むと「セキュリティ&セットアップ警告」が表示されます。
私の環境では以下のようなエラーやワーニングが出ていました(文章など一部省略)。
- リバースプロキシヘッダの設定が正しくありません。✅
- ログには xxxx年xx月xx日 以降、エラーが x 件あります。
- PHPのメモリ制限が推奨値の512 MB以下です。✅
- サーバーにはメンテナンスウィンドウの開始時間が設定されていません。✅
- PHP OPcacheモジュールが正しく設定されていません。
- Strict-Transport-Security “HTTP ヘッダーの秒数が少なくとも”15552000” に設定されていません。✅
- ご使用のシステムには、デフォルトの電話地域が設定されていません。✅
- Webサーバーで “/.well-known/xxx” が解決されるように正しく設定されていません。✅
公式のドキュメントとグーグルにて調べながら、これらのエラーやワーニングに対してできる限り処置していきましたので、その内容をここに残します。
✅ をつけたエラー・ワーニングに対する処置ついて、以下に記載しています。
リバースプロキシヘッダの設定が正しくありません。
リバースプロキシヘッダの設定が正しくありません。これはセキュリティ上の問題で、攻撃者が自分のIPアドレスをNextcloudに見えるように偽装することができます。 詳細については、ドキュメント↗を参照してください。
Nextcloud セキュリティ&セットアップ警告より引用
/config/config.php に以下を追加。
(私の環境をでは /nextcloud/d/config/config.php )
'trusted_proxies' => ['xxx.xxx.xxx.xxx'], // サーバーの IPアドレスを入力
ロリポップのサーバー IPアドレスは、サーバー情報を取得するサービス等で調べることができますが、私は aguse.jp で調べました。
PHPのメモリ制限が推奨値の512 MB以下です。
PHPのメモリ制限が推奨値の512 MB以下です。
Nextcloud セキュリティ&セットアップ警告より引用
/.htaccess に以下を追記することで対処。
(私の環境では /nextcloud/.htaccess )
php_value memory_limit 512M
サーバーにはメンテナンスウィンドウの開始時間が設定されていません。
サーバーにはメンテナンスウィンドウの開始時間が設定されていません。これは、リソースを多く使用する日常のバックグラウンドジョブが、メインの利用時間中にも実行されることを意味します。利用者がこれらの重いタスクによる負荷の影響を受けにくくするために、低い利用時間に設定することをおすすめします。 詳細については、ドキュメント↗を参照してください。
Nextcloud セキュリティ&セットアップ警告より引用
/config/config.php に以下を追加。
(私の環境をでは /nextcloud/d/config/config.php )
'maintenance_window_start' => 1,
PHP OPcacheモジュールが正しく設定されていません。
PHP OPcacheモジュールが正しく設定されていません。 OPcache のインターン化文字列バッファがほぼいっぱいです。繰り返しの文字列を効果的にキャッシュするために、PHPの設定に “opcache.interned_strings_buffer” を “8” よりも高い値で設定することをおすすめします。. 詳細については、ドキュメント↗を参照してください。
Nextcloud セキュリティ&セットアップ警告より引用
記事執筆時、私はロリポのハイスピードプランを契約していますが、ロリポでは php.ini の直接編集はできなさそうで、opcache.interned_strings_buffer の設定もできなさそう?
opcache.interned_strings_buffer 周りで色々試してみましたが、結果わからなかったので放置していました。
その後、特に対処していませんが、自然に消えたようで、、、対処方法不明です。すみません。
Strict-Transport-Security “HTTP ヘッダーの秒数が少なくとも”15552000” に設定されていません。
Strict-Transport-Security “HTTP ヘッダーの秒数が少なくとも”15552000” に設定されていません。セキュリティを強化するには、セキュリティのヒント↗で説明されているようにHSTSを有効にすることをお勧めします。
Nextcloud セキュリティ&セットアップ警告より引用
/.htaccess を以下のように書き換えして対処。
(私の環境では /nextcloud/.htaccess )
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>
※ Nextcloud をインストールしたディレクトリの .htaccess は、Nextcloud のアップデート時に上書きされたことがあります。そのため、私は /nextcloud/d のようなディレクトリ構成にし、/nextcloud/.htaccess で作業することにしました。
ご使用のシステムには、デフォルトの電話地域が設定されていません。
ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、プロフィール設定で国コードなしの電話番号を有効にするために必要です。国コードなしの電話番号を許可するには、”default_phone_region” を地域の ISO 3166-1 コードとともに設定ファイルに追加してください。 詳細については、ドキュメント↗を参照してください。
Nextcloud セキュリティ&セットアップ警告より引用
/config/config.php に以下を追加。
(私の環境をでは /nextcloud/d/config/config.php )
'default_phone_region' => 'JP',
Webサーバーで “/.well-known/xxx” が解決されるように正しく設定されていません。
Webサーバーで “/.well-known/webfinger” が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。
Nextcloud セキュリティ&セットアップ警告より引用
Webサーバーで “/.well-known/nodeinfo” が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。
Webサーバーで “/.well-known/caldav” が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。
Webサーバーで “/.well-known/carddav” が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。
ロリポップのドキュメントルートに .htaccess を作成し、以下を記述して対処。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^\.well-known/host-meta /nextcloud/d/public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /nextcloud/d/public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/webfinger /nextcloud/d/index.php%{REQUEST_URI} [R=301,L]
RewriteRule ^\.well-known/nodeinfo /nextcloud/d/index.php%{REQUEST_URI} [R=301,L]
RewriteRule ^\.well-known/carddav /nextcloud/d/remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /nextcloud/d/remote.php/dav/ [R=301,L]
</IfModule>
※ ロリポップのドキュメントルートの .htaccess に記述するもので、「PHPのメモリ制限が推奨値の512 MB以下です。」や「Strict-Transport-Security “HTTP ヘッダーの秒数が少なくとも”15552000” に設定されていません。」への対処を記述した .htaccess とは別です。
※ RewriteRule の /nextcloud/d/ はインストールした環境に合わせて編集してください。
※ ロリポップのドキュメントルートの.htaccess は、マルチドメインなど他のドメインへの影響も考えられます。編集する場合はバックアップを行ってから作業されることを推奨します。
対応結果と未対応のワーニング
以上の追加修正を加えてみたところ、ワーニングの数はかなり減らすことができました。
以下、PHPモジュールの追加やメモリキャッシュ等、ロリポではこのあたりの対応は不可?っぽいだろうということで、以下のワーニングはスルーすることにしました。
Nextcloud セキュリティ&セットアップ警告より引用
- PHP モジュール “gmp” および “bcmath” が有効になっていない。WebAuthnパスワードレス認証を利用する場合は、これらのモジュールが必要です。
- データベースがトランザクションファイルロックに使われています。パフォーマンスをあげるには、可能であればメモリーのキャッシュを設定してください。 詳細については、ドキュメント↗を参照してください。
- メモリキャッシュが設定されていません。パフォーマンスを向上させるため、利用可能であればメモリキャッシュを設定してください。 詳細については、ドキュメント↗を参照してください。
- このインスタンスには、いくつかの推奨 PHP モジュールがありません。パフォーマンスと互換性を向上させるために、これらをインストールすることを強くお勧めします: sysvsem. 詳細については、ドキュメント↗を参照してください。
- メールサーバーの設定が未設定または未確認です。「基本設定」で設定を行ってください。その後、フォームの下にある「メールを送信」ボタンで設定を確認してください。 詳細については、ドキュメント↗を参照してください。
以上ですが、参考になりましたら幸いです。
コメント