Потерян доступ по SSH после включения UFW для MySQL на экземпляре Ubuntu

Вопрос или проблема

У меня есть инстанс, созданный в моем аккаунте AWS, этот инстанс был создан с образом системы Ubuntu. Последовательность установки пакетов: Java и MySQL. После установки MySQL я начал настраивать UFW для порта 3306, чтобы Workbench Windows мог взаимодействовать с MySQL на Ubuntu. Когда я ввожу команду “ufw enable”, UFW сообщает, что SSH может быть разрушен и спрашивает меня “да” или “нет”. После того как я отвечаю “да”, я теряю доступ к своей системе Ubuntu. Если я открываю другое соединение с моим IP-адресом, результат такой:

 "Команда 'lesspipe' доступна в следующих местах
 * /bin/lesspipe
 * /usr/bin/lesspipe
Команда не может быть найдена, потому что '/bin:/usr/bin' не включен в переменную среды PATH.
lesspipe: команда не найдена
Команда 'dircolors' доступна в следующих местах
 * /bin/dircolors
 * /usr/bin/dircolors
Команда не может быть найдена, потому что '/usr/bin:/bin' не включен в переменную среды PATH.
dircolors: команда не найдена" 

Но у меня нет доступа к командам системы Ubuntu. У меня нет никаких идей, как решить эту проблему. Спасибо и всего наилучшего.

Это не похоже на проблему с UFW, это похоже на проблему с вашей оболочкой. У вас есть протокол сеанса терминала, где вы запускали ufw, который показывает, что именно вы запускали и что он говорил?

Ошибки, которые вы видите, означают, что переменная PATH, которая указывает оболочке, где находить исполняемые файлы, либо не установлена, либо отсутствуют критические директории.

Я не уверен, как выполнение ufw могло привести к этому в вашей системе, но если вы сможете войти и выполнить /bin/ufw reset (как root), это отменит все изменения, которые вы сделали, и вернет настройки по умолчанию. Если ваша среда нарушена, это, вероятно, не поможет.

Вы говорите “я открываю другое соединение с моим IP-адресом”, но также “у меня нет доступа к командам системы Ubuntu”. Это означает, что вы все еще можете подключиться к созданной вами виртуальной машине, но когда вы входите, получаете ошибку о ‘lesspipe’ и т.д.?

Если у вас есть команда оболочки, когда вы повторно подключаетесь к виртуальной машине, можете ли вы выполнить echo $PATH? echo — это встроенная команда в оболочке, поэтому она не нуждается в установке PATH.

Вот как должен выглядеть результат (возможно, есть и другие директории, это просто набор по умолчанию):

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Если ничего не выводится или выводится строка директорий, которая не содержит /usr/bin и /bin, попробуйте выполнить это (первые два символа — точка и пробел) . /etc/environment. Это не должно ничего выводить, но это установит PATH в вашей оболочке обратно на системный по умолчанию и позволит вам запускать команды.

Если это сработает, вы можете выполнить . ~/.bashrc. Это также не выведет ничего, но должно правильно настроить вашу оболочку. Это не постоянная настройка, вам нужно будет сделать это снова, если вы выйдете из оболочки и войдете снова, но это должно устранить немедленные ошибки, чтобы вы могли увидеть, что пошло не так.

Ответ или решение

Проблема, с которой вы столкнулись, скорее всего связана с настройками вашей оболочки, а не непосредственно с UFW. Когда вы настроили UFW и подтвердили, что хотите включить его, у вас возникли проблемы с доступом к командной строке. Вероятно, переменная окружения PATH была сброшена или неверно настроена, что и вызывает ошибки при попытке выполнить команды.

Вот шаги, которые помогут вам восстановить доступ к системе и исправить настройки:

  1. Подключение к вашему экземпляру:
    Если вы все еще можете подключиться к вашему экземпляру через SSH, сделайте это. Если вы видите ошибки, как те, что вы описали, это означает, что PATH не настроен должным образом.

  2. Проверка переменной PATH:
    Выполните следующую команду для проверки переменной окружения PATH:

    echo $PATH

    Если она не возвращает ничего или не включает директории /bin и /usr/bin, это подтверждает проблему.

  3. Восстановление переменной PATH:
    Попробуйте выполнить следующую команду для восстановления переменной PATH:

    . /etc/environment

    Эта команда не даст никакого вывода, но должна восстановить настройки.

  4. Проверка работы оболочки:
    После этого снова проверьте PATH:

    echo $PATH

    Должно увидеть что-то, похожее на следующее:

    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
  5. Загрузка конфигураций:
    Чтобы полноценного восстановить настройки вашей оболочки, выполните:

    . ~/.bashrc

    Это также не даст вывода, но должно загрузить настройки вашей оболочки.

  6. Проверка UFW:
    После восстановления доступа вы можете проверить состояние UFW и, если это необходимо, сбросить его с помощью следующей команды:

    sudo ufw reset

    Это уберет все настройки и вернет UFW к состоянию по умолчанию.

  7. Настройка UFW заново:
    Заново настройте UFW, убедившись, что порт SSH (обычно 22) открыт, прежде чем включать его снова:

    sudo ufw allow ssh
    sudo ufw allow 3306
    sudo ufw enable
  8. Перезагрузка и тестирование:
    После выполнения всех команд, попробуйте выйти из сеанса и снова подключиться по SSH, чтобы убедиться, что все работает правильно.

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

Оцените материал
Добавить комментарий

Капча загружается...