На каждый клиентский сервер мы добавляем ключ авторизации SSH для техподдержки.
Выглядит он так:
Размещается в файле /root/.ssh/authorized_keys с подписью support access key.
Настораживает ключ авторизации? Вам не о чем беспокоиться, потому что:
- Поддержка использует ключ с целью решить проблему на сервере.
- Возможности поддержки ограничены:
- нет доступа к закрытой части ключа, он не может быть утерян или скомпрометирован;
- любой доступ логируется через закрытый сервер авторизации, недоступный из внешних сетей.
Цели поддержки
Чтобы что-то сделать при поломке на VDS-сервере, нужен доступ. Если пароль забыт/утерян/есть только у программиста, а он недоступен - спасает ключ авторизации SSH.
С его помощью сотрудник техподдержки получает полный защищенный доступ к серверу клиента без ввода пароля и может сразу приступить к диагностике. 10 минут, и проблема решена.
Когда у поддержки нет SSH-доступа к серверу, происходит примерно такой диалог:
Клиент: Ребят, у меня сайты не работают, что случилось??
Поддержка: Предоставьте, пожалуйста, root-доступ к серверу.
Клиент: Но я его не знаю. Программист настраивал, не могу с ним связаться. Попробуйте вот эти – пароль1, пароль2, пароль3.
Поддержка: К сожалению, указанные доступы не подошли.
Клиент: Что делать? Прошу, восстановите работу сервера...
Поддержка: Сбросили пароль на указанный в инструкции, диагностика показала, что на сервере закончилось место из-за логов сайтов. Почистили их, настроили ротацию. Сайты доступны.
Подобный диалог занимает около 30 минут – в 3 раза больше. Все это время сайты недоступны пользователям, и вы теряете главное: клиентов и деньги.
Возможности поддержки
Разберёмся в механизме подключения по SSH. Чтобы получить доступ к удалённой машине нужны:
- публичный (известный поддержке) ключ на вашем VDS – тот самый, что мы добавляем по умолчанию;
- приватный (секретный) ключ на нашем сервере.
В процессе авторизации сначала проверяется публичный ключ – сравнивается с отпечатком на удалённой машине. Затем сообщение с вашего сервера расшифровывается приватным ключом. Подлинность ключей подтверждена, и специалист поддержки подключается к VDS.
Получается, доступ к приватному ключу даёт поддержке безграничные возможности. Обиженный/уволенный сотрудник может сотворить с клиентскими VDS такое, страшно представить. Но! У нашей техподдержки нет доступа к приватному ключу.
Подключение к серверу происходит по такой схеме:
Ключ сотрудника поддержки
У каждого из 16 специалистов свой ключ от сервера авторизации. Все они подписывают документ о неразглашении ключа. При расчёте сотрудника ключ удаляется, при приёме на работу создаётся новый.
Аутентификация по паролю выключена, а ключ нельзя подобрать или перехватить кейлоггером.
Доступ к серверу авторизации ограничен офисом. Сотрудник не может подключиться к нему (а затем и VDS клиента) из дома и безнаказанно творить, что захочет.
Сервер авторизации
Это отдельный сервер для проверки подлинности пользователей. Здесь хранится приватный мастер-ключ – единый для всех клиентских VDS.
У сотрудников поддержки нет прямого доступа к серверу авторизации. Они используют ограниченную учётную запись: могут только удалить строку из файла known_hosts и подключиться к VDS клиента через SSH.
Сервер клиента
Сотрудник логинится на VDS клиента, используя специальную команду.
Ведётся учёт, кто-куда подключался и как долго пробыл на VDS. У каждого сотрудника свой ключ от сервера авторизации – несложно вычислить виновника проблемы.
В чём польза SSH-ключа?
- ускоряет решение срочных проблем с сервером,
- сохраняет вашу репутацию, клиентов и доход, которые теряются, когда сайт недоступен.