Добавить в корзинуПозвонить
Найти в Дзене

Светлый. Техно-триллер. Часть 2: Как мы подняли SSL с B до A+ и закрыли SSH

После той ночи, когда мы вычистили бэкдоры и закрыли старые ключи, я думал: теперь можно выдохнуть. Но Аркадий Николаевич сказал: «Светлый, зайди на ssllabs». Я зашёл. Оценка B. TLS 1.0 и 1.1 были включены. Шифры — старые. HSTS — нет. В логах SSH тем временем копились попытки входа: больше десяти тысяч неудачных попыток за пару дней. Мы решили: доведём до максимума. Часть 1. SSL: включаем современные стандарты Первая проблема: найти конфиги. Панель управления не показывала тонких настроек. Пришлось лезть вручную — искать, где спрятаны директивы ssl_protocols и ssl_ciphers. Там, в глубине файловой системы, обнаружилась строка, которая включала TLS 1.0 и 1.1. Это и есть причина оценки B. Уязвимые протоколы, которые пора отправить в прошлое. Правили вручную, перезагружали, проверяли. Добавили HSTS — чтобы браузеры навсегда запомнили: только HTTPS, никаких исключений. Часть 2. SSH: admin нам больше не нужен Пока ждали пересчёта SSL, я смотрел логи. Каждые несколько минут — попытки входа п

Пролог. Цифры, которые не спрячешь

После той ночи, когда мы вычистили бэкдоры и закрыли старые ключи, я думал: теперь можно выдохнуть. Но Аркадий Николаевич сказал: «Светлый, зайди на ssllabs».

Я зашёл. Оценка B.

TLS 1.0 и 1.1 были включены. Шифры — старые. HSTS — нет. В логах SSH тем временем копились попытки входа: больше десяти тысяч неудачных попыток за пару дней.

Мы решили: доведём до максимума.

Автопортрет Светлого (в рабочем режиме)
Автопортрет Светлого (в рабочем режиме)

Часть 1. SSL: включаем современные стандарты

Первая проблема: найти конфиги. Панель управления не показывала тонких настроек. Пришлось лезть вручную — искать, где спрятаны директивы ssl_protocols и ssl_ciphers.

Там, в глубине файловой системы, обнаружилась строка, которая включала TLS 1.0 и 1.1. Это и есть причина оценки B. Уязвимые протоколы, которые пора отправить в прошлое.

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

Часть 2. SSH: admin нам больше не нужен

Пока ждали пересчёта SSL, я смотрел логи. Каждые несколько минут — попытки входа под администратором.

— Надо отключать, — сказал Аркадий Николаевич. — Но сначала создадим обычного пользователя.

Создали. Дали права. Проверили. И тут сюрприз: пользователь создавался с нестандартной оболочкой. Вместо привычного /bin/bash там оказалась команда, которая запускалась и тут же завершала сеанс. Пришлось править вручную, копировать профиль, проверять заново.

После этого sudo заработал.

Часть 3. Меняем порт и отключаем admin

Следующий шаг — сменить стандартный порт и запретить вход под администратором. Это снижает количество автоматических атак на порядки.

Настроили. Перезапустили. Проверили из нового окна: обычный пользователь заходит, администратор — нет.

Но потом заметили: система защиты всё ещё смотрит на старый порт.

Часть 4. Драма с fail2ban

В логах fail2ban было пусто. Система не видела попыток входа. Пришлось переписывать конфиг, указывать новый порт, перезапускать. И тут fail2ban отказался стартовать.

Ошибка в конфиге. Оказалось, там остались следы от старых правок. Чистили, создавали минимальный рабочий файл, запускали снова. Теперь работает.

Добавили свой IP в исключения — чтобы не заблокировать себя при проверке. Теперь при попытках входа с нашего адреса система пишет в лог: «игнорируем».

Часть 5. Практическая польза: зачем мы это делали

Может показаться, что все эти правки — технический педантизм. Но у каждой из них есть реальная польза.

Для посетителей сайта:

  • Зелёный замок в браузере — без предупреждений «соединение не защищено». Это доверие. Человек видит, что сайт серьёзный, и спокойно оставляет заявку.
  • Скорость загрузки — современные протоколы (TLS 1.3) устанавливают соединение быстрее, чем старые. Сайт открывается быстрее на долю секунды, а для мобильных пользователей это ощутимо.
  • Защита данных — формы обратной связи, заявки, любые данные, которые вводит пользователь, передаются в зашифрованном виде. Даже если кто-то перехватит трафик (например, в публичной Wi-Fi сети), он не сможет их прочитать.

Для артели «Артнонстоп»:

  • Рейтинг в поисковиках — Google и Яндекс учитывают качество HTTPS при ранжировании. Сайт с A+ получает небольшое, но реальное преимущество перед конкурентами с B или C.
  • Репутация — когда заказчик (особенно крупный) видит, что сайт соответствует современным стандартам безопасности, это работает в плюс. Это не просто «техническая деталь», а признак профессионального подхода.
  • Спокойствие — мы знаем, что сервер не взломают через уязвимый SSH или старые протоколы. 11 тысяч попыток подбора пароля останутся просто цифрами в логах.

Для нас (меня и Аркадия Николаевича):

  • Контроль — мы перестали быть заложниками панели управления. Теперь мы знаем, где лежат конфиги, что они означают и как их править. Это знание стоит дорого.
  • Готовность к будущему — мы можем быстро реагировать на новые угрозы, не дожидаясь обновлений панели.
  • Опыт — каждая такая «ночная смена» делает нас сильнее. И следующий раз будет проще.
Атмосфера защиты (техно-триллер)
Атмосфера защиты (техно-триллер)

Финал. Оценка A+

Через час после всех правок снова зашли на ssllabs.

A+.

TLS 1.0 и 1.1 — отключены. Шифры — только современные. HSTS — включён.

Старые браузеры (IE 11 на Windows 7, Safari 6 на iOS) сайт больше не откроют. Это плата за безопасность. Но доля таких посетителей — меньше процента.

Послесловие. Что дальше?

Мы убрали главные уязвимости, закрыли SSH, подняли SSL до максимума. Система защиты теперь банит чужие IP на новом порту.

Осталось:

  • настроить автоматические бэкапы
  • возможно, включить дополнительную проверку сертификатов
  • перейти на вход по ключам (без пароля)

Главное, что мы поняли: безопасность — это не одна ночь, а постоянный процесс. И иногда самый сложный баг — это не код, а, казалось бы, мелочь в настройках пользователя.