Tüm Sistemler Çalışıyor
Network Durumu
Ana Sayfa Blog MySQL ve MariaDB Güvenlik Sertleştirme Rehberi: 7 Adımda Veritabanı Korumasını Tamamlayın (2026)

MySQL ve MariaDB Güvenlik Sertleştirme Rehberi: 7 Adımda Veritabanı Korumasını Tamamlayın (2026)

MySQL ve MariaDB Güvenlik Sertleştirme Rehberi: 7 Adımda Veritabanı Korumasını Tamamlayın (2026)

1. Neden MySQL ve MariaDB Güvenlik Sertleştirme?

1. Neden MySQL ve MariaDB Güvenlik Sertleştirme? - MySQL ve MariaDB Güvenlik Sertleştirme
1. Neden MySQL ve MariaDB Güvenlik Sertleştirme?

Web uygulamalarının %80'i bir veritabanına bağlıdır ve bu veritabanları saldırganların en çok hedeflediği bileşenlerdendir. Özellikle MySQL ve MariaDB gibi popüler ilişkisel veritabanları, yanlış yapılandırıldığında kritik bilgilerinizin çalınmasına yol açabilir. 2023 yılında yapılan bir araştırmaya göre, veritabanı ihlallerinin %42'si varsayılan ayarların kullanılmasından kaynaklanıyor. Bu yüzden veritabanı sunucunuzu sertleştirerek sadece yetkili kullanıcıların erişimini sağlamak, veri aktarımını şifrelemek ve düzenli yama uygulamak hayati bir adımdır.

Güvenlik sertleştirme, sadece bir kez yapılan bir işlem değildir; sürekli izleme ve güncelleme gerektiren bir süreçtir. Bu makalede, VDS sunucu paketleri üzerinden MySQL/MariaDB kurulumunu ele alarak, adım adım güvenlik önlemlerini nasıl alacağınızı gösteriyoruz. Böylece %70 daha az güvenlik riskiyle, hizmet kesintisi ve maddi kayıpları önleyebilirsiniz.

2. Temel Güvenlik Ayarları: Varsayılanları Değiştirin

MySQL ve MariaDB kurulumları genellikle root kullanıcısına boş şifre bırakır veya uzaktan erişime izin verir. Bu iki temel hatayı düzeltmek, saldırı yüzeyinizi büyük ölçüde azaltır. İlk olarak root hesabına güçlü bir şifre atayın ve uzaktan bağlantıyı 127.0.0.1 ile sınırlayın. Aşağıdaki komutlar, hem MySQL hem de MariaDB için geçerlidir:

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'GüçlüŞifre123!';
DELETE FROM mysql.user WHERE Host!='localhost' AND User='root';
FLUSH PRIVILEGES;

Bu adımları uyguladıktan sonra, sadece aynı sunucu içinde çalışan uygulamalar veritabanına bağlanabilir. Uzaktan erişim gerekiyorsa, IP tabanlı beyaz listeleme yapın ve sadece güvenilir IP'leri ekleyin. Örneğin, 192.168.10.25 IP'sine izin vermek için:

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'192.168.10.25' IDENTIFIED BY 'BaşkaGüçlüŞifre!';
FLUSH PRIVILEGES;

3. SSL/TLS ile Şifreli Bağlantı Sağlama

Veritabanı istemcileri ve sunucu arasındaki trafiğin şifrelenmemesi, ortadaki adam (MITM) saldırılarına açık bir kapı bırakır. MySQL ve MariaDB, SSL/TLS desteğiyle veri aktarımını şifreleyebilir. Öncelikle bir CA (Certificate Authority) sertifikası oluşturun ve sunucu ile istemci için ayrı sertifikalar üretin. Bu işlem AMD Ryzen VDS sunucular gibi yüksek performanslı ortamlarda bile hızlı bir şekilde tamamlanabilir.

# CA oluşturma
openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -out ca.pem

# Sunucu sertifikası
openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -in server-req.pem -days 365 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

# İstemci sertifikası
openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-req.pem
openssl rsa -in client-key.pem -out client-key.pem
openssl x509 -req -in client-req.pem -days 365 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

Bu sertifikaları MySQL konfigürasyon dosyasına ekleyin (my.cnf):

[mysqld]
ssl-ca=/etc/mysql/ssl/ca.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem
require_secure_transport=ON

İstemci tarafında ise bağlantıyı şu şekilde başlatabilirsiniz:

mysql --host=127.0.0.1 --user=admin --password=... \
--ssl-ca=/etc/mysql/ssl/ca.pem \
--ssl-cert=/etc/mysql/ssl/client-cert.pem \
--ssl-key=/etc/mysql/ssl/client-key.pem

Bu yapılandırma, veri akışını %100 şifreleyerek ağ üzerinden izlenmesini engeller.

4. Kullanıcı ve Yetki Yönetimi: En Az Yetki Prensibi

Veritabanı güvenliğinin belki de en kritik kısmı, kullanıcıların sadece ihtiyaç duydukları yetkileri almasıdır. En az yetki prensibi (Principle of Least Privilege) uygulanmadığında, bir uygulama zafiyeti tüm veritabanına erişim sağlayabilir. Kullanıcı oluştururken aşağıdaki gibi sınırlı yetkiler tanımlayın:

CREATE USER 'webapp'@'localhost' IDENTIFIED BY 'WebAppŞifre!';
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'webapp'@'localhost';
FLUSH PRIVILEGES;

Burada DELETE ve DROP gibi kritik yetkileri vermekten kaçının. Ayrıca, her bir veritabanı için ayrı bir kullanıcı oluşturmak, bir hesabın çalınması durumunda hasarın sınırlı kalmasını sağlar. Kullanıcıların şifrelerini 90 günde bir yenilemek ve password_expire özelliğini aktif etmek, uzun vadeli güvenliği artırır.

5. Düzenli Yama ve Güncelleme Yönetimi

5. Düzenli Yama ve Güncelleme Yönetimi - MySQL ve MariaDB Güvenlik Sertleştirme
5. Düzenli Yama ve Güncelleme Yönetimi

MySQL ve MariaDB, yılda birden fazla güvenlik güncellemesi yayınlar. Bu yamalar, kritik CVE’leri (Common Vulnerabilities and Exposures) kapatır ve saldırı yüzeyini azaltır. Üreticinin güvenlik bültenini WAF güvenlik duvarı sayfasında takip etmek, en yeni yamaları kaçırmamanızı sağlar. Güncellemeleri otomatikleştirmek için aşağıdaki adımları izleyin:

  1. Debian/Ubuntu için: sudo apt-get update && sudo apt-get upgrade mysql-server
  2. CentOS/RHEL için: sudo yum update mariadb-server
  3. Yama sonrası mysql_upgrade komutunu çalıştırarak veri sözlüğünü güncelleyin.

Yama uygulamadan önce mutlaka yedek alın. veri merkezimiz üzerinden otomatik yedekleme çözümleri, anlık geri dönüş imkanı sunar.

6. İzleme, Loglama ve Anomali Tespiti

Güvenlik sertleştirme tamamlandığında, sistemin sürekli izlenmesi gerekir. MySQL’in general_log ve slow_query_log özellikleri, olağandışı sorguları tespit etmek için kullanılabilir. Ayrıca audit_plugin gibi eklentiler, kullanıcı oturumlarını ve veri değişikliklerini detaylı olarak kaydeder. Logları merkezi bir SIEM (Security Information and Event Management) sistemine yönlendirmek, anormalliklerin hızlıca fark edilmesini sağlar.

[mysqld]
general_log=ON
general_log_file=/var/log/mysql/general.log
slow_query_log=ON
slow_query_log_file=/var/log/mysql/slow.log
log_output=FILE

Log analizi sırasında “failed login” sayısının artması, brute‑force saldırısının bir işareti olabilir. Böyle bir durumda IPv4 adres kiralama hizmetiyle geçici IP bloklamaları yapabilir ve SLA hizmeti kapsamında destek alabilirsiniz.

7. Yedekleme ve Felaket Kurtarma Stratejileri

Güvenlik sertleştirme sadece saldırıları önlemekle kalmaz; aynı zamanda bir ihlal sonrası veri kaybını da en aza indirir. Düzenli yedekleme, özellikle tam yedek (full backup) ve artımlı yedek (incremental backup) kombinasyonu, hızlı bir geri dönüş sağlar. MariaDB’nin mysqldump ve mariabackup araçları, yedekleme sürecini otomatikleştirir:

# Tam yedek
mysqldump -u root -p --all-databases --single-transaction > /backups/full_$(date +%F).sql

# Artımlı yedek (binary log)
mysqladmin flush-logs
cp /var/lib/mysql/mysql-bin.* /backups/incremental/

Yedekleri fiziksel sunucu (dedicated server) veya colocation hizmeti gibi ayrı bir lokasyona taşıyarak coğrafi riskleri azaltın. Yedek geri dönüş testlerini en az ayda bir gerçekleştirmek, felaket anında sorunsuz bir restore işlemi garantiler.

Karşılaştırma Tablosu: MySQL vs MariaDB Güvenlik Özellikleri

ÖzellikMySQL 8.0MariaDB 10.11
Varsayılan ŞifrelemeInnoDB tablespace encryption (opsiyonel)InnoDB ve Aria şifreleme (varsayılan)
Audit PluginEnterprise Audit (lisanslı)MariaDB Audit Plugin (açık kaynak)
SSL/TLS Zorunluluğurequire_secure_transport=ON (opsiyonel)ssl_require=ON (varsayılan)
Kullanıcı YönetimiRoles ve Dynamic PrivilegesRoles ve Proxy Users
Güncelleme SıklığıYıllık major releaseYarı yıllık minor release

Sıkça Sorulan Sorular

MySQL’de SSL kurulumu zor mu?

Hayır, OpenSSL ile sertifika üretmek ve my.cnf dosyasına eklemek sadece birkaç adım gerektirir. Yukarıdaki örnek komutları takip ederek 10 dakikadan kısa sürede tamamlayabilirsiniz.

MariaDB’nin audit plugin’i ücretsiz mi?

Evet, MariaDB Audit Plugin GPL lisansı altında dağıtılır ve ek bir ücret talep etmez. Ancak yüksek trafikli ortamlar için log depolama maliyetlerini göz önünde bulundurmanız gerekir.

Yedekleme sırasında veritabanı kapanmalı mı?

Hayır, mysqldump ve mariabackup araçları “online backup” desteği sunar. --single-transaction parametresi ile tutarlı bir yedek alabilirsiniz.

Root hesabını tamamen devre dışı bırakabilir miyim?

Evet, root hesabını sadece socket authentication ile sınırlayabilir ve ayrı bir yönetici hesabı oluşturabilirsiniz. Bu, uzaktan erişimi tamamen engeller.

Sonuç ve Önerilen Sonraki Adım

MySQL ve MariaDB güvenlik sertleştirme, sadece bir kez yapılan bir işlem değil, sürekli iyileştirme gerektiren bir süreçtir. Bu makalede ele aldığımız 7 adım – varsayılan ayarların değiştirilmesi, SSL/TLS şifrelemesi, en az yetki prensibi, düzenli yama yönetimi, izleme ve loglama, yedekleme stratejileri – temel güvenlik katmanlarını oluşturur. Şimdi, sunucunuzda bu adımları uygulayarak veritabanı güvenliğinizi artırabilirsiniz. Eğer profesyonel destek veya yönetilen VDS çözümleri arıyorsanız, Intel i9 VDS sunucular sayfamızı inceleyebilir ve uzman ekibimizle iletişime geçebilirsiniz.