0Pricing
Linux Server Deployment & SSH Mastery · Ders

Güvenli Veritabanı Bağlantıları

Daha yüksek güvenlik için SSL/TLS kullanarak veritabanınıza güvenli bağlantılar yapılandırın ve erişimi IP adreslerine göre kısıtlayın.

Güvenli Veritabanı Bağlantıları, CoddyKit'te ücretsiz bir Linux Server Deployment & SSH Mastery dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Linux Server Deployment & SSH Mastery öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Linux Server Deployment & SSH Mastery kursu toplamda 4 dersten oluşur.

Güvenli Veritabanı Bağlantıları Neden Önemlidir

Uygulamalarınız bir veritabanına bağlandığında hassas veriler genellikle ağ üzerinden aktarılır. Uygun güvenlik önlemleri olmadan bu veriler ele geçirilebilir veya değiştirilebilir.

  • Gizlilik: Verilerin yetkisiz kişilerce görüntülenmesini önler.
  • Bütünlük: Verilerin aktarım sırasında değiştirilmediğinden emin olur.
  • Kimlik doğrulama: Hem istemcinin hem de sunucunun kimliğini doğrular.

Bu derste iki temel yönteme odaklanacağız: SSL/TLS şifrelemesi ve IP tabanlı erişim kısıtlamaları.

Veritabanları İçin SSL/TLS'yi Anlama

SSL/TLS (Secure Sockets Layer/Transport Layer Security), bir web sunucusu ile istemci (veya bizim durumumuzda bir veritabanı sunucusu ile istemci) arasında şifreli bağlantı kurmaya yarayan standart teknolojidir.

  • Alışverişi yapılan tüm verileri şifreleyerek gizlice dinlemeye karşı koruma sağlar.
  • Sunucunun (ve isteğe bağlı olarak istemcinin) kimliğini doğrulamak için dijital sertifikalar kullanır.
  • Parolalar, finansal bilgiler ve kişisel bilgiler gibi verileri aktarım sırasında korumak için kritik öneme sahiptir.

SSL/TLS Sertifikaları Oluşturma

SSL/TLS kullanmak için veritabanı sunucunuzun bir dijital sertifikaya ve özel anahtara ihtiyacı vardır. Bunlar sunucunun kimliğini kanıtlar.

  • Kendinden imzalı sertifikalar: Deneme veya dahili ağlar için oluşturulması en kolay sertifikalardır, ancak varsayılan olarak güvenilir değildir.
  • CA imzalı sertifikalar: Bir Sertifika Otoritesi (CA) tarafından verilir ve dünya genelinde güvenilir kabul edilir; üretim ortamları için idealdir.

Bu ders için bir sunucu sertifikanızın (server.crt) ve özel anahtarınızın (server.key) hazır olduğunu varsayacağız.

PostgreSQL: SSL'yi Etkinleştirme

PostgreSQL'de SSL'yi etkinleştirmek için postgresql.conf dosyasını düzenlemeniz gerekir. Bu işlem sunucuya güvenli bağlantıları dinlemesini ve sertifikalarınızı nerede bulacağını bildirir.

Temel parametreler:

  • ssl = on: SSL'yi etkinleştirir.
  • ssl_cert_file: Sunucu sertifikanızın yolu.
  • ssl_key_file: Sunucunuzun özel anahtarının yolu.

Değişikliklerden sonra PostgreSQL'i yeniden başlatın.

# Snippet from postgresql.conf

ssl = on
ssl_cert_file = '/etc/ssl/certs/postgresql/server.crt'
ssl_key_file = '/etc/ssl/private/postgresql/server.key'
ssl_crl_file = '' # Optional: Certificate Revocation List

# Remember to restart PostgreSQL after changes!

MySQL: SSL/TLS'yi Etkinleştirme

MySQL için SSL/TLS'yi my.cnf dosyasında (Windows'ta my.ini), genellikle [mysqld] bölümünde yapılandıracaksınız.

Sunucu sertifikasının, özel anahtarın ve istemci sertifikalarını doğrulamak için bir sertifika yetkilisi (CA) sertifikası kullanıyorsanız bunun yolunu da belirtirsiniz.

Değişiklikleri yaptıktan sonra etkili olmaları için MySQL hizmetini yeniden başlatın.

# Snippet from my.cnf

[mysqld]
ssl_ca = /etc/mysql/certs/ca.pem
ssl_cert = /etc/mysql/certs/server-cert.pem
ssl_key = /etc/mysql/certs/server-key.pem

# Restart MySQL after changes!

SSL/TLS ile İstemci Bağlantısı

Sunucu yapılandırıldıktan sonra istemcilere bağlantı kurarken SSL/TLS kullanmaları gerektiği bildirilmelidir. Bu işlem genellikle bağlantı dizesinde veya komutta SSL seçeneklerinin belirtilmesini gerektirir.

Aşağıda, SSL kipini açıkça zorunlu kılan PostgreSQL psql istemcisiyle bir örnek verilmiştir:

  • sslmode=require: SSL bağlantısını zorunlu kılar.
  • sslrootcert: Sunucu doğrulaması için CA sertifikasının yolu.
psql "host=your_db_host user=your_user dbname=your_db \
  sslmode=require sslrootcert=/path/to/ca.crt"

IP Adresine Göre Erişimi Kısıtlama

Şifrelemenin yanı sıra erişimi istemcinin IP adresine göre kısıtlamak, temel bir güvenlik uygulamasıdır. Bu, yalnızca güvenilir makinelerin veritabanınıza bağlanmayı denemesini sağlar.

Bunu şu yollarla yapılandırabilirsiniz:

  • Veritabanı sunucusu düzeyinde (örneğin PostgreSQL'in pg_hba.conf dosyası veya MySQL'in GRANT ifadeleriyle).
  • Yetkisiz IP'lerden veritabanı bağlantı noktasına gelen trafiği engellemek için güvenlik duvarı kullanarak (UFW veya firewalld gibi).

Her iki yöntemi birleştirmek, katmanlı bir savunma sağlar.

PostgreSQL: pg_hba.conf ile IP Kısıtlamaları

PostgreSQL, ana bilgisayar tabanlı kimlik doğrulama için pg_hba.conf dosyasını kullanır. Her satır bağlantı türlerini, veritabanlarını, kullanıcıları ve izin verilen IP adreslerini belirtir.

Yaygın alanlar:

  • TYPE: host (TCP/IP), local (Unix yuvası).
  • DATABASE: all, belirli veritabanı adı.
  • USER: all, belirli kullanıcı.
  • ADDRESS: IP aralığı (ör. 192.168.1.0/24) veya tek bir IP.
  • METHOD: scram-sha-256, md5, peer vb.

Düzenleme yaptıktan sonra PostgreSQL'i yeniden başlatmayı unutmayın.

# Snippet from pg_hba.conf

# Allow connections from localhost for all users/databases
host    all             all             127.0.0.1/32            scram-sha-256

# Allow 'app_user' from specific IP range to 'app_db'
host    app_db          app_user        192.168.1.0/24          scram-sha-256

# Deny all other connections (implicit if no other rules match)

MySQL: GRANT ile IP Kısıtlamaları

MySQL'de, bir kullanıcıyı GRANT ifadesiyle oluştururken veya değiştirirken bağlanabileceği ana bilgisayarı belirterek kullanıcı erişimini kısıtlarsınız.

'user'@'host' söz dizimi temel öneme sahiptir:

  • 'localhost': Yalnızca sunucunun kendisinden.
  • '192.168.1.100': Yalnızca belirli bir IP adresinden.
  • '%': Herhangi bir ana bilgisayardan (son derece dikkatli kullanın!).
  • '192.168.1.%': 192.168.1.x aralığındaki herhangi bir IP'den.

Her zaman mümkün olan en kısıtlayıcı ana bilgisayarı kullanın.

CREATE USER 'app_user'@'192.168.1.10' IDENTIFIED BY 'StrongPassword!';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'192.168.1.10';
FLUSH PRIVILEGES;

Güvenlik İçin En İyi Uygulamalar

Veritabanı bağlantılarını güvenli hâle getirmek sürekli çaba gerektirir. En iyi uygulamalardan bazıları şunlardır:

  • En Az Ayrıcalık: Kullanıcılara ve uygulamalara yalnızca gerekli izinleri verin.
  • Güçlü Parolalar: Karmaşık parolaları zorunlu kılın ve bunları düzenli olarak yenileyin.
  • Güvenlik Duvarı Kuralları: Veritabanı bağlantı noktalarına erişimi yalnızca güvenilir IP'lerle kısıtlamak için sunucunuzun güvenlik duvarını (UFW/firewalld) kullanın (ör. PostgreSQL için 5432, MySQL için 3306).
  • Düzenli Denetimler: Veritabanı günlüklerini ve erişim yapılandırmalarını düzenli aralıklarla gözden geçirin.
  • Yazılımları Güncel Tutma: Güvenlik yamalarını veritabanı sunucunuza ve işletim sisteminize gecikmeden uygulayın.

Bilginizi Sınayın

Aşağıdakilerden hangileri veritabanı bağlantılarının güvenliğini artırmak için geçerli yöntemlerdir?

Özet: Verilerinizi Güvence Altına Alın

Bu derste veritabanı bağlantılarınızı güvence altına almak için önemli teknikleri inceledik:

  • SSL/TLS: Aktarım hâlindeki verileri şifreleyerek gizliliği ve bütünlüğü sağlar. PostgreSQL ve MySQL'de nasıl etkinleştirileceğini ve istemcilerin güvenli şekilde nasıl bağlanacağını gördük.
  • IP Kısıtlamaları: PostgreSQL için pg_hba.conf dosyasını, MySQL içinse GRANT ifadelerini kullanarak veritabanınıza kimlerin ağ adresine göre bağlanabileceğini sınırlar.
  • En İyi Uygulamalar: Güçlü parolalar kullanma ve düzenli denetimler yapma gibi genel güvenlik ipuçlarını da ele aldık.

Bunları uygulayarak yetkisiz erişim ve veri ihlali riskini önemli ölçüde azaltırsınız.

Sıkça Sorulan Sorular

“Güvenli Veritabanı Bağlantıları” dersi ücretsiz mi?

Evet — “Güvenli Veritabanı Bağlantıları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Linux Server Deployment & SSH Mastery kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Linux Server Deployment & SSH Mastery kursu toplamda 4 dersten oluşur.

“Güvenli Veritabanı Bağlantıları” dersinde ne öğreneceğim?

Daha yüksek güvenlik için SSL/TLS kullanarak veritabanınıza güvenli bağlantılar yapılandırın ve erişimi IP adreslerine göre kısıtlayın. Linux Server Deployment & SSH Mastery ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Linux Server Deployment & SSH Mastery öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Linux Server Deployment & SSH Mastery, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Güvenli Veritabanı Bağlantıları” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Linux Server Deployment & SSH Mastery dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Linux Server Deployment & SSH Mastery dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. PostgreSQL/MySQL Kurulumu
  2. Veritabanı Kullanıcısı ve Erişim Denetimi
  3. Güvenli Veritabanı Bağlantıları
  4. Veritabanı Yedekleme ve Geri Yükleme Stratejileri
← Linux Server Deployment & SSH Mastery Sayfasına Dön