Заблокирован из SSH с UFW в EC2 AWS

У меня есть экземпляр EC2 с Ubuntu. Я использовал sudo ufw enable и после того, как разрешил только порт mongodb

sudo ufw allow 27017

Когда ssh-соединение сломалось, я не могу повторно подключиться

Ответ 1

Каким-то образом ответ Махеша не сработал для меня, если вы оказались в моей обуви, попробуйте это.

  • Запустите новый экземпляр (экземпляр восстановления).
  • Остановите исходный экземпляр (НЕ ТЕРМИНАЙТЕ)
  • Отсоедините громкость (объем проблемы) от исходного экземпляра
  • Прикрепите его к экземпляру восстановления как /dev/sdf.
  • Войдите в экземпляр восстановления через ssh/putty
  • Запустите sudo lsblk чтобы отобразить прикрепленные тома и подтвердить имя объема проблемы. Обычно он начинается с /dev/xvdf. Шахта - /dev/xvdf1
  • Задайте объем задания.

    $ sudo mount /dev/xvdf1 /mnt
    $ cd /mnt/etc/ufw
    
  • Открыть ufw конфигурации ufw

    $ sudo vim ufw.conf
    
  • Нажмите i, чтобы отредактировать файл.
  • Изменить ENABLED=yes для ENABLED=no
  • Введите Ctrl-C и введите: wq, чтобы сохранить файл.
  • Отобразить содержимое файла UFW conf с помощью приведенной ниже команды и убедиться, что ENABLED=yes изменено на ENABLED=no

    $ sudo cat ufw.conf 
    
  • Отключить громкость

    $ cd ~
    $ sudo umount /mnt
    
  • Отсоедините объем проблемы от экземпляра восстановления и снова присоедините его к исходному экземпляру как /dev/sda1.

  • Запустите исходный экземпляр и вы сможете снова войти в систему.

Источник: здесь

Ответ 2

  • Запустите еще один экземпляр сервера EC2. Лучший способ добиться этого - использовать функцию "Запустить более похожее на это" в EC2. Это гарантирует, что тип ОС, группа безопасности и другие атрибуты совпадают, тем самым сохраняя немного времени настройки.
  • Остановить экземпляр проблемы
  • Отсоединить том от экземпляра проблемы
  • Присоединить громкость к новому экземпляру

Примечание. Новые ядра Linux могут переименовывать ваши устройства в /dev/xvdf через /dev/xvdp внутренне, даже если имя устройства введено /dev/sdf через /dev/sdp.

  • Установите громкость
cd ~
mkdir lnx1
sudo mount /dev/xvdf ./lnx1
  • Отключить UFW
cd lnx1
sudo vim ufw.conf

Теперь найдите ENABLED = yes и измените его на ENABLED = no.

  • Отсоединить громкость

Обязательно сначала отключите громкость:

sudo umount ./lnx1/
  • Перезагрузите том в /dev/sda1 на нашем экземпляре проблемы.
  • Экземпляр ошибки загрузки
  • При необходимости переназначить эластичный IP-адрес
  • Удаление временного экземпляра и связанного с ним тома

Хола! вам хорошо.

Ответ 3

Другие подходы не сработали для меня. Мой экземпляр EC2 основан на изображении Bitnami. Прикрепление тома к другому экземпляру не работало из-за блокировки на рынке.

Поэтому вместо этого остановите экземпляр проблемы и вставьте этот скрипт в instanceSettings> view-change user data.

Такой подход не требует отсоединения объема, поэтому он более прямолинейный по сравнению с другими.


Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
ufw disable
iptables -L
iptables -F
--//

Перед тем, как вставить это, нужно остановить экземпляр, после этого запустите свой экземпляр, и вы сможете получить ssh.

Ответ 4

Я знаю, что это старый вопрос, но я исправил мой, добавив команду в View/Change User Data, используя bootcmd

Я сначала остановил свой экземпляр

Затем я добавил это в User Data

#cloud-config
bootcmd:
 - cloud-init-per always fix_broken_ufw_1 sh -xc "/usr/sbin/service ufw stop >> /var/tmp/svc_$INSTANCE_ID 2>&1 || true" 
 - cloud-init-per always fix_broken_ufw_2 sh -xc "/usr/sbin/ufw disable>> /var/tmp/ufw_$INSTANCE_ID 2>&1 || true"

# Примечание: Мой экземпляр - Ubuntu

Ответ 5

У меня та же проблема и выяснил, что этот шаг работает:

1- Остановите свой экземпляр

2- Зайдите в "Настройки экземпляра" → "Просмотр/изменение данных пользователя".

3- Вставьте это

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
ufw disable
iptables -L
iptables -F
--//

4- Начните свой экземпляр

Надеюсь, это работает для вас