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.

gareth_bowles
источник
-1

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


источник