PostgreSQL PH_HBA -Konfiguration

PostgreSQL PH_HBA -Konfiguration

Host-basierte Konfiguration, allgemein bekannt als PH_HBA.Conf ist eine spezielle Datei, die für die PostgreSQL -Client -Authentifizierung verwendet wird. Sie können es sich als Konfigurationsdatei vorstellen.

Bevor wir uns mit der PostgreSQL -Konfigurationsdatei eintauchen, installieren wir postgresql. Wenn Sie es bereits installiert haben, können Sie den Abschnitt überspringen.

Postgresql installieren

Um diesem Handbuch zu folgen, müssen Sie sicherstellen, dass PostgreSQL installiert ist. Ich werde veranschaulichen, wie man es auf einem Debian -System installiert.

Auf Arch System - https: // linuxHint.com/install-postgresql-10-arch-linux/

Auf Centos/RehL - https: // linuxHint.com/install_postgresql_centos8/

Aktualisieren Sie Ihr System mit dem Befehl:

sudo apt-Get Installieren Sie Update
sudo apt-get upgrade

Erstellen Sie nach der Aktualisierung eine Datei -Repository -Konfiguration.

sudo sh -c 'echo "Deb http: // apt.PostgreSQL.org/pub/repos/apt $ (lsb_release -cs) -pgdg main ">/etc/apt/Quellen.Liste.D/PGDG.Liste'

Importieren Sie als Nächstes den Signaturschlüssel und aktualisieren Sie Ihr System als:

WGet -Quiet -o -https: // www.PostgreSQL.org/media/keys/ACCC4CF8.ASC | sudo apt-key add-&& sudo apt-Get-Update

Installieren Sie schließlich Postgresql Server und Client mit dem Befehl:

sudo APT-Get Installieren Sie Postgresql-13 postgresql-client-13

Sie können weitere PostgreSQL -Versionen wie PostgreSQL 9, 10, 11, 12, 14 usw. angeben.

Sie können jetzt den PostgreSQL -Cluster mit dem Befehl initialisieren:

PG_CTLCLUSTER 13 Hauptstart

Verständnis der PH_HBA -Datei

Standardmäßig befindet sich die Konfigurationsdatei von PH_HBA im Root -Cluster -Verzeichnis.

In unserem Beispiel ist es in:

/etc/postgresql/13/main/ph_hba.Conf

Das PG_HBA folgt einem einfachen Konfigurationsformat. Es enthält eine Reihe von Konfigurationsregeln, eine Regel pro Zeile.

Die Konfigurationsdatei ist nicht empfindlich gegenüber Whitespace, und alle Dateien, denen eine # vorangegangen ist, werden als Kommentare behandelt und ignoriert.

Die PG_HBA -Regeln können mehrere Zeilen nicht umfassen, da jede Zeile als separate Regel interpretiert wird.

Die Konfigurationsdatei enthält 5 Datensätze im folgenden Format:

  • Geben Sie die Datenbankbenutzeradressenmethode [Optionen] ein
  • Typ - Repräsentiert den Host -Typ.
  • Datenbank - Gibt die Datenbank an, für die die Regel konfiguriert ist.
  • Benutzer - Der mit der festgelegte Benutzername zugeordnete SET -Datenbank, der mit der festgelegten Regel entspricht.
  • Adresse - Die Adresse des Kunden. Es kann eine einzelne IP oder ein ganzes Subnetz sein. PostgreSQL unterstützt IPv4- und IPv6 -Adressen.
  • Methode - Gibt die Authentifizierungsmethode für die festgelegte Regel an.
  • Authentifizierungsoptionen - Optionen, um der angegebenen Auth -Methode Funktionalität hinzuzufügen.
  • Optionen - Authentifizierungsmethodenoptionen in Form von Namen = Wert.

PostgreSQL akzeptiert verschiedene Authentifizierungsmethoden. Diese beinhalten:

  • Vertrauen - Wird verwendet, um die Auth -Methode festzulegen, um Verbindungen bedingungslos zu akzeptieren. Wenn Sie auf Vertrauen eingestellt sind, kann jeder eine Verbindung zum Datenbankserver als Benutzer und in jeder Datenbank herstellen, ohne ein Kennwort zu benötigen.
  • Ablehnen - Diese Methode ähnelt der Vertrauensmethode, lehnt aber bedingungslos Verbindungen ab.
  • Passwort - Wenn die Methode auf Passwort festgelegt ist, muss der Verbindungsclient ein unverschlüsseltes Kennwort angeben.
  • Peer - Die Peer -Authentifizierungsmethode funktioniert auf lokalen Verbindungen, indem der Betriebssystem -Benutzername des Connecting -Clients verwendet wird und eine übereinstimmende Datenbank für den Benutzernamen überprüft wird. Ein Beispiel wäre PSQL -Befehl ohne die -u -Flag.
  • Zertifikat - Diese Authentifizierungsmethode verwendet die SSL -Zertifikate des Connecting -Clients.
  • LDAP - Auth über einen LDAP -Server.

Die oben genannte ist eine Liste einiger der unterstützten Authentifizierungsmethoden. Sie können andere Methoden in der offiziellen Dokumentation überprüfen.

Beispielkonfigurationen

Die PG_HBA -Konfiguration ist eine Rohtextdatei, die Sie mit jedem unterstützten Texteditor bearbeiten können.

Im Folgenden sind einige Konfigurationen aufgeführt, die Sie entweder für die Fehlerbehebung oder Sicherheitszwecke vornehmen können.

Erlauben Sie jedem Benutzer, eine Verbindung zu einer beliebigen Datenbank herzustellen (lokal).

Geben Sie die Datenbankbenutzeradressmethode ein
lokal alle alle 127.0.0.0.1 Vertrauen

Erlauben Sie jedem Benutzer von einer bestimmten IP, eine Verbindung zu einer bestimmten Datenbank herzustellen, wenn das Kennwort korrekt ist.

Geben Sie die Datenbankbenutzeradressmethode ein
Host db_name alle 192.168.0.112 Scram-Sha-256

Lehnen Sie alle Verbindungen von einem bestimmten IP -Subnetz ab

Geben Sie Datenbankbenutzer IP-Addesse IP-Mask-Methode ein
Gastgeber alle alle 192.168.1.110 255.255.0.0 ablehnen

Ein bestimmtes IP -Netzwerksegment zulassen oder ablehnen

Geben Sie die Datenbankbenutzeradressmethode ein
Gastgeber alle alle 192.168.0.1/24 Ablehnung

Angeben von Adressen im IPv4 -Protokoll.

Ermöglichen Sie jedem Benutzer, eine Verbindung zu einer Datenbank auf IPv6 herzustellen

Geben Sie die Datenbankbenutzeradressmethode ein
Host ALL ALL :: 1 Vertrauen

Um sowohl IPv6 als auch IPv4 abzudecken, können Sie stattdessen den Hostnamen angeben.

Geben Sie die Datenbankbenutzeradressmethode ein
Host alle alle .Lokale Ablehnung

Konfiguration speichern und anwenden

Stellen Sie vor dem Speichern der Konfiguration sicher, dass sie sich im richtigen Format befindet. Um die Änderungen neu zu laden und anzuwenden, können Sie das Dienstprogramm PG_CTL verwenden.

Der Befehl ist:

pg_ctl reload -s -d/etc/postgresql/13

Der -D gibt das Verzeichnis an, das die Konfigurationsdatei enthält. Wenn keiner angegeben ist, wird der Standard verwendet.

In Summe

Die pg_hba.Die Conf -Konfigurationsdatei kann die Client -Authentifizierung auf dem PostgreSQL -Server angeben. Durch Änderungen können Sie Ihr System sichern und nur bestimmten Benutzern und Hosts ermöglichen.