Как использовать имя динамического DNS в имени пользователя MySQL? - PullRequest
3 голосов
/ 08 января 2012

У меня есть сервер в больших плохих интернетах, и я хочу запустить клиент mysql в моей домашней системе для подключения к нему. По очевидным причинам безопасности я хочу, чтобы сервер MySql разрешал подключаться только моему IP-адресу. У меня есть учетная запись dyndns.org, которая отслеживает мой текущий IP-адрес. Comcast может изменить мой IP-адрес в любое время.

поэтому я создаю пользователя следующим образом:

CREATE USER 'user'@'mememe.dyndns.org' IDENTIFIED BY 'changeme';
GRANT ALL PRIVILEGES ON mydata TO 'user'@'mememe.dyndns.org';

Поэтому, когда я пытаюсь подключиться к этому серверу из моей домашней системы, я получаю:

ERROR 1130 (HY000): Host 'c-98-234-122-18.hsd1.ca.comcast.net' is not allowed to connect to this MySQL server

Конечно, имя хоста, которое видит MySQL, - это то, что RDNS ищет для IP-адреса. Я хочу, чтобы он распознал имя dyndns.org. Есть ли способ сделать это?

Если нет способа сделать это, означает ли это, что я вынужден создавать имена пользователей с подстановочными знаками или определенными IP-адресами в них?

Ответы [ 2 ]

4 голосов
/ 08 января 2012

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

  1. Пользователь подключается к MySQL
  2. MySQL разрешает подключение IP к имени хоста (c-98-234-122-18.hsd1.ca.comcast.net)
  3. MySQL ищет этот кортеж (user, hostname) для привилегий

MySQL никогда не ищет «mememe.dyndns.org».

3 голосов
/ 08 января 2012

Проблема в том, что имя хоста comcast - это каноническое имя обратного просмотра этого IP, а не вашего DynDNS. То, что вы хотите сделать, может быть вообще невозможно в MySQL.

Однако, если у вас есть собственный сервер, как насчет решения этой проблемы под другим углом - разрешить соединения с любого IP из mySQL, но использовать брандмауэр вашего сервера для фильтрации на основе IP? Полноценный продукт Firewall может иметь больше возможностей для чего-то подобного.

В этом блоге показан, например, способ обновления записей iptables с динамических DNS-хостов. Может быть, это начало. В противном случае поисковые запросы, такие как «Linux Firewall Dyndns» или «iptables dyndns», могут найти решение.

Возможно, стоит также задать отдельный вопрос по Serverfault по этому поводу.

...