MySQL ve MariaDB Güvenliği İçin En İyi İpuçları
Yayınlanan: 2022-01-08Güvenlik, birçok insan için büyük bir endişe kaynağıdır. Bu gönderi, veritabanlarınızı bilgisayar korsanlarından korumak için MySQL ve MariaDB güvenliğini nasıl elde edeceğinize dair on ipucu verecektir. Bu ipuçları şunları içerir: verileri yedekleme, güçlü parolalar kullanma ve erişim ayrıcalıklarını sınırlama.
MySQL ve MariaDB Güvenliği İçin En İyi İpuçları
MySQL ve MariaDB güvenliğini sağlamak için en iyi ipuçları:
Şifresiz Kullanıcıları Kaldır
Veritabanınızda şifresiz kullanıcılarınız varsa, bunları kaldırmak en iyisidir. Bu, birinin veritabanınıza girme olasılığını azaltmaya yardımcı olacaktır. Bu kullanıcıları kaldırmak için aşağıdaki sorguyu kullanabilirsiniz:
Kullanıcıların yalnızca yerel ana bilgisayardan erişimi olup olmadığına bakılmaksızın, herhangi bir olumsuz komutun çalıştırılmasını durdurmak için silinmeleri gerekir. Ayrıca, zayıf parolalar başlı başına bir güvenlik riskidir.
Veritabanlarınızda kullanıcı oluştururken her zaman güçlü parolalar kullanmalısınız. Zayıf parolaların bilgisayar korsanları tarafından kırılması daha kolaydır, bu da veri tabanınıza erişmelerine ve bunu yönetirlerse parolayı mahvetmelerine neden olabilir. Otomatik bir şifre üreticisi kullanmak, sizin için kırılması daha zor olan daha güçlü şifreler oluşturmanıza yardımcı olacaktır.
Ayrıca, kullanıcılarınız için iki faktörlü kimlik doğrulamayı kullanmayı düşünmelisiniz. Bu, veritabanına giriş yapmak için genellikle telefonlarına gönderilen ekstra bir kod gerektirir. Bu, yalnızca kullanıcı adınıza ve şifrenize sahip olan birinin erişim elde etmesini çok daha zor hale getirir.
Uzaktan Erişimi Sınırla
Veritabanınıza uzaktan erişim vermeniz gerekmiyorsa, onu sınırlamak en iyisidir. Bu, birisinin uzak bir konumdan veritabanınıza girme olasılığını azaltmaya yardımcı olacaktır.
Neyse ki, MySQL ve MariaDB'nin en son sürümleri, aksi belirtilmedikçe, veritabanına uzaktan erişimi otomatik olarak sınırlar. Ancak, durumun böyle olduğundan emin olmak için güvenlik ayarlarınızı yine de kontrol etmelisiniz.
Tüm kullanıcıların MySQL'e yalnızca tam olarak istediğiniz ana bilgisayarlarla bağlanmasını sağlamak da iyi bir fikirdir. Örneğin, bu ([e-posta korumalı]) kullanılarak yapılabilir.
Test Veritabanını Kaldır
MySQL veya MariaDB'yi kurduğunuzda, otomatik olarak bir test veritabanı oluşturulur. Bu veritabanı, yanlış ellere düşerse gerçek veritabanlarınıza girmek için kullanılabilecek veriler içerir. Kötü amaçlarla kullanılmaması için bu veritabanını kaldırmak en iyisidir.
Bu test veritabanı ayrıca veritabanı sunucusunda gereksiz zorlamalara neden olur. Yalnızca veritabanı test uzmanları tarafından sorguları test etmek için kullanılır, bu nedenle veritabanlarınızın işlevselliğini etkilemeden kaldırılabilir.
MySQL'e Erişimi Gizleyin
İnsanların veritabanınızın var olduğunu bilmesini istemiyorsanız, erişimini engelleyebilirsiniz. Bu, birisinin veritabanınızı bulmasını ve hacklemesini zorlaştıracaktır.
Erişimi gizlemek, trafiğinizi izleyen herkesin MySQL veya MariaDB tarafından hangi bağlantı noktalarının kullanıldığını belirlemesini de zorlaştırır.
MySQL'in 3306 numaralı bağlantı noktasında çalıştığı iyi bilinirken, 'root' süper kullanıcının adıdır. my.cnf dosyasını düzenleyerek ve 'port' değişkenini değiştirerek bunu düzeltebilirsiniz.
Yapılandırma Dosyalarınızı Güvende Tutun
Herhangi bir uygulamada olduğu gibi, MySQL veya MariaDB için yapılandırma dosyalarınızın güvenliğini sağlamak önemlidir. Bu dosyalar, parolalar ve kullanıcı verileri gibi hassas bilgileri içerir. Bu dosyaların güvenliğini sağlamak, herhangi birinin sunucularınıza erişmesi durumunda bu bilgilere erişmesini önlemeye yardımcı olacaktır.
Ağ güvenliği
Ağınızın yanı sıra sunucuların kendilerinin güvenliğini sağlamak da önemlidir. Bu, birisinin uzak bir konumdan veritabanınıza girme ve üzerinde kötü niyetli komutlar çalıştırma olasılığını azaltmaya yardımcı olacaktır.
Sağlamanız gereken ilk şey, MySQL'e ağ üzerinden değil, yalnızca yerel bir bağlantı üzerinden erişilmesidir. Bunu bir Unix soketi aracılığıyla yapabilirsiniz. my.cnf'ye 'atlama ağı' yazın. tüm TCP/IP iletişimini durdurmak için.

Belirli IP adreslerinden veya aralıklarından MySQL'e erişimi engellemek için güvenlik duvarınızı da kullanabilirsiniz. Bu, birisinin uzak bir konumdan veritabanınıza girme olasılığını azaltmaya yardımcı olacaktır.
Denetim Eklentilerini Kullan
Veritabanınızda neler olup bittiğini takip etmek için denetim eklentilerini de kullanabilirsiniz. Bunlar, birinin veritabanınıza girip girmediğini veya bununla ilgili şüpheli bir şey olup olmadığını belirlemenize yardımcı olur.
Bugün çevrimiçi olarak sunulan bu eklentiler için birçok ücretsiz ve ücretli seçenek var. MySQL Enterprise, kuruluşunuzda zaten kullanılıyorsa, MySQL Enterprise Audit iyi bir seçenektir. MariaDB'nin ayrıca kendi denetim eklentisi vardır.
Bu eklentilerin tümü, veritabanınızı şüpheli etkinlikler için izleme konusunda harika bir iş çıkarır. Olağandışı bir şey algılandığında size uyarı bile gönderebilirler, böylece günlükleri her seferinde manuel olarak kontrol etmek zorunda kalmazsınız.
LOCAL INFILE VERİLERİNİ YÜKLE'yi devre dışı bırak
Birinin veritabanınıza erişmesini engellemenin başka bir yolu da MySQL ve MariaDB'deki LOCAL özelliğini devre dışı bırakmaktır. Bu komut, yerel bir dosyadan veri dosyaları yüklemenize izin verir, ancak aynı zamanda, özellikle şifrelenmemişlerse, bir güvenlik riski oluşturur. Bu işlevi devre dışı bırakmak için my.cnf'de local-infile=0 ayarlayın.
Dosya Ayrıcalıkları
MySQL ve MariaDB dosyalarınız için doğru dosya ayrıcalıklarını ayarlamak da önemlidir. Bu, yalnızca yetkili kullanıcıların bunlara erişebilmesini sağlayacaktır. Bu dosyalar üzerinde uygun izinleri ayarlayarak bunu yapabilirsiniz.
Örneğin, tüm MySQL dosyalarınızın sahibini 'mysql' ve grubu 'mysql' olarak ayarlayabilirsiniz, diğer tüm kullanıcıların erişimi reddedilir. Bu, yalnızca doğru izinlere sahip kullanıcıların MySQL dosyalarınıza erişmesini sağlayacaktır.
SSL ve Aktarılan Verilerin Şifrelenmesi
MySQL veya MariaDB'yi SSL etkinleştirilmiş olarak çalıştırıyorsanız, sunucunuzda gerekli sertifikaların kurulu olması önemlidir. Bu yapılmazsa, herkes veritabanınız ve istemcileri arasında gönderilen bilgileri engelleyebilir.
Ayrıca, SSH kullanılarak genel ağlar üzerinden iletilen hassas verilerin daha fazla korunması için geçiş halindeki tüm verileri şifrelemeniz gerekir.
Veritabanı sunucunuz ve diğer cihazlar arasında iletilen verileri de şifreleyebilirsiniz. Bu, ağınızdaki trafiği izleyen herhangi birinin, bu sistemlerden birine girmeyi başarmış olsalar bile, ilettikleri veya aldıkları verilerin hiçbirine erişememesini sağlayacaktır.
SSL, zaten protokolde yerleşik olduğundan, MySQL kullanıcıları için bunu başarmanın harika bir yolu olacaktır. MariaDB kullanıcıları benzer bir etki elde etmek için stunnel kullanabilir.
Bekleyen Verilerin Şifrelenmesi
Son olarak, bekleyen verilerinizi şifrelemeyi de düşünmelisiniz. Bu, verilerin iletilmediğinde bile şifrelendiği anlamına gelir.
Bu, MySQL Enterprise Encryption veya MariaDB Column Encryption gibi bir araç kullanılarak yapılabilir.
Bu araçların her ikisi de, birisi veritabanı sunucunuza girmeyi başarırsa, verilerinizin erişilmesini önlemenin harika bir yolunu sunar. Ayrıca kullanımı çok kolaydır, bu nedenle bu araçlardan yararlanmak için şifreleme konusunda uzman olmanıza gerek yoktur.
Çözüm
Burada bahsedilen seçeneklerin tümü, MySQL ve MariaDB güvenliğini elde etmenize yardımcı olacaktır, ancak hepsi her durum için mükemmel değildir. Mümkün olan en iyisini seçebilmeniz için onlara bakarken özel ihtiyaçlarınızı göz önünde bulundurmalısınız. Ancak bu ipuçları, işinize yarayacak bir seçeneği nasıl seçeceğiniz konusunda size iyi bir fikir vermelidir.
Umarım bu makale, diğer savunmaları aşmayı başarırlarsa hiç kimsenin veritabanlarınızı hackleyememesi için kuruluşunuzda MySQL ve MariaDB güvenliğini nasıl elde edeceğiniz konusunda size bazı iyi fikirler vermiştir.