Как один VPS изменил наш процесс работы с доступами
Стал старшим backend-разработчиком и функциональным лидом десятка бэкендеров. По возрасту я и так был старшим. Теперь добавились серверы, GitLab, Proxmox и прочие радости инфраструктуры.
Однажды вечером пришёл PM: хостер сообщил о спаме с VPS давнего клиентского проекта. На разбирательство — 24 часа до блокировки.
На сервере обнаружились SSH-вход по слабому паролю, зачищенный auth.log, отсутствие архивных логов и непрерывные попытки авторизации. Время очистки журнала совпадало с началом роста CPU.
Закрыл вход по паролю и прямой вход root, настроил доступ по ключу, сменил пароль, добавил fail2ban. Собрал результаты проверок. Хостера они устроили, а вопрос «как узнаем о следующем подключении?» остался.
Через сессионный хук PAM добавил отправку событий во внешний логгер: учётная запись, адрес подключения, начало и конец сессии. Копии записей теперь хранились отдельно от наблюдаемого сервера.
Раскатили это на dev и stage, затем на клиентские проды.
Следом собрал около двух десятков публичных SSH-ключей разработчиков. Раскладывать их вручную по проектам и окружениям оказалось отдельным видом спорта.
На выходных дописал панель управления со spatie/ssh под капото: проекты, окружения, разработчики. Выдача и отзыв SSH-доступов, включая офисный туннель, стали доступны из одного интерфейса.
При уходе сотрудника можно было одним действием запустить отзыв его SSH-доступов на управляемых серверах. Внешний журнал дал историю сессий, панель — единый процесс управления ключами.
Такие дела!
· 26.09
А почему не воспользовались готовыми решениями по автоматизации, зачем нужно было что-то дописывать? Только по причине того, что вы разработчик и вам проще написать своë решение, чем изучать готовые?
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 27.09
Мы разработчики, мы так иногда делаем) На самом деле, частично архитектура пошла дальше во внутренние и пет проекты студии (в которых ребята руками делали то, что частично или полностью можно организовать готовыми инструментами,например,учет и бронирование тестовых устройств, книг во внутренней библиотеке, и тд… Поэтому выбор - тренироваться на кошка (сделать руками) был осознанный.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 27.09
Ясно. Внутренний продукт, который решает задачи именно вашей организации.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён