Konfiguracja Postgresql PH_HBA

Konfiguracja Postgresql PH_HBA

Konfiguracja oparta na hosta, powszechnie znana jako pH_HBA.Conf, to specjalny plik używany do uwierzytelniania klienta PostgreSQL. Możesz myśleć o tym jako o pliku konfiguracyjnym do zarządzania zasadami dostępu do klastra bazy danych PostgreSQL.

Zanim zagłębimy się w sposób pracy z plikiem konfiguracyjnym PostgreSQL, zainstalujmy PostgreSQL. Jeśli już go zainstalował, możesz pominąć sekcję.

Instalowanie PostgreSQL

Aby przestrzegać tego przewodnika, musisz upewnić się, że masz zainstalowany PostgreSQL. Zilustruję, jak go zainstalować w systemie Debian.

Na systemie łuku - https: // linuxhint.COM/install-PostgreSQL-10-arch-linux/

Na Centos/Rehl - https: // Linuxhint.com/install_postgreSQL_CENTOS8/

Zacznij od aktualizacji systemu za pomocą polecenia:

Aktualizacja instalacji sudo apt-get
Sudo apt-get Aktualizacja

Po zaktualizowaniu utwórz konfigurację repozytorium plików.

sudo sh -c 'echo "Deb http: // apt.PostgreSQL.org/pub/repos/apt $ (lsb_release -cs) -pgdg main ">/etc/apt/źródła.lista.D/PGDG.lista'

Następnie zaimportuj klucz podpisujący i zaktualizuj system jako:

wget --quiet -o -https: // www.PostgreSQL.org/media/klawisze/ACCC4CF8.ASC | sudo apt-key add-&& sudo apt-get aktualizacja

Na koniec zainstaluj PostgreSQL Server i klient z poleceniem:

sudo apt-get instaluj postgresql-13 PostgreSQL-client-13

Możesz określić inne wersje PostgreSQL, takie jak PostgreSQL 9, 10, 11, 12, 14 itd.

Możesz teraz zainicjować klaster PostgreSQL za pomocą polecenia:

PG_CTLCLUSTER 13 Główny start

Zrozumienie pliku ph_hba

Domyślnie plik konfiguracyjny pH_HBA znajduje się w katalogu klastra głównego.

W naszym przykładzie jest w:

/etc/postgresql/13/main/ph_hba.conf

PG_HBA jest zgodny z prostym formatem konfiguracji. Zawiera zestaw reguł konfiguracji, jedną regułę na wiersz.

Plik konfiguracyjny nie jest wrażliwy na białe listy, a wszystkie pliki poprzedzone # są traktowane jako komentarze i ignorowane.

Reguły PG_HBA nie mogą obejmować wielu linii, ponieważ każda linia jest interpretowana jako osobna reguła.

Plik konfiguracyjny zawiera 5 rekordów odpowiednio w następującym formacie:

  • Wpisz metodę adresu użytkownika bazy danych [Opcje]
  • Typ - Reprezentuje typ hosta.
  • Baza danych - Określa bazę danych, dla której reguła jest skonfigurowana.
  • Użytkownik - Nazwa użytkownika powiązana z zestawem bazy danych pasującej do zasady zestawu.
  • Adres - Adres klienta. Może to być pojedyncza adres IP lub cała podsieć. PostgreSQL obsługuje adresy IPv4 i IPv6.
  • metoda - Określa metodę uwierzytelniania dla set reguły.
  • Opcje uwierzytelniania - Opcje dodania funkcjonalności do określonej metody Auth.
  • Opcje - Opcje metody uwierzytelniania w formie nazwy = wartość.

PostgreSQL akceptuje różne metody uwierzytelniania. Obejmują one:

  • Zaufanie - Służy do ustawiania metody Auth do bezwarunkowego przyjmowania połączeń. Jeśli jest ustawiony na zaufanie, każdy może połączyć się z serwerem bazy danych jako dowolnego użytkownika i dowolnej bazy danych bez konieczności hasła.
  • Odrzucić - Ta metoda jest podobna do metody zaufania, ale odrzuca połączenia bezwarunkowo.
  • Hasło - Jeśli metoda jest ustawiona na hasło, klient łączący musi podać niezaszyfrowane hasło.
  • Rówieśnik - Metoda uwierzytelniania rówieśniczego działa na połączeniach lokalnych za pomocą nazwy użytkownika systemu operacyjnego klienta łączącego i sprawdzając dopasowaną bazę danych nazwy użytkownika. Przykładem byłoby polecenie PSQL bez flagi -u.
  • Certyfikat - Ta metoda uwierzytelniania wykorzystuje certyfikaty SSL klienta łączącego.
  • LDAP - Auth za pomocą serwera LDAP.

Powyższe jest listą niektórych obsługiwanych metod uwierzytelniania. Możesz sprawdzić inne metody w oficjalnej dokumentacji.

Przykładowe konfiguracje

Konfiguracja PG_HBA to surowy plik tekstowy, który można edytować z dowolnym obsługiwanym edytorem tekstu.

Poniżej znajdują się kilka konfiguracji, które możesz wykonać w celu rozwiązywania problemów lub bezpieczeństwa.

Pozwól każdemu użytkownikowi połączyć się z dowolną bazą danych (lokalny).

Wpisz metodę adresu użytkownika bazy danych
Lokalne wszystkie 127.0.0.0.1 zaufanie

Pozwól każdemu użytkownikowi z określonego adresu IP, aby połączyć się z określoną bazą danych, jeśli hasło jest poprawne.

Wpisz metodę adresu użytkownika bazy danych
host db_name All 192.168.0.112 Scram-SHA-256

Odrzuć wszystkie połączenia z określonej podsieci IP

Wpodaj metoda IP-MASK użytkownika Baza danych
Prowadzić wszystkie 192.168.1.110 255.255.0.0 Odrzuć

Zezwalaj lub odrzuć określony segment sieci IP

Wpisz metodę adresu użytkownika bazy danych
Prowadzić wszystkie 192.168.0.1/24 Odrzuć

Określanie adresów w protokole IPv4.

Pozwól każdemu użytkownikowi połączyć się z dowolną bazą danych na IPv6

Wpisz metodę adresu użytkownika bazy danych
host host All :: 1 zaufanie

Aby pokryć zarówno IPv6, jak i IPv4, możesz określić nazwę hosta.

Wpisz metodę adresu użytkownika bazy danych
hostować wszystkie .Lokalne odrzucenie

Zapisywanie i stosowanie konfiguracji

Przed zapisaniem konfiguracji upewnij się, że jest ona we właściwym formacie. Aby ponownie załadować i zastosować zmiany, możesz użyć narzędzia PG_CTL.

Polecenie to:

PG_CTL RELOOD -S -D/ETC/PostgreSQL/13

-D określa katalog zawierający plik konfiguracyjny. Jeśli nie jest określone, używane jest domyślne.

W podsumowaniu

PG_HBA.Plik konfiguracyjny Conf pomaga określić uwierzytelnianie klienta na serwerze PostgreSQL. Wprowadzanie zmian może pozwolić na zabezpieczenie systemu i umożliwić tylko określonym użytkownikom i hostom.