MySQL uyarısı “IP adresi çözülemedi”


36

MySQL Master / Slave kurulumum var ve her iki sunucudaki mysql log dosyalarında aşağıdaki uyarıları gördüm:

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

Kontrol ettim ve DNS aramaları iyi çalışıyor ve bu IP'lerin çoğu Çin'den geliyor.

Güvenlik duvarındaki 3306 numaralı limana erişimi sınırlamayı planlıyorum, ancak ne yapmaya çalıştıklarını anlamama yardımcı olabilir misiniz? Sadece MySQL sunucusuna bağlanmaya mı çalışıyorlar? Daha fazla ayrıntı için nereye bakabilirim.

Teşekkürler

Yanıtlar:


48

Bir MySQL kullanıcısı oluşturduğunuzda, MySQL'in username@example.comparçası olup olmadıklarını belirlemek için ona bağlı her IP adresinde geriye doğru arama yapmak zorundadır example.com.

Tabii ki, geriye doğru arama oluşturma konusunda herhangi bir kısıtlama yoktur, bu yüzden, sağlayıcımdan IP adresimin geriye doğru aranmasını google.comistediğimde olmasını isteyebilir ya da example.comveritabanınızdaki kullanıcıların ne olduğunu bilsem de yapabilirim. . Bu, MySQL'in bağlandığı IP adresiyle aynı olduğundan emin olmak için geri gönderilen alan üzerinde ileriye doğru arama yaptığı için içeri girmeme izin vermiyor.

Bunu skip_name_resolveiçinde ile kapatabilirsin my.cnf. Bunu yapmanın birçok iyi nedeni var .

Bu hatayı almanın nedeni, söz konusu IP adresinin hiç geriye doğru arama yapmamasıdır.

Ayrıca, Çin'den kötü niyetli saldırganların veritabanına zorla girmelerini zorluyorsun. Bu senin önceliğin olmalı.


1
localhost için herhangi bir problem olabilir mi?
Malay M,

Orada bir güvenlik açığı olduğunu sanmıyorum, çünkü çözülmüş bir IP adresi için geriye doğru arama yapılması durumunda localhost, MySQL localhostorijinal IP adresiyle aynı olduğundan emin olmak için ileriye doğru arama yapmaya devam edecektir . Ancak, güvenlikle ilgili her konuda olduğu gibi, sadece bu konuda bana güvenmeyin. Ve hala config içinde isim çözümleme kapatmak daha iyidir.
Ladadadada

13

Veri tabanı sunucularınızı doğrudan internette ortaya çıkarmak çok kötü bir fikir.

Uzak bir ana bilgisayara çoğaltıyorsanız ve bunu başarmak için internet erişimine ihtiyacınız varsa, iki ağ arasında bir VPN kurmanızı ve MySQL sunucularınızı yalnızca yerel ağı dinlemek için bağlamanızı öneririm.

Her iki ana makineniz de aynı yerel ağdaysa, mysql sunucularınızı o ağa bağlamak güvenli olacaktır.


1

Sadece Amazon RDS'de de buna yakalandım. Yalnızca test veritabanı örneğime bağlanmak istedim (aşağıdaki üretim veritabanları için kesinlikle önerilmez ):

Amazon RDS'deki güvenlik grupları, EC2 örnekleri için normal güvenlik duvarı kurallarından biraz farklı çalışır. MySQL portunu belirli bir IP için açarsanız, IP MySQL sunucunuz tarafından tanınmalıdır. Değilse bağlantı reddedilir. Geçici çözüm, yeni bir güvenlik grubu oluşturmak, yani anyone_can_connect_to_mysqlsadece tek bir öğeyle - İnternet üzerinden herhangi bir yerdeki MySQL / Aurora bağlantılarına izin vermek ve bu güvenlik grubunu veritabanınıza eklemek.

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

Bu, IP kontrolünü istemci bağlantılarından kaldırır, böylece bağlantı kurmakta özgürsünüz. Çözüm anyone_can_connect_to_mysqlsorunları sona erdiğinde , politikayı veritabanından çıkarmayı unutmayın .


0

Mysql'e uzaktan bağlanırken bir hatayla karşılaştım. Bu uyarıda bulundum /var/log/mysqld.log:

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

/etc/hostsDosyaya şu satırı ekledim :

X.X.X.X some_name

Sorun çözüldü! kullanmadan skip-name-resolve, mysql'ye bağlanırken yerel uygulamamda bazı hatalara neden oldu.


Bir yıldan fazla bir süre önce, ancak mysql'yi yeniden başlatmak zorunda mıydınız? Bu benim için işe yaramadı.
Ejoso

Anasistem dosyası istemcide mysql sunucusunda yönetilmediğinden, bunu yapmazsınız.
leeman24
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.