Назад | Перейти на главную страницу

Как я могу подключиться к MySQL удаленно и при этом сохранить его в безопасности?

Как вы знаете, держать порт 3306 MySQL открытым небезопасно. Однако я хотел бы использовать хорошую программу администрирования MySQL вместо phpMyAdmin, которая требует, чтобы был открыт порт 3306.

Конечно, я могу разрешить подключаться к порту 3306 только своему IP-адресу с помощью ipfw. Проблема в том, что мой IP-адрес меняется каждые 24 часа, поэтому мне пришлось бы добавить новое правило для каждого IP-адреса.

Нет ли лучшего способа обезопасить MySQL и по-прежнему использовать удаленное соединение?

Да, с перенаправлением портов SSH.

На вашем локальном компьютере введите команду

ssh -L 3306:127.0.0.1:3306 username@mysqlhost.com

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

Если вы используете сервер MySQL на локальном компьютере, порт 3306 уже будет занят, но вы можете просто использовать другой порт для пересылки (13306:127.0.0.1:3306), а затем укажите свой инструмент администратора на этот другой порт.

(Подробнее с man ssh).


редактировать Еще несколько пояснений в качестве ответа на ваши комментарии:

  1. Вы будете использовать эту команду на своем локальном компьютере, где вы обычно работаете, непосредственно перед тем, как вы захотите выполнить некоторую административную работу с вашей базой данных. Что нужно сделать, так это создать туннель через SSH, который перенаправляет весь трафик, идущий на порт на вашем локальном компьютере, на другой порт на другом компьютере.
  2. В этом случае туннель заканчивается на сервере MySQL, с которым вы связываетесь напрямую через SSH. Часть username@mysqlhost.com является просто заполнителем, замените его именем пользователя вашей учетной записи оболочки и IP-адресом или именем хоста сервера MysQL. С вашего локального компьютера это точно не будет localhost хотя. Эта часть совсем не касается вашего имени пользователя MySQL, потому что SSH не знает о MySQL.
  3. Если вы работаете в своей базе данных как root, вы подключите свой инструмент администратора MySQL к порту 3306 на хосте. 127.0.0.1 и используйте имя пользователя root. Хотя вы работаете с удаленного хоста, для сервера MysQL соединение, похоже, исходит от localhost, поэтому права доступа должны быть установлены соответствующим образом.
  4. Перенаправление / туннелирование портов SSH - чрезвычайно мощный инструмент. Вы обязательно должны прочитать об этом больше.