Что нужно, чтобы получить рейтинг безопасности Nextcloud A+

Ваш сайт Nextcloud может нормально работать и при этом получить низкую оценку от внешней проверки безопасности. Распространенные причины включают устаревшую или снятую с поддержки версию сервера, отсутствие заголовка HSTS или обратный прокси-сервер, скрывающий HTTPS от Nextcloud. Начните с обновления Nextcloud, принудительно включите HTTPS на общедоступном веб-сервере, настройте узкую область доверия к прокси-серверу и устраните предупреждения, отображаемые на странице администрирования Nextcloud.

Единого универсального стандарта «A+» не существует. Официальное сканирование безопасности Nextcloud оценивает общедоступный сервер Nextcloud, используя известные рекомендации и проверки усиления безопасности, которые он может выполнить извне; SSL Labs оценивает конфигурацию TLS. Любую оценку следует рассматривать как результат на определенный момент времени, а не как доказательство безопасности сервера или гарантию защиты от неизвестных уязвимостей.

1. Определите сканер и обновите сервер.

Перед изменением настроек запишите, какой сканер выдал оценку. Официальное сканирование Nextcloud сообщает об известных уязвимостях, версиях, поддержка которых прекращена, и видимых проблемах с усилением безопасности. Оценка только для TLS может быть получена от SSL Labs. Исправьте предупреждения используемого вами сканера, а затем повторно запустите то же сканирование; разные сервисы используют разные критерии.

В настройках администрирования Nextcloud проверьте версию сервера и любые предупреждения о безопасности или настройке. Перед изменением заголовков обновите Nextcloud до поддерживаемой версии и установите текущие обновления безопасности. Старая версия может оставаться уязвимой, даже если сканер заголовков возвращает A+. Если обновление для вашего установочного пакета недоступно, следуйте поддерживаемому пути обновления этого пакета, а не заменяйте файлы вручную.

2. Обязать использование HTTPS и добавить HSTS.

Предоставляйте доступ к общедоступному URL-адресу Nextcloud по протоколу HTTPS с использованием действительного сертификата и перенаправляйте незашифрованный HTTP-трафик на HTTPS. В руководстве Nextcloud по усилению безопасности рекомендуется использовать HTTPS на производственных серверах. Затем добавьте протокол HTTP Strict Transport Security (HSTS) на сервере или прокси-сервере, который отправляет общедоступный HTTPS-ответ. Администрация Nextcloud предупреждает о максимальном значении времени жизни запроса ( Strict-Transport-Securitymax-age) не менее 15 552 000 секунд.

Для Nginx добавьте в блок активного TLS-сервера директиву следующего вида, заменив имя хоста и сохранив остальную часть вашей заведомо работоспособной конфигурации Nextcloud:

add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
Блок TLS-сервера Nginx, отображающий заголовок HSTS с максимальным временем жизни 15 552 000 секунд и опцией includeSubDomains.
Установите HSTS для блока HTTPS-сервера, который отправляет ответы посетителям сайта.

Используйте includeSubDomainsтолько в том случае, если каждый поддомен также доступен по HTTPS. Не добавляйте необязательный preloadфлаг бездумно: для удаления домена из списков предварительной загрузки браузера после отправки может потребоваться несколько месяцев. Если обратный прокси-сервер обрабатывает TLS, настройте HSTS на этом общедоступном прокси-сервере; установка его только на внутреннем хосте Nextcloud может не изменить заголовок, который видит сканер.

В среде по умолчанию Nextcloud уже отправляет базовые заголовки, такие как X-Content-Type-Options, X-Frame-Options, Referrer-Policy, и X-Robots-Tag. Избегайте добавления дублирующихся или конфликтующих версий перед проверкой ответа. Пример конфигурации Nginx в Nextcloud показывает, как обрабатывать эти заголовки из Nginx.

3. Настройте обратный прокси-сервер, не доверяя каждому клиенту.

Если перед Nextcloud используется обратный прокси-сервер, укажите в поле "Укажите" только фактический IP-адрес этого прокси или диапазон его частной сети trusted_proxies. Nextcloud использует заголовки client-IP forwarded только для доверенных прокси-серверов; доверие к неправильным адресам может позволить клиентам подделать свой предполагаемый IP-адрес и подорвать контроль доступа или журналы событий.

Например, если прокси-сервер, завершающий TLS-соединение, находится по адресу 10.0.0.10, объедините соответствующие записи с существующим $CONFIGмассивом в config/config.php:

'trusted_proxies' => ['10.0.0.10'],
'overwriteprotocol' => 'https',
Фрагмент кода, демонстрирующий установку параметра trusted_proxies на 10.0.0.10 и параметра overwriteprotocol на https.
Это лишь примеры записей. Используйте реальный IP-адрес прокси-сервера и объедините их с существующим массивом конфигурации Nextcloud.

Установите overwriteprotocolзначение, равное httpsмоменту завершения TLS-соединения на прокси-сервере, если Nextcloud в противном случае определяет внутреннее HTTP-соединение как публичное HTTP. Если ваш прокси-сервер использует нестандартный заголовок forwarded-IP, настройте его так, forwarded_for_headersчтобы он точно соответствовал этому значению. Не устанавливайте широкий диапазон доверенных IP-адресов, например 0.0.0.0/0, . После редактирования файла проверьте объединенную конфигурацию и протестируйте вход в систему, совместное использование и сгенерированные ссылки.

4. Удалите оставшиеся предупреждения Nextcloud.

Откройте настройки администрирования и просмотрите раздел «Обзор» или «Безопасность» и настройте предупреждения. Устраните появившееся предупреждение, вместо того чтобы применять несвязанные директивы по усилению безопасности ради повышения оценки.

  • Отсутствует HSTS: проверьте ответ от общедоступной HTTPS-конечной точки, особенно когда прокси-сервер или балансировщик нагрузки завершают TLS-соединение.
  • Сервер, по всей видимости, использует HTTP: убедитесь, что на границе сети настроен HTTPS, и при необходимости укажите его overwriteprotocolдля настройки доверенного прокси-сервера.
  • Режим отладки включен: в рабочей среде оставьте debugего отключенным; включайте его только для целенаправленного устранения неполадок и выключайте снова.
  • Предупреждение о прокси-сервере или IP-адресе клиента: перед изменением настроек доверенного прокси-сервера проверьте фактический исходный адрес прокси-сервера и заголовок переадресации.
  • Известная уязвимая или устаревшая версия: обновите Nextcloud и затронутые серверные пакеты, используя поддерживаемую ими процедуру обновления.

Ограничивайте действия администратора только в том случае allowed_admin_ranges, если у администраторов есть стабильные и известные диапазоны IP-адресов управления. Неправильно указанный диапазон может скрывать административные функции от законных администраторов. В руководстве Nextcloud по усилению безопасности также рекомендуется отключать сжатие HTTP для предотвращения нарушений безопасности; проверьте конфигурацию вашего веб-сервера или прокси-сервера, если сжатие включено для аутентифицированных страниц.

5. Проверьте реакцию общественности и повторно запустите сканирование.

Проверяйте, что именно получает внешний клиент, а не только то, что содержит файл конфигурации:

curl -I https://cloud.example.com

Убедитесь, что ответ содержит заголовок HSTS с заданным значением max-age и что присутствуют основные заголовки безопасности Nextcloud. Инструменты разработчика браузера могут отображать те же заголовки ответа. Если значения отличаются от вашей конфигурации, проверьте терминатор TLS, прокси-сервер и любые кэшированные или вложенные расположения Nginx.

Пример вывода команды curl -I в терминале, отображающий заголовки ответа HSTS, X-Content-Type-Options и X-Frame-Options.
Проверьте заголовки, возвращаемые общедоступным HTTPS-адресом; одной лишь строки конфигурации недостаточно, чтобы подтвердить, что именно получают посетители.

Далее выполните официальное сканирование безопасности Nextcloud по общедоступному имени хоста, а затем снова проверьте настройки администрирования. Используйте Qualys SSL Labs, если вам требуется отдельная оценка TLS и подробные сведения. Для официального сканирования требуется доступное имя хоста Nextcloud; оно не может получить доступ к экземпляру, работающему только в частном режиме, из общедоступного интернета.

Официальная страница сканирования безопасности Nextcloud с полем для ввода имени хоста и кнопкой «Сканировать», перед отображением результатов.
После внесения изменений выполните официальное сканирование общедоступного имени хоста; полученная оценка является моментальным снимком, а не гарантией безопасности.

Если оценка остается ниже A+, используйте конкретное обнаруженное нарушение для определения ответственного за него уровня. Устраняйте проблемы по одной, проверьте, работает ли Nextcloud по своему общедоступному URL-адресу, и повторите сканирование. Оценка A+ — полезный сигнал конфигурации, но после успешного сканирования по-прежнему необходимы обновления, резервное копирование, контроль доступа и постоянный мониторинг.

Официальная документация

Оставить комментарий

Удалите предупреждение Nextcloud о блокировке файлов с помощью Redis.

Включите надежную блокировку файлов в Nextcloud, выберите подходящий бэкенд Redis или Valkey и убедитесь, что предупреждение исчезает без риска одновременного изменения файлов.

Что нужно, чтобы получить рейтинг безопасности Nextcloud A+

Что нужно, чтобы получить рейтинг безопасности Nextcloud A+

Устраните распространенные ошибки сканирования Nextcloud с помощью текущих обновлений, HTTPS и HSTS, точного доверия к обратному прокси-серверу и проверок на общедоступном сервере.

Внедрите серверное шифрование Nextcloud с измеримым эффектом.

Настройте Nextcloud SSE для необходимого вам хранилища, защитите ключи шифрования и измерьте влияние на передачу данных и загрузку процессора перед шифрованием существующих файлов.

Добавьте полнотекстовый поиск Elasticsearch в Nextcloud.

Подключите поиск файлов Nextcloud к Elasticsearch, проиндексируйте содержимое документов и выберите конфигурацию, соответствующую вашим потребностям в отношении сервера и безопасности.

Настройте надежную политику истечения срока действия для удаленных файлов в Nextcloud.

Настройте надежную политику истечения срока действия для удаленных файлов в Nextcloud.

Настройте Nextcloud так, чтобы он удалял удалённые файлы по истечении заданного периода хранения, надёжно планировал фоновые задачи и избегал команд, очищающих корзину каждого пользователя.

Удалите предупреждение Nextcloud об отсутствии индексов в базе данных.

Удалите предупреждение Nextcloud об отсутствии индексов в базе данных.

Запустите функцию восстановления OCC в Nextcloud в безопасных условиях, просмотрите изменения в базе данных и выясните, почему предупреждение может оставаться.

Увеличьте лимит загрузки веб-страниц в Nextcloud до более чем 2 ГБ.

Увеличьте лимит загрузки веб-страниц в Nextcloud до более чем 2 ГБ.

Разрешите загрузку файлов больших размеров через браузер Nextcloud, согласовав параметры PHP, Nginx или Apache, временного хранилища и тайм-аута, а также проверьте, какое ограничение блокирует файл.

Устранить предупреждение Nextcloud о нехватке памяти PHP на веб-сервере.

Установите ограничение на объем памяти, фактически используемый Nextcloud для PHP, перезапустите нужную службу и подтвердите значение 512 МБ в разделе «Обзор администратора».

Подключите совместимое с S3 хранилище к внешнему хранилищу Nextcloud.

Подключите совместимый сегмент объектного хранилища в Nextcloud, используя его бэкэнд S3, с указанием правильной конечной точки, учетных данных, области доступа и этапов проверки.

Переместите данные Nextcloud на внешний диск, не повреждая хранилище.

Переместите данные Nextcloud на внешний диск, не повреждая хранилище.

Безопасное перемещение каталога данных Linux Nextcloud на внешний диск с использованием постоянного монтирования UUID, режима обслуживания, проверенной копии и символической ссылки на исходный путь.