Düzeltme Öner

SSH Tünelleri ile Güvenli TCP / IP Bağlantıları

İstemciler ile PostgreSQL sunucusu arasındaki bağlantısı şifrelemek için SSH kullanılabilir.

SSH sunucusunun PostgreSQL sunucusuyla aynı makinede düzgün çalıştığından ve bir kullanıcı olarak ssh ile oturum açabildiğinizden emin olduktan sonra uzak sunucu ile güvenli tünel kurabilirsiniz. Güvenli tünel, yerel bir bağlantı noktasında dinleme yapar ve tüm trafiği uzak makinedeki bir bağlantı noktasına iletir. Aşağıdaki komut, istemci makineden uzak bilgemyte.com makinesine güvenli bir tünel oluşturur:

ssh -L 63333:localhost:5432 tubitak@bilgemyte.com
-L argumanındaki 63333, tünelin local port numarasıdır. Bu, kullanılmayan herhangi bir bağlantı noktası olabilir. Daha sonraki ad veya IP adresi, uzak bağlantı adresidir. Burada varsayılan değer olan localhost’tur. 5432, tünelin uzak ucudur. Bu örnekte, veritabanı sunucusunun kullandığı port numarasıdır. Oluşturduğumuz tüneli kullanarak veritabanı sunucusuna bağlanmak için yerel makine üzerindeki 63333 numaralı porta bağlanırsınız:
psql -h localhost -p 63333 postgres

Veritabanı sunucusu, tubitak kullanıcısını, bilgemyte.com‘daki localhost bağlama adresine bağlanan bir bilgisayar gibi görünecek ve ilgili bağlantı adresine yapılan bağlantılarda bu kullanıcı için yapılandırılmış kimlik doğrulama prosedürünü kullanacaktır.

Tünel kurulumunun başarılı olduğunu anlamak için ssh ile tubitak@bilgemyte.com üzerinden yapacağınız isteğe izin verilmelidir.

Bağlantı noktası yönlendirmeyi şu şekilde de kurabilirdiniz:

ssh -L 63333:bilgemyte.com:5432 tubitak@bilgemyte.com
Bu kurulumda veritabanı sunucusu, bağlantının varsayılan listen_addresses = 'localhost' ayarıyla açılmayan bilgemyte.com bağlama adresine geldiğini görecektir. Bu pek istenilen bir durum değildir.

Veritabanı sunucusuna direkt ulaşmanız gereken durumlarda kurulum şu şekilde olabilir:

ssh -L 63333:db.bilgemyte.com:5432 tubitak@shell.bilgemyte.com

Kaynak:

[1]. PostgreSQL Documentation