Veritabanı (MySQL/MariaDB) Güvenliğini Sağlama

HazalHost Güvenlik Ekibi
20 Mart 2026
8 dk okuma
Güvenlik / DDoS

İnternet dünyasında "en değerli" hazine kodlarınız değil, müşterilerinizin bilgilerini içeren veritabanlarıdır. Siteniz saniyeler içinde açılabilir veya en güzel temaya sahip olabilir; ancak eğer MySQL/MariaDB veritabanınız savunmasızsa 1 günde her şeyinizi kaybedebilirsiniz. İşte mutlaka almanız gereken 5 güvenlik önlemi.

1. Veritabanını Dış Dünyaya (İnternete) Kapatın!

Yapılan en ölümcül hata, uzak bağlantı yapılmak bahanesiyle MySQL portunun (Port 3306) sistem güvenlik duvarında tüm İnternete açık bırakılmasıdır (0.0.0.0 bind adresiyle bağlamak).

Normal şartlarda Veritabanı ve Web sitesi (PHP) aynı sunucudaysa; MySQL sadece "localhost" yani kendi içinden gelen isteklere (127.0.0.1) cevap vermelidir.

# /etc/mysql/mysql.conf.d/mysqld.cnf dosyasını açıp
bind-address = 127.0.0.1
# Olarak değiştirdiğinizde dünyanın diğer ucundan kimse veritabanınızı göremez.

Eğer illaki uzak bağlantı lazımsa, iptables veya UFW ile sadece "Sizin ofisinizin kendi Statik Sabit IP'nize" yetki verin.

2. mysql_secure_installation Kodunu Mutlaka Çalıştırın

MariaDB veya MySQL'i VDS üzerine sıfırdan kurduğunuzda, isminin aksine tamamen "Güvensiz" ve düz bir halde gelir. Anonymous (İsimsiz) kullanıcılar veritabanına girebilir, "test" isimli deneme veritabanı herkese açık durur.

# Kurulumdan hemen sonra çalıştırın:
sudo mysql_secure_installation

Bu arayüz size sırayla sorar; test veritabanını sileyim mi? Root girişini dışarıya kapatayım mı? Hepsine "Yes (Y)" onayı verip arınmalısınız.

3. Tek "Root" Yok! Prensip: En Az Ayrıcalık

MySQL sunucusunun Tanrısı "root" kullanıcısıdır. Ancak sizin basit bir makale siteniz (Örn: WordPress) veya CRM paneliniz çalışırken "root" bilgilerine ihtiyaç DUYMAZ!

  • Her vhosts(site) için ayrı bir MySQL User (Kullanıcı) oluşturun.
  • Bu kullanıcıları oluşturduğunuzda "DROP (Veritabanı Silme)" veya "GRANT (Başka Yönetici atama)" gibi Tanrısal yetkileri VERMEYİN.
  • Aksi halde, sadece bir sitenize sızan hacker o siteden girdiği Root hesabı ile diğer 5 projenizi de anında yok edebilir.

4. SQL Injection Zafiyeti Kod İçerisinde Engellenmeli

Eğer özel bir yazılım geliştiriyorsanız, (Örn: PHP ile) müşteri şifresini düz SQL sorgularıyla birleştirmek 1. Yüzyıldan kalma bir intihardır.

  • Klasik zayıflık: "SELECT * FROM kullanicilar WHERE user='".$_POST['nick']."'"
  • Engellemek için her zaman PDO Kullanın ve Bind Parametresi (Prepare/Execute) uygulayın! Bu sayede o kutuya "or 1=1" gibi yazılan saldıran kodları metin olarak algılanır, emir olarak uygulanmaz.

🚀 Günlük Yedeklenen Güvenli Yapı

Tüm SQL güvenliği teknik olsa da kaza ihtimali sıfır değildir. HazalHost'un yüksek hızlı Enterprise SSD altyapısı üzerinde kurumsal müşterilerine sağladığı günlük otomatik yedekleme (Backup) sayesinde kötü bir sabaha bile uyanmadan dönüş sağlayabilirsiniz.

🛡️ Profesyonel Hosting

Sonuç

Veritabanı en dış kalede değil, en iç kasada durmalıdır. 3306 portunuzun dışarı kapalı olduğundan ve kullandığınız şifrelerin kırılmaz nitelikte (rastgele metinlerden oluşan algoritmik değerler) olduğundan emin olun.

#mysql #veritabanı #güvenlik #sql injection
Paylaş:

İçindekiler

🚀 VDS Sunucu Arıyorsan

Türkiye lokasyonlu, DDoS korumalı VDS sunuculara hemen göz at.

VDS Paketlerini İncele