Configurazione PostgreSQL PH_HBA

Configurazione PostgreSQL PH_HBA

Configurazione basata su host, comunemente nota come ph_hba.conf, è un file speciale utilizzato per l'autenticazione client PostgreSQL. Puoi pensarlo come un file di configurazione per la gestione delle politiche di accesso al cluster di database PostgreSQL.

Prima di immergerci su come lavorare con il file di configurazione PostgreSQL, installamo PostgreSQL. Se lo hai già installato, sentiti libero di saltare la sezione.

Installazione di PostgreSQL

Per seguire questa guida, è necessario assicurarsi di avere PostgreSQL. Illustrerò come installarlo su un sistema Debian.

Su arch system - https: // linuxhint.com/install-postgresql-10-arch-linux/

On CentOS/rehl - https: // linuxhint.com/install_postgresql_centos8/

Inizia aggiornando il sistema con il comando:

Sudo Apt-get Installa Aggiornamento
SUDO APT-OPGRADO

Una volta aggiornato, crea una configurazione del repository di file.

sudo sh -c 'echo "deb http: // apt.Postgresql.org/pub/repos/apt $ (lsb_release -cs) -pgdg main ">/etc/apt/fonti.elenco.d/pgdg.elenco'

Quindi, importa la chiave di firma e aggiorna il tuo sistema come:

Wget --quiet -o -https: // www.Postgresql.Org/Media/Keys/ACCC4CF8.ASC | sudo apt-key aggiungi-&& sudo apt-get update

Infine, installa PostgreSQL Server e client con il comando:

sudo apt-get installa postgresql-13 postgresql-client-13

È possibile specificare altre versioni PostgreSQL come PostgreSQL 9, 10, 11, 12, 14, ecc.

Ora puoi inizializzare il cluster PostgreSQL con il comando:

pg_ctlcluster 13 start principale

Comprensione del file ph_hba

Per impostazione predefinita, il file di configurazione PH_HBA si trova nella directory del cluster root.

Nel nostro esempio, è in:

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

PG_HBA segue un semplice formato di configurazione. Include una serie di regole di configurazione, una regola per riga.

Il file di configurazione non è sensibile ai bianchi e tutti i file preceduti da un # vengono trattati come commenti e ignorati.

Le regole PG_HBA non possono estendersi per più righe poiché ogni riga viene interpretata come una regola separata.

Il file di configurazione contiene rispettivamente 5 record nel seguente formato:

  • Digitare il metodo dell'indirizzo utente del database [Opzioni]
  • Tipo - Rappresenta il tipo host.
  • Banca dati - Specifica il database per il quale è configurata la regola.
  • Utente - Il nome utente associato al database set corrisponde alla regola impostata.
  • Indirizzo - L'indirizzo del cliente. Può essere un singolo IP o un'intera sottorete. PostgreSQL supporta gli indirizzi IPv4 e IPv6.
  • Metodo - Specifica il metodo di autenticazione per la regola impostata.
  • Opzioni di autenticazione - Opzioni per aggiungere funzionalità al metodo Auth specificato.
  • Opzioni - Opzioni del metodo di autenticazione sotto forma di nome = valore.

PostgreSQL accetta vari metodi di autenticazione. Questi includono:

  • Fiducia - Utilizzato per impostare il metodo Auth per accettare le connessioni incondizionatamente. Se impostato su fidati, chiunque può connettersi al server di database come utente e qualsiasi database senza bisogno di una password.
  • Rifiutare - Questo metodo è simile al metodo di fiducia, ma rifiuta le connessioni incondizionatamente.
  • Parola d'ordine - Se il metodo è impostato sulla password, il client di connessione deve fornire una password non crittografata.
  • Pari - Il metodo di autenticazione peer funziona sulle connessioni locali utilizzando il nome utente del sistema operativo del client di connessione e verificando un database corrispondente per il nome utente. Un esempio sarebbe il comando PSQL senza il flag -u.
  • Cert - Questo metodo di autenticazione utilizza i certificati SSL del client di connessione.
  • Ldap - AUTH Utilizzo di un server LDAP.

Quanto sopra è un elenco di alcuni dei metodi di autenticazione supportati. Puoi controllare altri metodi nella documentazione ufficiale.

Configurazioni di esempio

La configurazione PG_HBA è un file di testo grezzo che è possibile modificare con qualsiasi editor di testo supportato.

Di seguito sono riportate alcune configurazioni che puoi effettuare per la risoluzione dei problemi o per scopi di sicurezza.

Consenti a qualsiasi utente di connettersi a qualsiasi database (locale).

Digitare il metodo dell'indirizzo utente del database
locale tutti i 127.0.0.0.1 fiducia

Consenti a qualsiasi utente da IP specifico di connettersi a un database specifico se la password è corretta.

Digitare il metodo dell'indirizzo utente del database
host db_name tutti i 192.168.0.112 Scram-Sha-256

Rifiuta tutte le connessioni da una sottorete IP specifica

Digitare il metodo IP-Maschera per l'indirizzo IP dell'utente del database
Ospiti tutti i 192.168.1.110 255.255.0.0 rifiuto

Consenti o rifiuta un segmento di rete IP specifico

Digitare il metodo dell'indirizzo utente del database
Ospiti tutti i 192.168.0.1/24 rifiuto

Specifica degli indirizzi nel protocollo IPv4.

Consenti a qualsiasi utente di connettersi a qualsiasi database su IPv6

Digitare il metodo dell'indirizzo utente del database
Ospita All All :: 1 Trust

Per coprire sia IPv6 che IPv4, è possibile specificare il nome host.

Digitare il metodo dell'indirizzo utente del database
Ospita tutto .rifiuto locale

Risparmio e applicazione della configurazione

Prima di salvare la configurazione, assicurarsi che sia nel formato corretto. Per ricaricare e applicare le modifiche, è possibile utilizzare l'utilità PG_CTL.

Il comando è:

PG_CTL RELADL -S -D/etc/PostgreSQL/13

Il -D specifica la directory contenente il file di configurazione. Se non viene specificato nessuno, viene utilizzato il valore predefinito.

In sintesi

Il pg_hba.Il file di configurazione di configurazione aiuta a specificare l'autenticazione client sul server PostgreSQL. Apportare modifiche può consentire di proteggere il tuo sistema e consentire solo utenti e host specifici.