Сегодня в статье поговорим как Настроить HTTP заголовки WEB-сервера Nginx и обезопасить ваш сервер от различных атак.
HTTP заголовки WEB-сервера Nginx
Для начала давайте откроем конфигурационный файл WEB сервера Nginx
sudo nano /etc/nginx/nginx.conf
Найдите раздел HTTP, в этом разделе определяются конфигурации для HttpCoreModule Nginx. Добавьте следующую директиву:
server_tokens off;
Это запретит Nginx отправлять номера версий в заголовке HTTP.
Перезагрузите конфигурацию Nginx Чтобы применить это изменение:
sudo service nginx reload
X-XSS-Protection
Заголовок X-XSS-Protection может предотвратить некоторые XSS-атаки («межсайтовый скриптинг»), он совместим с IE 8+, Chrome, Opera, Safari и Android.
Добавьте следующее в nginx.conf в разделе HTTP:
add_header X-XSS-Protection "1; mode=block";
X-Frame-Options
Заголовок X-Frame-Options позволяет снизить уязвимость вашего сайта для кликджекинг-атак. Этот заголовок служит инструкцией для браузера не загружать вашу страницу в frame/iframe. Не все браузеры поддерживают этот вариант, так что проверьте заголовок на совместимость перед тем, как его добавлять.
Добавьте следующее в nginx в директиве Server обычно она находится в конфигурационном файле сайта:
add_header X-Frame-Options “DENY”;
X-Content-Type-Options
Можно предотвратить атаки с использованием подмены MIME типов, добавив этот заголовок ответа HTTP. Заголовок содержит инструкции по определению типа файла и не допускает сниффинг контента. При конфигурации потребуется добавить только один параметр: “nosniff”.
Добавьте следующую строку в файл nginx в директиве Server:
add_header X-Content-Type-Options nosniff;
Content Security Policy
Чтобы предотвратить XSS-атаки, кликджекинг, внедрение кода, можно добавить заголовок ответа Content Security Policy (CSP). CSP содержит инструкции о загрузке контента из разрешенных источников.
Добавьте следующее в секцию Server в файле nginx.conf:
add_header Content-Security-Policy "default-src 'self';";
Если после внесения данной директивы сайт стал отображаться не правильно, то вам необходимо :
РНР
По соображениям безопасности сервера рекомендуется отключить или скрыть информацию от злоумышленников, которые могут быть нацелены на ваш сервер, желая узнать, используете ли вы PHP или нет.
sudo nano /etc/php/7.4/fpm/php.ini
Найдите ключевое слово expose_php и установите его значение в Off:
expose_php = off
Если вы используете PHP как FPM, то вам нужно будет перезагрузить PHP-FPM:
sudo service php-fpm reload
После перезагрузки заголовок ответа X-Powered-By: PHP/7.4 должен отсутствовать
Если не помогло, то прописываем в nginx.conf следующее
proxy_hide_header X-Powered-By;
# или
#more_clear_headers 'X-Powered-By';
[endtxt]
RSS