HestiaCP настройка заголовков безопасности - Geek-Speak

HestiaCP настройка заголовков безопасности

Главная Форумы SOFTWARE Tuning Systems HestiaCP настройка заголовков безопасности

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • #1990
    Esmertec
    Хранитель

    После миграции с VestaCP на HestiaCP возникли проблемы по защите заголовков сервера, т.к. работа web сервера отличается между этим двумя панелями управления. Как вы поняли в wordpress в меню «Здоровье сайта» появилась следующее уведомление от плагина:

    Для решения этой проблемы нужно сделать резервные копии конфигурационных файлов web сервера apache2 и nginx:

    # cp /etc/apache2/apache2.conf /etc/apache2/apache2.example
    # cp /etc/nginx/nginx.conf /etc/nginx/nginx.example

    Для начала отредактируем конфигурационный файл nginx, откроем любым удобным для вас редактором, я пользуюсь nano:
    # nano /etc/nginx/nginx.conf

    В конфигурации ищем раздел SSL PCI compliance, стираем из нее все и вставляем новые конфигурации. Все актуальные на текущий момент настройки заголовков можно посмотреть ЗДЕСЬ! Я изменил конфиг следующим образом:

    При копировании конфигурации с сайта будьте внимательны, возможно нужно будет добавить, удалить или изменить кавычки, или подобные мелки ошибки, которые не дадут загрузиться nginx`у. Чтоб проверить конфигурацию на ошибки используйте команду:
    # nginx -c /etc/nginx/nginx.conf -t

    P.S. На скриншоте предупреждение связанное с ssl stapling параметр используется для коммерческого центра сертификации. Если у Вас как и у меня само подписанный сертификат, просто удалите эту строчку.

    Моя конфигурация nginx.conf выглядит следующим образом:

        # SSL PCI compliance
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_dhparam /etc/ssl/dhparam.pem;
        ssl_ciphers "EECDH+AESGCM:EDH+AESGCM";
        ssl_ecdh_curve secp384r1;
        ssl_session_timeout  10m;
        ssl_buffer_size     1400;
        ssl_session_cache shared:SSL:10m;
        ssl_session_tickets off;
        ssl_stapling_verify on;
        resolver 192.168.1.1 8.8.8.8 8.8.4.4 valid=300s ipv6=off;
        resolver_timeout    5s;
        add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
        add_header X-Frame-Options SAMEORIGIN;
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-Protection "1; mode=block";
        add_header Expect-CT "max-age=7776000, enforce";
        add_header Referrer-Policy "no-referrer-when-downgrade";
        add_header Content-Security-Policy "upgrade-insecure-requests";

    ВНИМАНИЕ! НЕ КОПИРУЙТЕ мою конфигурацию, т.к. под ВАШ сервер она может НЕ подойти!!!

    С настройками nginx закончили, при вводе команды # curl -I ВАШ_ДОМЕН в консоль, Вы должны увидеть следующий ответ:

    Далее идем редактировать конфигурацию apache2. Открываем файл /etc/apache2/apache2.conf.
    # nano /etc/apache2/apache2.conf

    В секцию # Global configuration дописываем строчку: Include conf-enabled/security.conf. Должно получиться примерно так:

    Это нужно для того, чтоб при обновлении пакета apache2 постоянно не переписывать конфигурацию безопасности, т.к. файл apache2.conf может перезаписываться. Далее нужно включить headers_mod в apache2, чтоб сервер не упал в ошибки. вводи в консоль команду:
    # a2enmod headers

    Должны получить ответ:

    После этого открываем конфигурационный файл security.conf и в самый низ опять же дописываем нужные строки.
    # nano /etc/apache2/conf-enabled/security.conf

    У меня после редактирование конфиг security выглядит следующим образом:

    Моя конфигурация получилась следующая:

    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM
    # Requires Apache 2.4.36 & OpenSSL 1.1.1
    SSLProtocol -all +TLSv1.3 +TLSv1.2
    SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1
    # Older versions
    # SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLHonorCipherOrder On
    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
    Header always set X-Frame-Options: "SAMEORIGIN"
    Header always set X-Content-Type-Options: "nosniff"
    Header always set X-XSS-Protection "1; mode=block"
    Header always set Expect-CT "max-age=7776000, enforce"
    Header always set Referrer-Policy: "no-referrer-when-downgrade"
    Header always set Content-Security-Policy "upgrade-insecure-requests"
    # Requires Apache >= 2.4
    SSLCompression off
    SSLUseStapling on
    SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
    # Requires Apache >= 2.4.11
    SSLSessionTickets Off

    ВНИМАНИЕ! НЕ КОПИРУЙТЕ мою конфигурацию, т.к. под ВАШ сервер она может НЕ подойти!!!

    Сохраняем файл перезапускаем apache2. Т.к. апач частично глядит в настройки файла .htaccess, открываем его ищем параметры касающиеся headers:
    <IfModule mod_headers.c></IfModule>
    Если ее нет создаем в конце файла и дописываем те же параметры как и в файл security.conf. Этот шаг в принципе не обязателен, т.к. настройки касающиеся заголовком были внесены на уровне сервера! У меня этот конфиг выглядит следующим образом:

    <IfModule mod_headers.c>
        Header set Referrer-Policy "no-referrer-when-downgrade"
        Header set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
        Header set X-Frame-Options "SAMEORIGIN"
        Header set X-Content-Type-Options "nosniff"
        Header set X-XSS-Protection "1; mode=block"
        Header set Expect-CT "max-age=7776000, enforce"
        Header set Content-Security-Policy "upgrade-insecure-requests"
    </IfModule>

    После этих настроек перезагружаем еще раз apache2 и nginx, и смотрим «здоровье сайта»

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Для ответа в этой теме необходимо авторизоваться.
Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
*
captcha
Генерация пароля