Удаленное подключение к базе данных не удалось, плагин аутентификации ” не может быть загружен через туннель Cloudflare.

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

У меня есть самостоятельно хостируемый сервер, который я использую для некоторых личных проектов, таких как вебсайты, приложения и так далее. Я пытаюсь внедрить базу данных (mariadb) и на данный момент пытаюсь разрешить удаленное подключение к ней. Я дам вам полное описание моих шагов и проблемы, с которой я столкнулся, в надежде, что мы сможем ее решить. С учетом этого я сделал следующее:

Я включил переадресацию портов на моем маршрутизаторе, выделив порт 3306 для базы данных. Я уже сделал это для 80, 22 и 443, и это работает отлично правила переадресации портов 🙂

Второе, что я сделал, это изменил настройки брандмауэра для порта 3306:
sudo ufw status 3306 (v6) ALLOW Anywhere (v6) 3306/tcp ALLOW Anywhere 3306 ALLOW Anywhere

Затем я создал пользователя базы данных для удаленного подключения: привилегии пользователя:
GRANT ALL PRIVILEGES ON . TO remoteDefaultUser@% (я изменю привилегии позже, это было сделано только для начала)

Также у меня есть этот пользователь локально: remoteDefaultUser | % remoteDefaultUser | localhost

Теперь, когда это готово, я открыл туннель Cloudflare к моему серверу и сопоставил порт localhost:3366 своего клиента с этим туннелем. [сторона клиента]
cloudflared access tcp --hostname mysql.mydomain.com --url localhost:3366 INF Start Websocket listener host=localhost:3366

Теперь я пытаюсь подключиться к своей базе данных из MySql workbench Подключение MySql

Я получаю следующую ошибку: ошибка

Я использую mysql_native_password и я уверен, что этот плагин установлен на моем сервере: show plugins; выдало:

Name | Status | Type | Library | License mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL

Мой пользователь (remoteDefaultUser установлен на использование родного пароля): плагины

У меня есть ssl на моей базе данных, но я не требую его, так как: require_secure_transport=OFF

Мой mariadb настроен на прием удаленного доступа: (из 50-server.cnf) bind-address: 0.0.0.0

Мой сервер работает на debian 12, 32-битной версии, а мой клиент (MySql workbench) находится на Windows 10 в текущей конфигурации.

Теперь я не знаю, как исправить эту проблему. Мне не удалось удачно найти решение, и у меня мало знаний о сетях. На самом деле, я учусь программированию и только начал самостоятельно изучать сети. В конечном итоге мой план – разработать вебсайт, а также мобильное и настольное приложение, надежно подключенное к одной и той же базе данных. Я считаю, что такой практический подход – лучший способ учиться.

Мне также интересно, является ли это лучшим способом надежного подключения к удаленной базе данных.

Пока я раз за разом удаляю туннели и создаю новые, изменяю привилегии пользователей и ищу подсказки в интернете. Это руководство, которое я использовал для создания туннеля: https://developers.cloudflare.com/cloudflare-one/tutorials/mysql-network-policy/#:~:text=on%20your%20account-,Create%20a%20Cloudflare%20Tunnel,Select%20Create%20a%20tunnel.

Если вам нужна какая-либо дополнительная информация, я с радостью ее предоставлю.

Спасибо за ваше время и помощь заранее!

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

Решение проблемы с удаленным подключением к базе данных через Cloudflare Tunnel

Введение

Вы настроили сервер с базой данных MariaDB для удаленного подключения, однако столкнулись с ошибкой, связанной с загрузкой плагина аутентификации при использовании Cloudflare Tunnel. Давайте разберем ваш процесс настройки и выявим возможные причины проблемы, а также предложим пути ее решения.

Проверка сетевой конфигурации

  1. Порт и брандмауэр:

    • Вы уже правильно настроили переадресацию порта 3306 на вашем роутере и открыли этот порт в настройках брандмауэра с помощью команды sudo ufw status. Однако убедитесь, что брандмауэр также правильно настроен для обработки TCP-трафика на этом порту:
      sudo ufw allow 3306/tcp
  2. Настройка MySQL/MariaDB:

    • Конфигурационный файл 50-server.cnf с bind-address = 0.0.0.0 указывает серверу принимать подключения на всех доступных IP-адресах. Это правильный подход для разрешения удаленного доступа.

Настройка пользователя для удаленного доступа

Ваши команды GRANT и данные о пользователе указывают на правильное создание учетной записи. Убедитесь, что вы также перезагрузили привилегии:

FLUSH PRIVILEGES;

Проверка на наличие плагина mysql_native_password также подтверждает, что он установлен. Однако важно проверить, действительно ли ваш пользователь настроен на использование этого плагина.

Cloudflare Tunnel и ошибки подключения

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

  1. Неправильная настройка Cloudflare Tunnel:

    • Убедитесь, что команда для создания туннеля точно указывает на localhost и порт, который вы используете для MariaDB. Возможно, стоит попробовать запускать Cloudflare Tunnel с параметрами отладки, чтобы увидеть более подробную информацию о том, что происходит.
  2. Проблема с клиентской частью:

    • Если вы используете MySQL Workbench, убедитесь, что вы прописали правильный хост (например, mysql.mydomain.com) и что установлен правильный порт (3306). При этом попробуйте временно отключить любые параметры SSL для упрощения диагностики.
  3. Опции подключения:

    • Проверьте настройки MySQL Workbench на предмет метода аутентификации. Вы можете попробовать вручную выбрать mysql_native_password в параметрах подключения.

Общие рекомендации по безопасности

Поскольку вы планируете разрабатывать веб-сайт и приложения, важно задать правильный уровень безопасности:

  • Использование VPN: Рассмотрите возможность использования VPN между вашей клиентской машиной и сервером, поскольку это обеспечит дополнительный уровень безопасности.
  • Изоляция базы данных: Подумайте о том, чтобы ограничить доступ к базе данных только определенными IP-адресами или применять другие меры безопасности.
  • Резервные копии: Регулярно делайте резервные копии своей базы данных.

Заключение

При решении вашей проблемы с удаленным подключением к базе данных MariaDB через Cloudflare Tunnel рекомендуем проверять конфигурацию на каждом этапе и действительно убедиться в корректности настройками. Если у вас остались вопросы или необходима дополнительная помощь, пожалуйста, не стесняйтесь задавать их. Желаем вам удачи в ваших проектах и обучении в области программирования и сетевых технологий!

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

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