Avviso MySQL "Impossibile risolvere l'indirizzo IP"


36

Ho installato MySQL Master / Slave e ho notato i seguenti avvisi nei file di registro mysql su entrambi i server:

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

Ho controllato e le ricerche DNS funzionano bene e la maggior parte di questi IP proviene dalla Cina.

Ho in programma di limitare l'accesso sulla porta 3306 sul firewall, ma potresti aiutarmi a capire cosa stanno cercando di fare. Stanno solo cercando di connettersi al server MySQL. Dove posso cercare qualche dettaglio in più.

Grazie

Risposte:


48

Quando si crea un utente username@example.comMySQL, MySQL deve effettuare una ricerca inversa su ogni indirizzo IP che si connette ad esso per determinare se ne fanno parte example.com.

Naturalmente, non ci sono restrizioni sulla creazione di ricerche inverse, quindi posso tranquillamente chiedere al mio provider di impostare la ricerca inversa per il mio indirizzo IP google.comse voglio ... o example.comse capisco che è quello che hanno gli utenti nel tuo database . Questo non mi lascia entrare, dato che MySQL esegue una ricerca diretta sul dominio restituito per assicurarsi che corrisponda allo stesso indirizzo IP che si sta connettendo.

Puoi disattivarlo con skip_name_resolvenel tuo my.cnf. Ci sono molte buone ragioni per farlo .

Il motivo per cui viene visualizzato questo errore è che l'indirizzo IP in questione non ha alcuna ricerca inversa.

Ci sono anche aggressori malvagi provenienti dalla Cina che cercano di farsi strada forzatamente nel tuo database. Questa dovrebbe essere la tua massima priorità.


1
può esserci qualche problema per localhost ?
Malay M

Non credo che ci sia una falla nella sicurezza perché se una ricerca inversa per qualche indirizzo IP viene risolta localhost, MySQL eseguirà comunque la ricerca localhostdiretta per assicurarsi che corrisponda all'indirizzo IP originale. Tuttavia, come per tutte le cose legate alla sicurezza, non fidarti solo di me. Ed è ancora meglio disattivare la risoluzione dei nomi nella tua configurazione.
Ladadadada,

13

Penso che sia una pessima idea esporre i tuoi server di database direttamente su Internet.

Se stai eseguendo la replica su un host remoto e hai bisogno di un accesso a Internet per raggiungere questo obiettivo, ti suggerisco di configurare una VPN tra le due reti e collegare i tuoi server MySQL per ascoltare solo la rete locale.

Se entrambi i tuoi host si trovano sulla stessa rete locale, sarai sicuro di associare i tuoi server mysql a quella rete.


1

Sono stato catturato da questo anche su Amazon RDS. Volevo solo collegarmi all'istanza del mio database di test (di seguito non è assolutamente raccomandato per i database di produzione):

I gruppi di sicurezza in Amazon RDS funzionano in modo leggermente diverso rispetto alle normali regole del firewall per le istanze EC2. Se apri la porta MySQL per l'IP specifico, l'IP deve essere riconosciuto dal tuo server MySQL. In caso contrario, la connessione viene rifiutata. La soluzione temporanea è quella di creare un nuovo gruppo di sicurezza, ovvero anyone_can_connect_to_mysqlcon un solo elemento: consentire la connessione in entrata MySQL / Aurora ovunque da Internet e collegare questo gruppo di sicurezza al database.

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

Questo rimuove il controllo IP dalle connessioni client in modo da essere libero di connettersi. Non dimenticare di staccare il anyone_can_connect_to_mysqlcriterio dal database una volta risolti i problemi di risoluzione.


0

Durante la connessione a Mysql in remoto, ho ricevuto un errore. Ho ricevuto questo avviso in /var/log/mysqld.log:

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

Ho appena aggiunto questa riga al /etc/hostsfile:

X.X.X.X some_name

Problema risolto! senza usare skip-name-resolve, ha causato alcuni errori nella mia app locale durante la connessione a mysql.


Oltre un anno fa, ma hai dovuto riavviare mysql? Questo non ha funzionato per me.
Ejoso,

Non lo faresti poiché il file hosts è gestito sul client non sul server mysql.
leeman24
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.