Заблокирован из 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
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- Начните свой экземпляр
Надеюсь, это работает для вас
Ответ 6
Благодаря Фабиану Бертетто все работает отлично. Вы экономите мое время, спасибо еще раз https://stackoverflow.com/users/5780029/fabi%c3%a1n-bertetto