Первоначальная настройка VDS/VPS без головной боли

Периодически приходится арендовать VPS для небольших проектов. И тут возникает дилемма: тратить много времени на ручную настройку не хочется, но и терять контроль над системой, рискуя получить «гостей», тоже мало приятного.

Раньше после покупки сервера верхнеуровневый чек-лист был таким: - Создание учётной записи и настройка прав доступа (обычно это root для себя любимого) - Добавление публичного SSH-ключа - Конфигурация firewall и SSH - Базовые настройки, повышающие безопасность - Установка базового софта

Чтобы не тратить время на ручное выполнение этих действий по чек-листу, я пришёл к созданию Ansible-коллекции, включающей все необходимые действия: linux-collection.

На данный момент коллекция включает следующие роли: - audit - сбор информации о системе с помощью Lynis и OpenSCAP - bash_profile - настройка приветственного сообщения и prompt string (об этом хочу сделать отдельный пост) - docker - установка Docker с добавлением пользователей в группу - package_updates - обновление пакетов - prepare - первичная подготовка сервера (создание учётной записи, добавление SSH-ключа, смена порта SSH) - security - различные настройки для обеспечения безопасности

Роль security включает рекомендации, собранные из различных источников: базовые рекомендации, найденные на просторах интернета, советы, встречающиеся в новостях и постах, а также рекомендации CIS (Center for Internet Security) и ФСТЭК.

Отдельно хочу отметить интересный момент. OpenSCAP помог обнаружить слепые зоны в настройке SSH. Например, я был уверен, что достаточно настроить sshd_config, но упустил важный момент: хостинг-провайдеры часто размещают дополнительные ключи и настройки для доступа технической поддержки, о чём провайдер предупреждает в письмах и у себя на сайте. Теперь могу это контролировать в зависимости от задачи.

Сейчас первичная подготовка занимает пару минут, а дальнейшее сопровождение не отнимает много времени.

В ближайших планах: - роль для постановки на мониторинг (рассматриваю Yandex Monium) - реализация rootless Docker - добить обработку замечаний от OpenSCAP - изучить методичку по харденингу Ubuntu 24.04 от автора @bykva - разобраться с SELinux (всё откладывал) - расширение функциональности

Коллекция в первую очередь ориентирована на RedHat-based дистрибутивы, но и про Debian/Ubuntu стараюсь не забывать. Также закрадывалась мысль сделать кастомный образ дистрибутива, но не все провайдеры поддерживают его загрузку напрямую только через обращение в техническую поддержку.

А какие инструменты используете вы для настройки, аудита и мониторинга?

#devops #vps #ansible #security

Первоначальная настройка VDS/VPS без головной боли | Сетка — социальная сеть от hh.ru