Postgresql Veri Tabanı pg_hba.conf Dosyası
Postgresql veri tabanına client erişimleri pg_hba.conf dosyası tarafından kontrol edilmektedir. Pg_hba.conf dosyası PGDATA dizininde yer alır. HBA’nın açılımı host-based-authentication’dur. Veri tabanı kurulumu sırasında initdb işlemi ile default kayıtları içeren bir pg_hba.conf dosyası oluşturulur. En çok kullanılan client tanımlamaları aşağıdaki gibidir.
local : Bu kayıt localhost’dan gelen kayıtlar için izinleri tanımlamaya yarar.
Host : TCP/IP protokolü ile veri tabanına bağlantı kurmak isteyen clientlar için kural tanımlamayı sağlar.
Host-ssl : TCP/IP protokolü kullanılarak sadece SSL bağlantı taleplerine karşılık vermek için kullanılan tanımlamadır.
Hostnossl : SSL kullanmadan sadece TCP/IP üzerinden gelen bağlantı taleplerini karşılamak için kullanılan tanımlamadır.
Database : Bağlantı izinlerinin hangi veri tabanı için geçerli olacağını tanımlar. Serverdaki bütün veri tabanlarına izin vermek için ‘all’ keywordü kullanılır.
User : Kullanıcı bazlı filtreleme yapmak için kullanılabilir. Belirli bir IP’den gelen belirli kullanıcılar için ayrı kurallar yazılabileceği gibi ‘all’ keywordü kullanılarak bütün kullanıcılar için kural tanımlaması da yapılabilir.
Address : Bağlantı talebinin geldiği adresi belirtir. Bir IP adresi belirtilebileceği gibi IP aralığı da belirtilebilir.
172.20.143.89/32 Tek bir IP için
172.20.143.0/24 son bloğa göre gelen bütün IP’lere izin vermek için
10.6.0.0/16 Son iki bloğa göre gelen bütün IP’lere izin vermek için.
auth-method : Kullanıcıdan gelen bağlantı isteği bütün krititerlere uyuyor ise en son gerçekleştirilecek doğrulama adımıdır.
Trust : Password sorulmaz. Gelen kullanıcı tanımlanan IP izinlerine uygunsa direkt bağlanabilir veri tabanına
Reject : Gelen bağlantı talebi ne olursa olsun reddedilir.
Scram-sha-256 : Kullanıcının şifre doğrulaması bu algoritma ile yapılır.
Password : Kullanıcının şifre doğrulaması şifrelenmemiş şekilde yapılır. Yani network üzerinde kullanıcının passwordu text halinde iletilir.
Md5 : Kullanıcının şifre doğrulaması MD5 algoritması ile yapılır.
Ldap : LDAP server kullanılarak işlem gerçekleştirilir.
Örnekler :
# psql ile bağlanırken testuser’ı engellemek için girilen hba kaydı
# TYPE DATABASE USER ADDRESS METHOD
local all postgres trust
local all testuser reject
Şu şekilde test edilebilir : bash-4.2$ psql -d postgres -U testuser
bash-4.2$ psql -d postgres -U postgres
# localhost’an bağlanırken postgres user’ının testdb’ye bağlantısını kesmek için kullanılan kayıt
host testdb testuser 127.0.0.1/32 md5
host testdb postgres 127.0.0.1/32 reject
Şu şekilde test edilebilir : bash-4.2$ psql -h 127.0.0.1 -p 5432 -d testdb -U testuser
# 192.168.192.1 IP’sinden testdb veritabanına testuser ile bağlanabilmek için kullanılan kayıt
host testdb testuser 192.168.192.1/32 trust
host testdb postgres 192.168.192.1/32 reject
Belirli bir IP bloğundan gelen bütün bağlantılara şifre sorarak geçiş izni veren pg_hba.conf kaydı aşağıdaki gibi düzenlenir.
host all all 192.168.192.0/24 trust
Bütün IP’lerden gelen bütün bağlantılara izin veren pg_hba.conf kaydı bu şekilde düzenlenir. ( allow all IP in pg_hba.conf )
host all all 0.0.0.0/0 trust
- AWS nedir? – Cloud 101 - Mayıs 16, 2024
- Vector Databases - Mayıs 15, 2024
- Data Dünyası Nereye Gidiyor? - Mayıs 8, 2024