Назад | Перейти на главную страницу

Настройка доступа к аварийной консоли с помощью xen

В Gandi (или других провайдерах) вы можете активировать аварийную консоль для своей виртуальной машины. Он связывает канал SSH с временным IP-адресом и портом.

У меня есть собственный сервер, работающий на xen. Я хотел бы реализовать аварийную консоль, но не знаю, с чего начать.

Доступ к консоли можно получить с помощью xm console <servername> команда. Я предполагаю, что можно привязать stdin / stdout / stderr к серверу SSH, который работает на выбранном случайном порту.

Общая идея заключается в том, что когда кому-то нужен экстренный доступ к своей виртуальной машине, он может войти на веб-сайт гипервизора со своими учетными данными и нажать «Включить мой экстренный доступ по SSH». Оттуда случайный порт привязывается к виртуальной машине на заданное время.

Другими словами, как Ганди удается реализовать доступ к аварийной консоли без перезагрузки ВМ?

Возможные решения

Автономный режим: только SSH-доступ

Невозможно внедрить двоичный файл в работающую виртуальную машину Xen, чтобы заставить ее создать SSH-сервер и получить доступ к файловой системе.

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

Через хост: разрешение доступа к консоли

Ответ улыбающегося дракона объясняет, как это сделать, но это было бы очень плохой идеей для безопасности.

Онлайн: VNC Proxy

Поскольку разрешить консольный доступ через SSH на хосте нетривиально (ответ Улыбающегося Дракона), вы можете настроить прокси-сервер VNC, используя что-то вроде noVNC и защита сеансов VNC с помощью токенов аутентификации. OpenStack делает это.

Это решение представляет собой довольно безопасный способ (при правильной реализации, например OpenStack) разрешить администратору виртуальной машины доступ к работающему экземпляру, но для его правильной настройки требуется больше усилий.

Несколько хакерским решением может быть динамическое создание учетной записи ssh с authorized_keys, содержащей открытый ключ владельца виртуальной машины. Оболочка будет установлена ​​на xm console <servername> && <command to remove the user again>.

Конечно, вам нужно подумать о последствиях для безопасности выхода пользователя из сеанса xm.