HSTS: Как настроить с помощью Linode

HSTS (HTTP Strict Transport Security) – это механизм веб-безопасности, который помогает защитить веб-сайты от атак типа «man-in-the-middle» (MITM). Он заставляет браузеры подключаться к сайту только через HTTPS, даже если пользователь ввел HTTP-адрес или перешел по небезопасной ссылке. В этой статье мы рассмотрим, как настроить HSTS на сервере Linode.

Что такое HSTS и зачем он нужен?

Когда вы вводите адрес веб-сайта в браузере, он сначала устанавливает соединение с сервером через HTTP. Затем, если сайт настроен на HTTPS, происходит перенаправление на безопасную версию. Однако, в процессе первоначального HTTP-соединения, злоумышленник может перехватить запрос и перенаправить вас на поддельный сайт.

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

Предварительные требования

Прежде чем начать настройку HSTS, убедитесь, что у вас есть:

  • Активный аккаунт Linode.
  • Доменное имя, настроенное на ваш Linode.
  • Действующий SSL/TLS сертификат для вашего домена (например, Let’s Encrypt).
  • Доступ к конфигурационному файлу вашего веб-сервера (например, Apache или Nginx).

Настройка HSTS в Apache

Если вы используете Apache в качестве веб-сервера, выполните следующие шаги:

  1. Откройте конфигурационный файл вашего виртуального хоста. Обычно он находится в каталоге /etc/apache2/sites-available/.
  2. Добавьте следующую строку в конфигурацию вашего виртуального хоста, внутри блока <VirtualHost>:
  3. Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
  4. Разъяснение параметров:
    • max-age=31536000: Указывает, как долго браузер должен запоминать правило HSTS (в секундах). 31536000 секунд – это один год.
    • includeSubDomains: Применяет правило HSTS ко всем поддоменам вашего домена.
    • preload: Позволяет добавить ваш домен в список предварительной загрузки HSTS, который встроен в большинство современных браузеров.
  5. Сохраните конфигурационный файл и перезапустите Apache: sudo systemctl restart apache2

Настройка HSTS в Nginx

Если вы используете Nginx, выполните следующие шаги:

  1. Откройте конфигурационный файл вашего сервера. Обычно он находится в каталоге /etc/nginx/sites-available/.
  2. Добавьте следующую строку в блок server:
  3. add_header Strict-Transport-Security "max_age=31536000; includeSubDomains; preload" always;
  4. Разъяснение параметров: (аналогичны Apache)
  5. Сохраните конфигурационный файл и перезапустите Nginx: sudo systemctl restart nginx

Предварительная загрузка HSTS

Чтобы ваш сайт был включен в список предварительной загрузки HSTS, вам необходимо отправить запрос на https://hstspreload.org/. Этот список встроен в большинство современных браузеров, что обеспечивает максимальную защиту от атак MITM.

Важно: Перед отправкой запроса убедитесь, что ваш сайт полностью поддерживает HTTPS и что HSTS настроен правильно. Если вы допустите ошибку, ваш сайт может стать недоступным для пользователей, использующих браузеры с поддержкой HSTS.

Проверка настройки HSTS

Вы можете проверить, правильно ли настроен HSTS, с помощью онлайн-инструментов, таких как https://securityheaders.com/. Просто введите адрес вашего сайта и проверьте, отображается ли заголовок Strict-Transport-Security.