Удалённый доступ к MySQL: как настроить безопасное подключение к базе

Удалённый доступ к MySQL: как настроить безопасное подключение к базе

Удалённое подключение к MySQL на VPS может понадобиться, если вы хотите управлять базой с другого сервера, запускать внешние приложения или подключать панель администратора на локальном устройстве. Но при открытии доступа важно не только обеспечить работоспособность, но и защитить базу от взлома. Ниже — пошаговая инструкция, как сделать это правильно.

Введение

MySQL — одна из самых популярных систем управления базами данных, которая используется в сайтах, приложениях, CRM и других проектах. Чаще всего MySQL-сервер работает локально на том же сервере, что и сайт. Но бывают ситуации, когда к базе данных нужно подключиться удалённо — например, с другого сервера, из клиентского приложения, с ноутбука разработчика или через аналитический инструмент. В таких случаях требуется открыть удалённый доступ к MySQL.

Однако просто открыть порт и разрешить соединения — недостаточно. Это создаёт потенциальную брешь в безопасности: база данных может стать доступной для сканеров, ботов и злоумышленников. А если не ограничить доступ по IP и не задать строгие права, можно потерять данные или даже весь проект.

В этой статье мы пошагово разберём, как правильно настроить удалённый доступ к MySQL на VPS — с учётом всех требований безопасности. Вы узнаете, какие изменения нужно внести в конфигурацию, как создать пользователя только для удалённых подключений, как настроить фаервол и подключаться к базе через SSH-туннель. Всё это пригодится как новичкам, так и опытным администраторам, которым важно сохранить контроль над своим сервером.

Аренда VPS/VDS — от ₽219/месяц

Почему выбирают VPS от AdminVPS:

✓ Дешевле физического сервера

✓ Более гибкий и мощный, чем обычный хостинг

✓ Бесплатная защита от DDoS и техподдержка 24/7

✓ Масштабируется под любые задачи

Виртуальный сервер VPS/VDS — ваш личный сервер для сайтов, магазинов, ботов и других проектов.

Шаг 1. Разрешаем удалённые подключения в конфигурации MySQL

Откройте основной конфигурационный файл MySQL. Чаще всего это:

/etc/mysql/my.cnf

или

/etc/mysql/mysql.conf.d/mysqld.cnf

Найдите строку

bind-address = 127.0.0.1

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

bind-address = 0.0.0.0

Так MySQL начнёт слушать все сетевые интерфейсы.

После изменения конфигурации перезапустите службу MySQL с помощью команды:

sudo systemctl restart mysql

Шаг 2. Открываем порт 3306 только для нужных IP

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

Если используется UFW, выполните команду:

sudo ufw allow from IP_КЛИЕНТА to any port 3306

Для iptables добавьте правило:

iptables -A INPUT -p tcp -s IP_КЛИЕНТА --dport 3306 -j ACCEPT

и сразу после этого:

iptables -A INPUT -p tcp --dport 3306 -j DROP

Так вы разрешите подключение только с нужного IP, а всем остальным заблокируете доступ к порту.

Шаг 3. Создаём ограниченного пользователя в MySQL

Войдите в MySQL под root-пользователем и создайте нового пользователя с доступом к конкретной базе и только с определённого IP.

Пример:

CREATE USER 'clientuser'@'IP_КЛИЕНТА' IDENTIFIED BY 'надежный_пароль';

GRANT SELECT, INSERT, UPDATE, DELETE ON database_name. TO 'clientuser'@'IP_КЛИЕНТА';*

FLUSH PRIVILEGES;

Не давайте пользователю прав на все базы и никогда не используйте root-пользователя для удалённого подключения.

Шаг 4. Проверяем подключение к базе

С удалённого компьютера попробуйте подключиться к серверу командой:

mysql -u clientuser -p -h IP_СЕРВЕРА -P 3306

Если всё настроено правильно, вы попадёте в клиент MySQL и сможете управлять базой.

Шаг 5. Повышаем безопасность соединения

Чтобы минимизировать риски, придерживайтесь следующих рекомендаций:

  • создавайте пользователей только под конкретные IP-адреса;
  • задавайте сложные пароли;
  • ограничивайте привилегии пользователей;
  • не открывайте порт 3306 без фильтрации;
  • используйте VPN или SSH-туннель, если нет нужды держать порт открытым в Интернет;
  • включите шифрование SSL в MySQL, если клиент его поддерживает.

Шаг 6. Альтернатива: подключение через SSH-туннель

Если вы не хотите открывать порт 3306 в Интернет, можно использовать SSH-туннель. На локальной машине выполните:

ssh -L 3307:127.0.0.1:3306 user@IP_СЕРВЕРА

После этого можно подключаться к MySQL по адресу localhost, порт 3307, и соединение будет зашифровано.

Заключение

Удалённый доступ к MySQL требует аккуратной настройки. Самый распространённый путь к проблемам — это полный доступ ко всем базам с любого IP. Вместо этого лучше идти от обратного: разрешать только нужное, ограничивать права, использовать защиту на уровне сети. Если вы работаете на VPS от AdminVPS, все изменения можно внести вручную или через панель управления, а при необходимости быстро восстановить систему из бекапа.

Читайте в блоге:

Loading spinner
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Нужен VPS сервер?

Арендуйте мощный VPS сервер для ваших проектов! Быстрая настройка, высокая производительность и надежная поддержка 24/7. Начните прямо сейчас!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях