MySQL предупреждение «IP-адрес не может быть разрешен»


36

Я установил MySQL Master / Slave и заметил следующие предупреждения в файлах журнала mysql на обоих серверах:

[Warning] IP address 'xxx.xxx.xxx.xxx' could not be resolved: Name or service not known

Я проверил, и DNS-поиски работают нормально, и большинство из этих IP-адресов из Китая.

Я планирую ограничить доступ через порт 3306 на брандмауэре, но не могли бы вы помочь мне понять, что они пытаются сделать. Они просто пытаются подключиться к серверу MySQL. Где я могу посмотреть некоторые подробности.

Благодарность

Ответы:


48

Когда вы создаете пользователя username@example.comMySQL, MySQL должен выполнить обратный поиск для каждого подключенного к нему IP-адреса, чтобы определить, являются ли они его частью example.com.

Конечно, нет никаких ограничений на создание обратных поисков, поэтому я вполне могу попросить моего провайдера установить обратный поиск для моего IP-адреса, google.comесли я хочу ... или example.comесли я случайно узнаю, что это есть у пользователей в вашей базе данных , Это не позволит мне войти, поскольку MySQL затем выполняет прямой поиск в возвращенном домене, чтобы убедиться, что он совпадает с тем же IP-адресом, который подключается.

Вы можете включить эту опцию с skip_name_resolveв вашей my.cnf. Есть много веских причин для этого .

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

У вас также есть злоумышленники из Китая, пытающиеся проникнуть в вашу базу данных. Это должно быть вашим главным приоритетом.


1
может быть какая-то проблема для localhost ?
Малайский М

Я не думаю, что здесь есть дыра в безопасности, потому что, если разрешен обратный поиск для какого-либо IP-адреса localhost, MySQL все равно выполнит прямой просмотр, localhostчтобы убедиться, что он соответствует исходному IP-адресу. Однако, как и во всех вопросах, связанных с безопасностью, не просто доверяйте мне в этом. И все же лучше отключить разрешение имен в вашем конфиге.
Ладададада

13

Я думаю, что это очень и очень плохая идея выставлять свои серверы баз данных прямо в Интернете.

Если вы выполняете репликацию на удаленный хост и для этого вам нужен доступ в Интернет, я предлагаю вам настроить VPN между двумя сетями и привязать свои серверы MySQL для прослушивания только локальной сети.

Если оба ваших хоста находятся в одной и той же локальной сети, вы можете безопасно привязать свои серверы mysql к этой сети.


1

Это тоже попало на Amazon RDS. Я хотел подключиться только к моему тестовому экземпляру базы данных (ниже определенно не рекомендуется для производственных баз данных):

Группы безопасности в Amazon RDS работают немного иначе, чем обычные правила брандмауэра для экземпляров EC2. Если вы открываете порт MySQL для определенного IP-адреса, IP-адрес должен быть распознан вашим сервером MySQL. Если нет, то в соединении отказано. Временное решение - создать новую группу безопасности, т. Е. С anyone_can_connect_to_mysqlпомощью всего одного элемента - разрешить входящее соединение MySQL / Aurora в любом месте из Интернета и присоединить эту группу безопасности к вашей базе данных.

Inbound
-----------------------------------------
| MYSQL/Aurora | TCP | 3306 | 0.0.0.0/0 |
-----------------------------------------

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


0

При удаленном подключении к Mysql я получил ошибку. У меня было это предупреждение в /var/log/mysqld.log:

[Warning] IP address 'X.X.X.X' could not be resolved: Temporary failure in name resolution

Я просто добавил эту строку в /etc/hostsфайл:

X.X.X.X some_name

Проблема решена! без использования skip-name-resolve, это вызвало некоторые ошибки в моем локальном приложении при подключении к MySQL.


Более года назад, но вам пришлось перезапустить MySQL? Это не сработало для меня.
Ejoso

Вы этого не сделаете, так как файл hosts управляется на клиенте, а не на сервере MySQL.
leeman24
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.