5 подписчиков
Первоначальная настройка 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
- разобраться с SELinux (всё откладывал)
- расширение функциональности
Коллекция в первую очередь ориентирована на RedHat-based дистрибутивы, но и про Debian/Ubuntu стараюсь не забывать.
Также закрадывалась мысль сделать кастомный образ дистрибутива, но не все провайдеры поддерживают его загрузку напрямую — только через обращение в техническую поддержку.
А какие инструменты используете вы для настройки, аудита и мониторинга?
2 минуты
3 июня