Linux. Настраиваем Nextcloud

Ранее устанавливал Nextcloud, но если зайти в Настройки — Обзор, то можно увидеть предупреждения безопасности и производительности. Настраиваем Nextcloud.

Задача

На развернутой Ubuntu Server 18.04.1 выполнена установка Nextcloud, необходимо выполнить настройку, устранив предупреждения безопасности и производительности.

Решение

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

Так же в документации есть раздел оптимизации работы Nextcloud, заодно воспользуемся некоторыми из этих советов.

Для экономии текста, в статье не буду каждый раз указывать необходимость перезагрузки Apache и PHP, ориентируйтесь по тексту.

HTTP Strict-Transport-Security

HTTP Strict-Transport-Security (HSTS) механизм, принудительно активирующий защищённое соединение через протокол HTTPS. Что в свою очередь позволяет снизить возможность атаки Человек посередине (MITM).

Раздел инструкции The “Strict-Transport-Security” HTTP header is not configured. Открываем файл .htaccess

# nano /var/www/nextcloud/.htaccess

В раздел виртуального порта на 443 порту добавляем блок

<IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>

Описание виртуально порта стало таким

<VirtualHost *:443>
    ServerName cloud.nextcloud.com
    <IfModule mod_headers.c>
        Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
    </IfModule>
</VirtualHost>

HTTP Referrer-Policy

HTTP заголовок Referrer-Policy. При указании значения no-referrer, при переходе по ссылке с сайта никакая информация не отправляется вместе с запросами.

Согласно разделу Serve security related headers by the Web server добавим и другие рекомендуемые HTTP заголовки.

Для работы потребуются модули mod_headers и mod_env, но они уже были установлены вместе с Nextcloud.

# nano /var/www/nextcloud/.htaccess

И в существующий раздел модуля mod_headers добавить HTTP заголовки, до получения следующего:

<IfModule mod_headers.c>
    <IfModule mod_env.c>
        # Add security and privacy related headers
        Header set X-Content-Type-Options "nosniff"
        Header set X-XSS-Protection "1; mode=block"
        Header set X-Robots-Tag "none"
        Header set X-Download-Options "noopen"
        Header set X-Permitted-Cross-Domain-Policies "none"
        Header set Referrer-Policy "no-referrer"
        SetEnv modHeadersAvailable true
    </IfModule>
</IfModule>

APCu

Согласно разделу документации Configuring memory caching необходимо настроить кэширование. Для личного использования достаточно настроить APCu.

# apt-get install php-apcu
# phpenmod apcu

Теперь необходимо поправить конфигурационный файл Nextcloud

# nano /var/www/nextcloud/config/config.php

добавив строку

'memcache.local' => '\OC\Memcache\APCu',

И поправить конфигурационный файл самого APCu

# nano /etc/php/7.2/mods-available/apcu.ini

добавив строку

apc.enable_cli = 1

PHP-FPM

Установка PHP-FPM опциональна и данную настройку можно игнорировать, но я установил

# apt-get install php7.2-fpm

Согласно разделу документации Tune PHP-FPM необходимо оптимизировать работу PHP-FPM, разрешив выполнять несколько запросов одним процессом.

Правим конфигурационный файл

# nano /etc/php/7.2/fpm/pool.d/www.conf

добавив строки

pm = dynamic
pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18

Запустим PHP-FPM

sudo service php7.2-fpm start

OPcache

Согласно разделу документации Enable PHP OPcache, можно ускорить работу PHP. Правим конфигурационный файл PHP

# nano /etc/php/7.2/apache2/php.ini

добавив строки

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Результат

После выполнения всех рекомендаций на станице Настройки — Обзор видна надпись Все проверки пройдены, а Nextcloud Security Scan показывает рейтинг A+.

Комментарии 1

  • Андрей 07.09.2019 в 19:28 Cсылка

    У меня на сервере крутится nas4free, и через плагин OneButtonInstaller установлен Nextcloud. Nas4free я устанавливал с тем учетом, чтобы объединить все 4 диска в рейд массив ZFS. На то время это было единственное решение, что я нашел с надежной и быстрой файловой системой. Всеми остальными функциями nas4free я по истечению времени так и не воспользовался. У меня вопрос. Имеет ли смысл сносить nas4free и устанавливать linux и накатывать NExtcloud для более стабильной работы / съедания меньшего количества ресурсов / расширения функционала? Или оставить nas4free, так как разницу я не замечу? Сервер крутится круглые сутки. Так же в nas4free можно посмотреть состояние бесперебойника.

  • Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *