Как вы знаете, держать порт 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
).
редактировать Еще несколько пояснений в качестве ответа на ваши комментарии:
username@mysqlhost.com
является просто заполнителем, замените его именем пользователя вашей учетной записи оболочки и IP-адресом или именем хоста сервера MysQL. С вашего локального компьютера это точно не будет localhost
хотя. Эта часть совсем не касается вашего имени пользователя MySQL, потому что SSH не знает о MySQL. 127.0.0.1
и используйте имя пользователя root
. Хотя вы работаете с удаленного хоста, для сервера MysQL соединение, похоже, исходит от localhost
, поэтому права доступа должны быть установлены соответствующим образом.