root заблокирован из EC2


8

Я был в процессе отключения корневых учетных записей на экземпляре AWS EC2. Сразу после установки PermitRootLogin no и перезапуска sshd я случайно закрыл терминал - перед настройкой пользователей с привилегиями sudo. В результате мой ключ для входа в экземпляр как root не работает (sshd запрещает это), и когда я вхожу в экземпляр, используя моего обычного пользователя, я не могу получить привилегии root (пароль root никогда не устанавливался). Экземпляр работает под управлением Ubuntu 8.10. Кто-нибудь есть идеи, как я могу это исправить?

Ответы:


9

Нет, не прекращайте работу, не все потеряно!

  1. загрузите другой экземпляр и завершите работу плохого.
  2. отсоедините том EBS от плохого экземпляра и присоедините его к новому экземпляру.
  3. Смонтируйте его в новом экземпляре (например, что-то вроде sudo mount / dev / xvdf1 / mnt /)
  4. сделайте в нем chroot (sudo chroot / mnt) и введите passwd.
  5. сбросьте пароль или внесите любые другие изменения, которые вам нравятся (например, vi / etc / ssh / sshd_config!)
  6. Нажмите control-D или введите exit, чтобы выйти из chroot.
  7. umount / mnt
  8. отсоедините том EBS от вашего временного экземпляра
  9. повторно присоедините или сделайте снимок и создайте новый AMI на основе этого снимка
  10. Загрузите исправленную коробку обратно!

PS в следующий раз попробуйте Userify для управления ключами ваших пользователей :)


1
Примечание. Это не будет работать, если вы запустили экземпляр с торговой площадки AWS (эти экземпляры не могут быть подключены к другим корневым томам). Это включает в себя определенные дистрибутивы с открытым исходным кодом, такие как CentOS.
fatal_error

3

Не найдя уязвимости, единственный способ получить root-доступ на компьютере с Linux - это загрузить однопользовательский режим и сбросить пароль. Однако у вас нет доступа на уровне KVM к экземпляру EC2, поэтому это невозможно.

Вам нужно будет прервать этот экземпляр EC2 и запустить еще один. Но отключение рутинных входов против общей парадигмы в EC2. Amazon предлагает вам предоставить открытый ключ во время запуска экземпляра и установить скрипт инициализации в /root/.ssh/authorized_keys, где sshd настроен на «PermitRootLogin без пароля» для принудительного входа только в пары ключей. Таким образом, вы никогда не сможете случайно заблокировать себя из своей учетной записи root (при условии, что вы не потеряете свой закрытый ключ).

В будущем я предлагаю вам создать пользователя с доступом sudo, а затем начать сеанс «экрана» сразу после входа в систему, чтобы отключение не остановило / не прервало вашу работу. После того как вы настроите и установите свое приложение, объедините, загрузите и объедините свой AMI, чтобы при необходимости можно было запускать новые экземпляры.


+1 за предложение экрана, хотя я предпочитаю tmux .
h0tw1r3

Решение ниже - монтирование тома EBS будет работать в этом случае, при условии, что экземпляр имеет EBS.
AliGibbs

1

Есть ли у вас сохраненный AMI с изменениями, которые вы внесли в свой экземпляр до того, как отключили root-вход? Если нет, вам придется вернуться к базовому AMI, с которого вы начали, и создать новый экземпляр EC2.


-1

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.