Главная › Форумы › SOFTWARE › Tuning Systems › HestiaCP настройка заголовков безопасности
Помечено: .htaccess, easy, easyssl, headers, HestiaCP, security, settings, ssl, wordpress, безопасности, заголовков, Настройка, сервера
- В этой теме 0 ответов, 1 участник, последнее обновление 3 года, 1 месяц назад сделано E-tec.
-
АвторСообщения
-
18.10.2021 в 15:21 #1990
После миграции с 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" Header set Permissions-Policy "geolocation=(), midi=(),sync-xhr=(),accelerometer=(), gyroscope=(), magnetometer=(), camera=(), fullscreen=(self)" </IfModule>
После этих настроек перезагружаем еще раз apache2 и nginx, и смотрим «здоровье сайта»
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.