MySQL'in adres adresini 0.0.0.0 olarak ayarlamak ne kadar kötü?


35

Uzak bir sunucunun, şu anda bir Linux sunucusunu bir web uygulamasıyla paylaşan bir MySQL örneğine erişmesine izin vermeye çalışıyorum. Göre belgelerin tek yolu (doğru anlayamıyorum sürece) bu mümkün olurdu olduğunu bağlama-adres yönergesi olarak ayarlanır 0.0.0.0 MySQL sonuçları geçerli bir kullanıcı üretebilir herhangi IP'den erişim sağlayan.

Yani, iki soru:

  1. Bu güvenlik için ne kadar zararlı olurdu?
  2. MySQL ile hem yerel hem de uzaktan etkileşime izin vermek için daha iyi bir yaklaşım var mı?

Yanıtlar:


36

Adres ayarını biraz yanlış anladığınızı düşünüyorum . Bunlar MySQL'in bağlantıları dinleyeceği yerel adresler. Varsayılan ayar, tüm arayüzler olan 0.0.0.0'dır. Bu ayar, yalnızca localhost için 127.0.0.1 belirtmediğiniz sürece, hangi IP'lerin sunucuya erişebileceğini kısıtlamaz.

Belirli kullanıcıları kısıtlamak gerekiyorsa gelen , belirli IP adresleri oluşturmak / böyle hibe kullanıcılar tarafındanCREATE USER 'bobdole'@'192.168.10.221';


+1 ancak yalnızca varsayılan dinleme adresinin MySQL'in nasıl yüklendiğine bağlı olarak değiştiğine dikkat edin.
John Gardeniers

Teşekkürler Doug, bu durumda varsayılanın benim yerel sunucum olduğunu düşünüyorum, ancak belirli bir veritabanındaki kullanıcıların hala IP tarafından kısıtlandığını bilmek güzel.
jonathanatx

@ jonathanatx MySQL varsayılan adres adresi (5.6'da ve bildiğim kadarıyla) 0.0.0.0. Her ne kadar birçok kurulum için sadece yerel olarak bağlamanın en iyi seçenek olduğunu düşünüyorum. Kimsenin yürümesini istemiyorsan, kapıyı açmayın.
ebyrob

1

a. O kötü. Her veritabanında kullanıcı erişimini ip ile sınırlayabilmenize rağmen, tüm bağlantıların yerel olarak yapılmasının daha güvenli olduğunu düşünüyorum. Sunucularımda MySQL'in yalnızca yerel bağlantıları kabul etmesine izin veriyorum, varsayılan yapılandırma olarak 127.0.0.1. Veritabanına uzaktan erişmek için tek yapmanız gereken, veri tabanına bağlanmadan önce bir ssh tüneli oluşturmak ve ardından yerel olarak bağlanmaktır. PHP ile kodlama yapıyorsanız, bunu yapmak oldukça kolaydır. Eğer bir masaüstü uygulamasını Linux üzerinde kolayca yapabiliyorsanız (ssh tüneline bakınız), Windows'da normalde benim için tüneli yapmak için Putty gibi bir program kullanıyorum.


7
Bu çok çılgınca. Bunu yapmanın standart yolu, yalnızca belirli ana bilgisayar adlarından veya IP'lerden erişilebilen kullanıcılar oluşturmaktır. Her web sunucusunu bir veritabanına SSH tüneli yapmaya zorlamak, yapılması gerekenden çok daha fazla iş demektir.
TheLQ

3
Web sunucunuz ve veritabanı sunucunuz her zaman aynı cihaz değildir. Bağlantıların internetten girmesine kesinlikle izin vermeyin, kesinlikle .. ama MySQL ağ erişimine sahip çözümler üretmenin güvenli yolları var.
Shane Madden

1
Küçük bir kurulum (bir db, tek www) için, belki SSH tünel yapmak. Gerçek bir kurulum için vpns ve güvenlik duvarlarınız sizi koruyacaktır, bu nedenle uzaktan erişime izin vermek için 0.0.0.0 ile açılacaksınız.
Sonia Hamilton,

2
SSH tüneli fikrinin delice olduğunu düşünen herkes için, MySQL trafiğinin büyük bölümünün açık olduğunu düşünün. Herhangi bir nedenden dolayı güvenilmeyen bir ağa (yani İnternet) bağlanmanız gerekiyorsa, SSH'yi veya bir VPN üzerinden yapmayı düşünün. Neden bahsettiğimi görmek istersen Wireshark veya başka bir paket dinleyiciyi ateşle.
Brad

2
@Brad MySQL şifrelemeyi desteklediğinden doğru değildir.
Marti Markov
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.