Ubuntu 18.04 Üzerinden Yönetilen Veritabanlarına Bağlanma Rehberi
Yönetilen veritabanları, modern uygulama geliştirmenin ve altyapı yönetiminin ayrılmaz bir parçası haline gelmiştir. Geliştiricilerin ve sistem yöneticilerinin veritabanı altyapısının karmaşık yönetimiyle uğraşmak yerine, uygulamalarına odaklanmalarını sağlarlar. Bu teknik makale, Ubuntu 18.04 işletim sistemi kurulu bir sunucu veya iş istasyonu üzerinden çeşitli popüler yönetilen veritabanlarına (MySQL, PostgreSQL, MongoDB, Redis) nasıl güvenli ve etkin bir şekilde bağlanılacağını adım adım açıklamaktadır. Ubuntu 18.04, uzun süreli destek (LTS) sürümü olması nedeniyle hala geniş bir kullanıcı tabanına sahip olsa da, bu makaledeki prensipler ve komutlar, Ubuntu’nun daha yeni LTS sürümleri (20.04, 22.04) için de büyük ölçüde geçerlidir.
Giriş: Yönetilen Veritabanları ve Ubuntu 18.04
Yönetilen veritabanları (Managed Databases), Amazon RDS, Google Cloud SQL, Azure Database, DigitalOcean Managed Databases gibi bulut sağlayıcıları tarafından sunulan hizmetlerdir. Bu hizmetler, veritabanı sunucusu kurulumu, yedekleme, ölçeklendirme, güvenlik yamaları ve genel bakım gibi operasyonel görevleri otomatikleştirerek veya tamamen devralarak geliştiricilerin üzerindeki yükü hafifletir. Bu sayede, geliştiriciler veritabanı altyapısı yerine uygulamanın iş mantığına ve özelliklerine odaklanabilirler.
Ubuntu 18.04 LTS (Bionic Beaver), kararlılığı ve geniş paket desteği nedeniyle sunucu ortamlarında yaygın olarak kullanılan bir işletim sistemidir. Bu makale, Ubuntu 18.04’ün bu avantajlarından yararlanarak, farklı türdeki yönetilen veritabanlarına güvenli bir şekilde nasıl bağlanılacağını ayrıntılı olarak ele alacaktır. Bağlantı yöntemleri hem komut satırı arayüzü (CLI) hem de grafik kullanıcı arayüzü (GUI) araçları üzerinden gösterilecektir.
I. Ön Hazırlıklar ve Temel Bilgiler
Yönetilen bir veritabanına bağlanmadan önce, Ubuntu sisteminizin güncel olduğundan ve gerekli güvenlik önlemlerinin alındığından emin olmanız önemlidir.
A. Ubuntu 18.04 Sistem Güncellemesi
Sisteminizin en güncel güvenlik yamalarına ve paket sürümlerine sahip olduğundan emin olmak için düzenli olarak güncelleme yapmalısınız.
sudo apt update
sudo apt upgrade -y
Bu komutlar, paket listesini günceller ve mevcut tüm paketleri en yeni sürümlerine yükseltir.
B. Güvenlik Duvarı Ayarları (UFW)
Ubuntu’nun varsayılan güvenlik duvarı olan UFW (Uncomplicated Firewall), sunucunuzu yetkisiz erişimlerden korumak için kritik öneme sahiptir. Veritabanına bağlanmak için ilgili portların açılması gerekebilir.
sudo ufw status # Güvenlik duvarı durumunu kontrol edin
sudo ufw enable # Güvenlik duvarını etkinleştirin (ilk kez yapıyorsanız)
sudo ufw allow ssh # SSH bağlantılarına izin verin (genellikle 22/tcp)
Veritabanı türüne göre açmanız gereken standart portlar şunlardır:
* MySQL/MariaDB: 3306/tcp
* PostgreSQL: 5432/tcp
* MongoDB: 27017/tcp
* Redis: 6379/tcp
Örnek olarak, MySQL bağlantısı için:
sudo ufw allow 3306/tcp
Bu komut, 3306 numaralı TCP portundan gelen bağlantılara izin verir. Bağlantı sadece belirli bir IP adresinden yapılacaksa, daha kısıtlı bir kural tanımlayabilirsiniz:
sudo ufw allow from [izin_verilen_ip_adresi] to any port 3306
C. SSH Anahtar Çifti Oluşturma ve Kullanma
Veritabanı bağlantısı için doğrudan gerekli olmasa da, sunucunuza SSH ile bağlanırken anahtar çifti kullanmak, şifreye dayalı kimlik doğrulamadan çok daha güvenlidir. Bu, genel bir güvenlik en iyi uygulamasıdır.
ssh-keygen -t rsa -b 4096 # Yeni bir SSH anahtar çifti oluşturun
Bu komut, ~/.ssh/id_rsa (özel anahtar) ve ~/.ssh/id_rsa.pub (genel anahtar) dosyalarını oluşturur. Genel anahtarınızı bulut sağlayıcınızın paneli üzerinden sunucunuza ekleyerek şifresiz ve güvenli bir şekilde bağlanabilirsiniz.
D. Veritabanı Bağlantı Bilgilerini Anlama
Yönetilen veritabanınıza bağlanmak için aşağıdaki temel bilgilere ihtiyacınız olacaktır. Bu bilgiler, bulut sağlayıcınızın veritabanı yönetim panelinden alınır:
* Ana Bilgisayar Adı (Host Name) veya IP Adresi: Veritabanı sunucusunun adresi.
* Port Numarası: Veritabanının dinlediği port (örneğin, MySQL için 3306).
* Kullanıcı Adı: Veritabanına erişim için kullanılan kullanıcı adı.
* Şifre: İlgili kullanıcı adının şifresi.
* Veritabanı Adı: (Opsiyonel) Bağlanmak istediğiniz belirli bir veritabanının adı.
* SSL/TLS Sertifikaları: Güvenli (şifreli) bağlantı kurmak için gerekli olabilecek CA (Certificate Authority) sertifika dosyaları. Bulut sağlayıcınız genellikle bunları indirmenizi sağlar.
II. MySQL/MariaDB Yönetilen Veritabanına Bağlanma
MySQL ve MariaDB, ilişkisel veritabanı yönetim sistemleridir ve bağlantı yöntemleri büyük ölçüde benzerdir.
A. MySQL İstemcisini Kurma
Ubuntu 18.04 üzerinde MySQL veya MariaDB veritabanına bağlanmak için mysql-client paketini kurmanız gerekir:
sudo apt install mysql-client -y
B. Komut Satırı Üzerinden Bağlanma
MySQL istemcisi ile komut satırından bağlanmak için genel format şöyledir:
mysql -h [host_adı] -P [port] -u [kullanıcı_adı] -p
* -h: Veritabanı sunucusunun ana bilgisayar adı veya IP adresi.
* -P: Port numarası (büyük ‘P’ harfine dikkat edin).
* -u: Kullanıcı adı.
* -p: Şifre girmenizi ister. Komutun sonuna şifreyi doğrudan yazmaktan kaçının (-p[şifre]), çünkü bu şifrenin komut geçmişinde görünmesine neden olabilir ve güvenlik riski oluşturur.
Örnek Bağlantı:
mysql -h my-db-instance.example.com -P 3306 -u admin_user -p
Komutu çalıştırdıktan sonra, sizden şifrenizi girmeniz istenecektir.
SSL/TLS ile Bağlanma:
Çoğu yönetilen veritabanı, bağlantı güvenliği için SSL/TLS kullanımını zorunlu kılar veya şiddetle tavsiye eder. Sağlayıcınızdan indirdiğiniz CA sertifika dosyasını kullanarak güvenli bağlantı kurabilirsiniz:
mysql -h [host_adı] -P [port] -u [kullanıcı_adı] -p --ssl-mode=VERIFY_IDENTITY --ssl-ca=[path_to_ca_cert.pem]
* --ssl-mode=VERIFY_IDENTITY: Sunucunun sertifikasını CA sertifikası ile doğrulamasını sağlar.
* --ssl-ca: CA sertifika dosyasının yolu.
C. GUI Araçları ile Bağlanma (DBeaver/MySQL Workbench)
Grafiksel arayüz araçları, veritabanlarını görsel olarak yönetmek ve sorgulamak için daha kullanıcı dostu bir deneyim sunar.
DBeaver (Evrensel Veritabanı Yöneticisi):
DBeaver, birçok veritabanı türünü destekleyen popüler bir açık kaynaklı GUI aracıdır. Ubuntu’ya Snap paketi veya .deb dosyası ile kurulabilir.
# Snap ile kurulum
sudo snap install dbeaver-ce
.deb dosyası ile kurulum (DBeaver web sitesinden indirin)
sudo dpkg -i dbeaver-ce_latest_amd64.deb
sudo apt install -f # Bağımlılıkları düzeltmek için
Kurulumdan sonra DBeaver’ı açın ve yeni bir bağlantı oluşturun:
1. Veritabanı Bağlantısı Sihirbazı: “Yeni Veritabanı Bağlantısı” seçeneğini seçin.
2. Veritabanı Türü: “MySQL” veya “MariaDB” seçin.
3. Bağlantı Ayarları:
* Host: Veritabanı ana bilgisayar adı.
* Port: Port numarası (örneğin, 3306).
* Database: Bağlanmak istediğiniz veritabanı adı (isteğe bağlı).
* Username: Kullanıcı adı.
* Password: Şifre.
4. SSL Ayarları: “SSL” sekmesine gidin. Genellikle “Use SSL” kutucuğunu işaretleyip, bulut sağlayıcınızdan indirdiğiniz CA sertifika dosyasının yolunu belirtmeniz gerekir.
5. Bağlantıyı Test Et: Bağlantının başarılı olup olmadığını kontrol edin ve ardından kaydedin.
MySQL Workbench:
MySQL Workbench, MySQL’e özel resmi bir GUI aracıdır.
# MySQL Workbench'i kurmak için önce MySQL APT deposunu eklemeniz gerekebilir.
Alternatif olarak, MySQL web sitesinden .deb dosyasını indirip kurabilirsiniz.
wget https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb
sudo apt update
sudo apt install mysql-workbench-community -y
Kurulumdan sonra MySQL Workbench’i açın:
1. Yeni Bağlantı Oluştur: Ana ekranda “+” simgesine tıklayın.
2. Bağlantı Ayarları:
* Connection Name: Bağlantınız için bir isim.
* Hostname: Veritabanı ana bilgisayar adı.
* Port: Port numarası.
* Username: Kullanıcı adı.
* Password: “Store in Vault…” seçeneği ile şifreyi kaydedin.
3. SSL Ayarları: “SSL” sekmesine gidin. “Use SSL” seçeneğini işaretleyip, CA sertifika dosyasının yolunu belirtin.
4. Test Connection: Bağlantıyı test edin ve kaydedin.
III. PostgreSQL Yönetilen Veritabanına Bağlanma
PostgreSQL, güçlü ve açık kaynaklı bir ilişkisel veritabanı yönetim sistemidir.
A. PostgreSQL İstemcisini Kurma
PostgreSQL veritabanına bağlanmak için postgresql-client paketini kurmanız gerekir:
sudo apt install postgresql-client -y
B. Komut Satırı Üzerinden Bağlanma
PostgreSQL istemcisi (psql) ile komut satırından bağlanmak için genel format şöyledir:
psql -h [host_adı] -p [port] -U [kullanıcı_adı] -d [veritabanı_adı]
* -h: Veritabanı sunucusunun ana bilgisayar adı veya IP adresi.
* -p: Port numarası (küçük ‘p’ harfine dikkat edin).
* -U: Kullanıcı adı.
* -d: Bağlanmak istediğiniz veritabanı adı.
Örnek Bağlantı:
psql -h my-pg-instance.example.com -p 5432 -U pg_admin -d my_database
Komutu çalıştırdıktan sonra, sizden şifrenizi girmeniz istenecektir.
SSL/TLS ile Bağlanma:
PostgreSQL’de SSL bağlantısı için genellikle bağlantı dizesinde veya ortam değişkenlerinde sslmode parametresi kullanılır. Çoğu yönetilen PostgreSQL hizmeti, sslmode=require veya sslmode=verify-full ayarlarını kullanmanızı bekler.
# Sadece SSL bağlantısı gerektiren durumlar için
psql "host=[host_adı] port=[port] user=[kullanıcı_adı] password=[şifre] dbname=[veritabanı_adı] sslmode=require"
CA sertifikası ile tam doğrulama için
psql "host=[host_adı] port=[port] user=[kullanıcı_adı] password=[şifre] dbname=[veritabanı_adı] sslmode=verify-full sslrootcert=[path_to_ca_cert.pem]"
Şifreyi komut satırında doğrudan belirtmek yerine, ~/.pgpass dosyasını kullanmak daha güvenlidir. Bu dosya, veritabanı bağlantı bilgilerini ve şifrelerini saklar.
hostname:port:database:username:password
Örnek: my-pg-instance.example.com:5432:my_database:pg_admin:my_secret_password
Dosya izinlerini doğru ayarlamayı unutmayın: chmod 0600 ~/.pgpass.
C. GUI Araçları ile Bağlanma (DBeaver/pgAdmin)
DBeaver:
Yukarıda açıklandığı gibi DBeaver’ı kurduktan sonra, yeni bir PostgreSQL bağlantısı oluşturun:
1. Veritabanı Türü: “PostgreSQL” seçin.
2. Bağlantı Ayarları:
* Host, Port, Database, Username, Password bilgilerini girin.
3. SSL Ayarları: “SSL” sekmesine gidin. “Use SSL” kutucuğunu işaretleyip, SSL mode olarak require veya verify-full seçin ve CA sertifika dosyasının yolunu belirtin.
pgAdmin:
pgAdmin, PostgreSQL için resmi ve en popüler GUI aracıdır. Ubuntu’ya kurulumu biraz daha karmaşık olabilir, genellikle resmi depoyu ekleyerek yapılır:
# pgAdmin deposunu ekleyin
sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list'
sudo apt update
sudo apt install pgadmin4 -y # pgAdmin4-web veya pgAdmin4-desktop
Kurulumdan sonra pgAdmin’i açın (genellikle bir web arayüzü olarak çalışır veya masaüstü uygulamasıdır):
1. Sunucu Ekle: Sol panelde “Servers” üzerine sağ tıklayın ve “Create” -> “Server” seçin.
2. Genel (General) Sekmesi: Sunucunuz için bir isim verin.
3. Bağlantı (Connection) Sekmesi:
* Host name/address: Veritabanı ana bilgisayar adı.
* Port: Port numarası.
* Maintenance database: Genellikle postgres veya varsayılan veritabanı.
* Username: Kullanıcı adı.
* Password: Şifre.
4. SSL Sekmesi: SSL mode olarak Require veya Verify-full seçin ve CA sertifika dosyasının yolunu belirtin.
5. Kaydet: Bağlantıyı kaydedin.
IV. MongoDB Yönetilen Veritabanına Bağlanma
MongoDB, popüler bir NoSQL (belge tabanlı) veritabanıdır.
A. MongoDB Shell Kurulumu
Ubuntu 18.04’e MongoDB Shell (mongo veya mongosh) kurmak için MongoDB’nin resmi deposunu eklemeniz gerekir. Kurulum adımları MongoDB sürümüne göre değişebilir. Aşağıda MongoDB 4.4 için örnek adımlar verilmiştir (Ubuntu 18.04’te desteklenen son sürümlerden biridir):
# GPG anahtarını içe aktarın
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
MongoDB deposunu oluşturun
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
Paket listesini güncelleyin ve MongoDB Shell'i kurun
sudo apt update
sudo apt install mongodb-org-shell -y
Yeni mongosh kabuk sürümü için adımlar farklılık gösterebilir, MongoDB’nin resmi belgelerine başvurmak en doğrusudur.
B. Komut Satırı Üzerinden Bağlanma
MongoDB’ye bağlanmak için mongo komutu kullanılır. Bağlantı dizeleri (connection string) genellikle URI formatında olur.
SSL/TLS Olmadan Bağlantı (nadiren kullanılır, güvenli değildir):
mongo --host [host_adı] --port [port] --username [kullanıcı_adı] --password [şifre] --authenticationDatabase admin
--authenticationDatabase admin parametresi, kullanıcının admin veritabanında tanımlandığını belirtir.
SSL/TLS ile Bağlantı (önerilen):
mongo "mongodb://[kullanıcı_adı]:[şifre]@[host_adı]:[port]/[veritabanı_adı]?authSource=admin&ssl=true&ssl_ca_certs=[path_to_ca_cert.pem]"
Veya ayrı parametrelerle:
mongo --host [host_adı] --port [port] --username [kullanıcı_adı] --password [şifre] --authenticationDatabase admin --ssl --sslCAFile [path_to_ca_cert.pem]
* --ssl: SSL/TLS kullanılarak bağlantı kurulacağını belirtir.
* --sslCAFile: CA sertifika dosyasının yolu.
C. GUI Araçları ile Bağlanma (MongoDB Compass/DBeaver)
MongoDB Compass:
MongoDB Compass, MongoDB için resmi ve güçlü bir GUI aracıdır. MongoDB web sitesinden .deb dosyasını indirerek veya Snap ile kurulabilir:
# Snap ile kurulum
sudo snap install mongodb-compass
.deb dosyası ile kurulum (MongoDB Compass web sitesinden indirin)
sudo dpkg -i mongodb-compass_latest_amd64.deb
sudo apt install -f # Bağımlılıkları düzeltmek için
Kurulumdan sonra Compass’ı açın:
1. Bağlan: Ana ekranda “Connect” -> “Fill in connection fields individually” seçeneğini seçin.
2. Bağlantı Ayarları:
* Hostname: Veritabanı ana bilgisayar adı.
* Port: Port numarası.
3. Authentication: “Authentication” sekmesine gidin.
* Authentication Method: Username / Password seçin.
* Username, Password ve Authentication Database (genellikle admin) girin.
4. SSL/TLS: “SSL/TLS” sekmesine gidin.
* SSL: Server Validation veya CA File seçeneğini işaretleyin.
* CA File: CA sertifika dosyasının yolunu belirtin.
5. Connect: Bağlantıyı kurun.
DBeaver:
DBeaver’ı kurduktan sonra, yeni bir MongoDB bağlantısı oluşturun:
1. Veritabanı Türü: “MongoDB” seçin.
2. Bağlantı Ayarları:
* Host, Port, Database, Username, Password bilgilerini girin.
* Authentication Database alanını doğru şekilde ayarlayın (genellikle admin).
3. SSL Ayarları: “SSL” sekmesine gidin. “Use SSL” kutucuğunu işaretleyip, CA sertifika dosyasının yolunu belirtin.
V. Redis Yönetilen Veritabanına Bağlanma
Redis, bellek içi bir veri yapısı deposu olarak kullanılan hızlı bir NoSQL veritabanıdır.
A. Redis CLI Kurulumu
Redis veritabanına bağlanmak için redis-tools paketini kurmanız gerekir:
sudo apt install redis-tools -y
B. Komut Satırı Üzerinden Bağlanma
Redis istemcisi (redis-cli) ile komut satırından bağlanmak için genel format şöyledir:
redis-cli -h [host_adı] -p [port] -a [şifre]
* -h: Redis sunucusunun ana bilgisayar adı veya IP adresi.
* -p: Port numarası (genellikle 6379).
* -a: Şifre (doğrudan komut satırında belirtmek güvenlik riski taşıyabilir, ancak redis-cli için yaygın bir kullanımdır).
Örnek Bağlantı:
redis-cli -h my-redis-instance.example.com -p 6379 -a my_redis_password
Bağlandıktan sonra Redis komutlarını çalıştırabilirsiniz (örneğin, PING, SET key value, GET key).
SSL/TLS ile Bağlanma:
redis-cli varsayılan olarak SSL/TLS desteği sunmaz. Eğer yönetilen Redis hizmetiniz SSL/TLS gerektiriyorsa, genellikle stunnel gibi bir tünelleme aracı kullanarak veya RedisInsight gibi GUI araçlarını kullanarak bağlanmanız gerekir. Bazı bulut sağlayıcıları, Redis için kendi istemci kütüphaneleri aracılığıyla SSL/TLS desteği sunabilir.
Stunnel ile Örnek Bağlantı (genel bir yaklaşım):
1. Stunnel Kurulumu:
sudo apt install stunnel4 -y
2. Stunnel Yapılandırması: /etc/stunnel/redis.conf gibi bir dosya oluşturun:
[redis-cli]
client = yes
accept = 127.0.0.1:6380 # Yerel port
connect = [host_adı]:[port]
CAfile = [path_to_ca_cert.pem]
verifyChain = yes
3. Stunnel’i Başlatın:
sudo systemctl enable stunnel4
sudo systemctl start stunnel4
4. Redis-cli ile Bağlanın: Şimdi redis-cli ile yerel olarak stunnel’in dinlediği porta bağlanabilirsiniz:
redis-cli -h 127.0.0.1 -p 6380 -a [şifre]
Bu yöntem, Redis trafiğini yerel olarak şifreleyip uzak sunucuya güvenli bir şekilde iletir.
C. GUI Araçları ile Bağlanma (RedisInsight/DBeaver)
RedisInsight:
RedisInsight, Redis için resmi bir GUI aracıdır ve SSL/TLS bağlantılarını doğrudan destekler. RedisLabs web sitesinden .deb dosyasını indirerek kurulabilir:
# RedisInsight web sitesinden .deb dosyasını indirin
sudo dpkg -i redisinsight_latest.deb
sudo apt install -f # Bağımlılıkları düzeltmek için
Kurulumdan sonra RedisInsight’ı açın:
1. Add Redis Database: “Add Redis Database” seçeneğini seçin.
2. Bağlantı Ayarları:
* Host, Port, Password bilgilerini girin.
* SSL/TLS: Bu seçeneği etkinleştirin ve CA sertifika dosyasının yolunu belirtin.
3. Add Redis Database: Bağlantıyı ekleyin.
DBeaver:
DBeaver’ı kurduktan sonra, yeni bir Redis bağlantısı oluşturun:
1. Veritabanı Türü: “Redis” seçin.
2. Bağlantı Ayarları:
* Host, Port, Password bilgilerini girin.
3. SSL Ayarları: “SSL” sekmesine gidin. “Use SSL” kutucuğunu işaretleyip, CA sertifika dosyasının yolunu belirtin (DBeaver’ın Redis için tam SSL desteği, kullanılan JDBC sürücüsüne bağlı olarak değişebilir).
VI. Güvenlik En İyi Uygulamaları
Veritabanı bağlantılarında güvenlik her zaman öncelikli olmalıdır.
A. Güçlü Şifreler ve Periyodik Değişim
Tüm veritabanı kullanıcıları için uzun, karmaşık ve benzersiz şifreler kullanın. Şifreleri düzenli aralıklarla değiştirin. Şifreleri asla açık metin olarak kodunuza veya komut geçmişinize kaydetmeyin.
B. En Az Ayrıcalık Prensibi
Veritabanı kullanıcılarına yalnızca görevlerini yerine getirmek için kesinlikle gerekli olan minimum ayrıcalıkları verin. Örneğin, bir uygulama kullanıcısının tüm veritabanını silme yetkisine ihtiyacı yoktur.
C. Ağ Güvenliği (Güvenlik Grupları/ACL’ler)
Bulut sağlayıcınızın güvenlik duvarı veya güvenlik grubu özelliklerini kullanarak veritabanına erişimi yalnızca belirli IP adresleriyle veya ağlarla sınırlayın. Bu, veritabanınızı internetten gelebilecek gereksiz taramalara ve saldırılara karşı korur. Ubuntu’daki UFW ile kendi sunucunuzdan dışarıya açılan bağlantıları kontrol ederken, yönetilen veritabanınızın kendi güvenlik duvarı kurallarını da yapılandırmanız gerekir.
D. SSL/TLS Kullanımı
Mümkün olan her durumda veritabanı bağlantıları için SSL/TLS şifrelemesi kullanın. Bu, veritabanı ile istemci arasındaki tüm verilerin şifrelenmesini sağlayarak hassas bilgilerin ele geçirilmesini önler. CA sertifikası ile sunucu kimliğini doğrulamak, Man-in-the-Middle (MITM) saldırılarına karşı ek koruma sağlar.
E. SSH Tünelleme (Opsiyonel)
Eğer yönetilen veritabanınızın doğrudan internete açık olmasını istemiyorsanız veya ek bir güvenlik katmanı arıyorsanız, bir ara SSH sunucusu üzerinden tünelleme yapabilirsiniz.
ssh -L [yerel_port]:[veritabanı_host]:[veritabanı_port] user@remote_ssh_host
Bu komut, yerel makinenizdeki [yerel_port] üzerinden gelen trafiği, remote_ssh_host adlı SSH sunucusu aracılığıyla veritabanı_host üzerindeki veritabanı_port‘a yönlendirir. Böylece, veritabanına sanki yerel makinenizden erişiyormuş gibi güvenli bir şekilde bağlanabilirsiniz.
VII. Sık Karşılaşılan Sorunlar ve Çözümleri
Veritabanı bağlantıları sırasında çeşitli sorunlarla karşılaşmak olasıdır. İşte en yaygın olanları ve olası çözümleri:
A. Bağlantı Zaman Aşımı (Connection Timeout)
* Sorun: Bağlantı denemesi belirli bir süre sonra başarısız oluyor.
* Olası Nedenler ve Çözümler:
* Güvenlik Duvarı: Ubuntu sunucunuzdaki UFW veya bulut sağlayıcınızın güvenlik grubu/ağ ACL’leri, veritabanı portuna giden trafiği engelliyor olabilir. Gerekli portların (3306, 5432 vb.) açık olduğundan emin olun.
* IP Adresi Kısıtlamaları: Yönetilen veritabanı hizmeti, yalnızca belirli IP adreslerinden gelen bağlantılara izin verecek şekilde yapılandırılmış olabilir. Bağlantı yapmaya çalıştığınız IP adresinizin izin verilenler listesinde olduğundan emin olun.
* Veritabanı Sunucusunun Durumu: Veritabanı hizmetinin çalışır durumda olup olmadığını kontrol edin.
B. Kimlik Doğrulama Hatası (Authentication Failed)
* Sorun: Geçersiz kullanıcı adı veya şifre hatası alınıyor.
* Olası Nedenler ve Çözümler:
* Yanlış Kimlik Bilgileri: Kullanıcı adı ve şifrenin doğru olduğundan emin olun. Büyük/küçük harf duyarlılığına dikkat edin.
* Veritabanı Adı: PostgreSQL veya MongoDB gibi bazı veritabanlarında, kullanıcıların belirli bir veritabanı veya kimlik doğrulama veritabanı (MongoDB’de admin gibi) ile ilişkilendirilmiş olması gerekebilir. Bağlantı komutunuzda veya GUI ayarlarınızda doğru veritabanını belirttiğinizden emin olun.
* Yetkilendirme Sorunları: Kullanıcının bağlanmaya çalıştığı veritabanına veya verilere erişim yetkisi olmayabilir. Veritabanı yöneticisiyle iletişime geçerek yetkileri kontrol ettirin.
C. SSL/TLS Hatası
* Sorun: SSL/TLS el sıkışması başarısız oluyor veya sertifika doğrulama hatası alınıyor.
* Olası Nedenler ve Çözümler:
* Sertifika Yolu: CA sertifika dosyasının yolunun doğru olduğundan ve dosyanın okunabilir olduğundan emin olun.
* Sertifika Geçerliliği: CA sertifikasının süresi dolmuş olabilir veya bozuk olabilir. Bulut sağlayıcınızdan en güncel sertifikayı indirin.
* İstemci Desteği: Kullandığınız veritabanı istemcisinin veya kütüphanesinin SSL/TLS’yi doğru şekilde desteklediğinden ve yapılandırıldığından emin olun.
* Saat Senkronizasyonu: Sunucunuzun ve istemcinizin saatleri senkronize değilse SSL/TLS sertifika doğrulama sorunları yaşanabilir. sudo apt install ntp ve sudo systemctl enable ntp ile NTP hizmetini etkinleştirin.
D. Bağlantı Reddedildi (Connection Refused)
* Sorun: İstemci, veritabanı sunucusu tarafından bağlantısının reddedildiğini belirten bir hata alıyor.
* Olası Nedenler ve Çözümler:
* Yanlış Port Numarası: Doğru port numarasını kullandığınızdan emin olun (MySQL için 3306, PostgreSQL için 5432 vb.).
* Veritabanı Hizmeti Durumu: Veritabanı hizmetinin çalışır durumda olduğundan emin olun. Yönetilen veritabanlarında bu genellikle bulut sağlayıcının sorumluluğundadır, ancak yine de durumunu kontrol etmek faydalı olabilir.
* Veritabanının Dış Bağlantılara İzni: Nadiren de olsa, yönetilen veritabanları varsayılan olarak yalnızca belirli ağlardan veya iç ağlardan bağlantıya izin verebilir. Sağlayıcınızın belgelerini kontrol edin.
Sonuç
Bu makale, Ubuntu 18.04 işletim sistemi üzerinden MySQL/MariaDB, PostgreSQL, MongoDB ve Redis gibi popüler yönetilen veritabanlarına nasıl bağlanılacağına dair kapsamlı bir rehber sunmuştur. Komut satırı araçlarından grafiksel kullanıcı arayüzlerine kadar farklı bağlantı yöntemlerini, ön hazırlıkları, güvenlik en iyi uygulamalarını ve sık karşılaşılan sorunların çözümlerini ele aldık.
Yönetilen veritabanları, veritabanı yönetiminin karmaşıklığını ortadan kaldırarak geliştiricilerin ve sistem yöneticilerinin iş yükünü önemli ölçüde azaltır. Ancak, bu hizmetlere güvenli ve doğru bir şekilde bağlanmak, uygulamanızın güvenliği ve performansı için kritik öneme sahiptir. SSL/TLS şifrelemesi kullanmak, güçlü şifreler belirlemek ve en az ayrıcalık prensibini uygulamak gibi güvenlik önlemlerini asla göz ardı etmemelisiniz.
Ubuntu 18.04’ün kararlılığı, bu tür bağlantılar için güvenilir bir temel sunsa da, yeni projelerde Ubuntu’nun daha güncel LTS sürümlerini (20.04 veya 22.04) kullanmayı düşünmek, daha uzun süreli güvenlik ve yazılım desteği açısından faydalı olacaktır. Bu makalede belirtilen adımlar ve prensipler, Ubuntu’nun daha yeni sürümlerinde de büyük ölçüde geçerliliğini koruyacaktır. Bu rehberin, yönetilen veritabanlarına bağlanma süreçlerinizi basitleştirmesi ve daha güvenli hale getirmesi dileğiyle.
