Come installare PostgreSQL 14 su Fedora 40 o 39 Linux

PostgreSQL 14 è un sistema di gestione di database relazionali open source rinomato per la sua robustezza, scalabilità e un ampio set di funzionalità. Una delle funzionalità chiave introdotte in PostgreSQL 14 è stata la capacità di gestire l'ordinamento incrementale, che ha migliorato significativamente le prestazioni delle query per carichi di lavoro specifici. Questa versione ha inoltre migliorato l'elaborazione parallela, il Vacuuming e l'elaborazione JSON, rendendola una scelta vincente per gli ambienti aziendali e di sviluppo. Sebbene ci siano alcune versioni indietro rispetto all'ultima versione, PostgreSQL 14 rimane un'opzione affidabile e ampiamente supportata.

Per installare PostgreSQL 14 su Fedora 40 o 39 utilizzando il terminale della riga di comando, è possibile importare e installare direttamente dalle build RPM di PostgreSQL. Questo metodo garantisce di disporre della versione più recente e semplifica gli aggiornamenti futuri.

Aggiorna Fedora prima dell'installazione di PostgreSQL 14

Per iniziare, aggiorna il tuo sistema Fedora per assicurarti che tutti i pacchetti siano aggiornati. Questo passaggio aiuta a prevenire potenziali conflitti durante l'installazione di PostgreSQL. Esegui il comando seguente:

sudo dnf update --refresh

Importa il repository di chiavi GPG RPM PostgreSQL

Inizia importando il repository PostgreSQL. Questa azione garantisce l'accesso alle versioni PostgreSQL più recenti. Seleziona e importa il repository corrispondente alla tua versione di Fedora Linux.

Importa PostgreSQL 14

Nota: ricordati di importare la versione corretta per la tua versione di distribuzione Fedora:

Per Fedora 40, usa questo comando:

sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-40-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Per Fedora 39, il comando è leggermente diverso:

sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-39-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Disabilita il modulo PostgreSQL predefinito (se applicabile)

I repository predefiniti di Fedora spesso includono PostgreSQL come modulo. Per dare priorità all'installazione dal repository PostgreSQL, è consigliabile disabilitare questo modulo predefinito. Utilizzare il seguente comando per farlo:

sudo dnf -qy module disable postgresql

Finalizzare l'installazione di PostgreSQL 14

Procedi con l'installazione di PostgreSQL 14

.Utilizzare questo comando per installare il server PostgreSQL 14 e la sua documentazione:

sudo dnf install postgresql14-server postgresql14-docs -y

Inoltre, è possibile installare il pacchetto di sviluppo come segue.

sudo dnf install postgresql14-devel

Infine, è possibile installare alcuni moduli aggiuntivi, binari e librerie di uso comune.

sudo dnf install postgresql14-libs postgresql14-odbc postgresql14-plperl postgresql14-plpython3 postgresql14-pltcl postgresql14-tcl postgresql14-contrib postgresql14-llvmjit

Inizializza il database PostgreSQL 14

Una volta installato, è necessario eseguire il comando seguente per inizializzare il database; non farlo impedirà il funzionamento di PostgreSQL.

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

Abilita il servizio PostgreSQL 14 Systemd

Per impostazione predefinita, PostgreSQL non è attivato. Utilizzare il comando seguente per avviare immediatamente il servizio e all'avvio del sistema.

sudo systemctl enable postgresql-14 --now

Verificare l'installazione di PostgreSQL 14

Successivamente, verifica lo stato per assicurarti che il software sia installato e attivato senza errori utilizzando il comando seguente.

systemctl status postgresql-14

Comandi del servizio Systemd per PostgreSQL 14

Gestione del servizio PostgreSQL 14

Il server del database PostgreSQL funziona come un servizio systemd denominato "postgresql-14" su Fedora. Gli amministratori di sistema possono gestire questo servizio utilizzando una serie di comandi systemd vitali per la manutenzione ordinaria e la risoluzione dei problemi.

Arresto del server PostgreSQL 14

Per arrestare il servizio PostgreSQL, magari per manutenzione o modifiche alla configurazione, utilizzare questo comando:

sudo systemctl stop postgresql-14

Avvio del server PostgreSQL 14

Per avviare il servizio PostgreSQL, soprattutto dopo un arresto o un'installazione iniziale, utilizzare il seguente comando:

sudo systemctl start postgresql-14

Riavvio del server PostgreSQL 14

Il comando restart è utile se è necessario applicare nuove configurazioni o reimpostare il servizio PostgreSQL. Arresta e quindi avvia il servizio in un'unica azione:

sudo systemctl restart postgresql-14

Ricaricamento del server PostgreSQL 14

Il comando ricarica è ideale per applicare le modifiche alla configurazione senza arrestare il database. Aggiorna il servizio senza interrompere il funzionamento del database:

sudo systemctl reload postgresql-14

Controllo dello stato del servizio PostgreSQL 14

Per verificare lo stato operativo del servizio PostgreSQL, utilizzare questo comando. Fornisce informazioni sullo stato del servizio, incluso se è attivo, inattivo o presenta problemi:

systemctl status postgresql-14

Configura PostgreSQL 14

Passaggio all'account Postgres 14

Accesso all'account Postgres 14

Durante l'installazione di PostgreSQL, viene creato automaticamente un account utente denominato "postgres". Questo account è associato al ruolo Postgres predefinito, che possiede privilegi di superutente. Per accedere al database PostgreSQL, passa all'account 'postgres' utilizzando il comando:

sudo -i -u postgres

Accesso al prompt PostgreSQL 14

Una volta passato all'utente "postgres", accedi direttamente al prompt di PostgreSQL digitando psql. Una volta stabilita la connessione, il prompt del terminale cambia in postgres=#, indicando una connessione attiva al database.

Per uscire dal database PostgreSQL è sufficiente digitare:

psql

Metodo alternativo per accedere a PostgreSQL 14

Utilizzo di Sudo per l'accesso diretto

In alternativa, interagisci con il database PostgreSQL senza cambiare account utilizzando:

exit

Alternativa al cambio di account Postgres

Un modo alternativo per interagire con il database Postgres senza modificare gli account utente è utilizzare un comando sudo per connettersi direttamente. Puoi farlo digitando:

sudo -u postgres psql

Questo comando è efficace per interazioni rapide con il database poiché ignora comandi terminali aggiuntivi.

Per uscire, come con il primo metodo, digitare exit.

exit

Crea utente e database con PostgreSQL 14

Creazione di un nuovo ruolo utente

Solo i superutenti e i ruoli con il privilegio createrole possono creare nuovi ruoli. Per creare un utente utilizzare il comando:

sudo su - postgres -c "createuser <name>"

Sostituire con il nome utente desiderato.

Creazione di un nuovo database

Successivamente, crea un database PostgreSQL per l'utente appena creato:

sudo su - postgres -c "createdb <namedb>"

Sostituire con il nome del database desiderato.

Concessione delle autorizzazioni

Per concedere le autorizzazioni al nuovo utente sul nuovo database, connettiti prima al database PostgreSQL come superutente:

sudo -u postgres psql

Quindi, concedi tutti i privilegi al nuovo utente:

GRANT ALL PRIVILEGES ON DATABASE <usernamedb> TO <name>;

Sostituire con il nome del database e con il nome utente. Per uscire digitare exit.

exit

Configura Firewalld per PostgreSQL 14

Stabilire le regole del firewall per PostgreSQL 14

La protezione di PostgreSQL implica molto più che la semplice installazione ed esecuzione del servizio; è fondamentale configurare i controlli di accesso alla rete in modo efficace. Ciò protegge il database e garantisce che solo il traffico legittimo lo raggiunga. Esamineremo la configurazione di firewalld, un gestore firewall dinamico in Fedora, per salvaguardare PostgreSQL.

Creazione di una zona Firewalld per PostgreSQL

Innanzitutto, crea una zona dedicata in firewalld per PostgreSQL. Questo approccio consente un controllo più granulare e chiarezza nella gestione delle regole specifiche di PostgreSQL:

sudo firewall-cmd --permanent --new-zone=postgres

Questo comando stabilisce una zona "postgres", isolando le regole del firewall relative a PostgreSQL per una gestione più semplice.

Limitazione dell'accesso agli indirizzi IP conosciuti

Consentire l'accesso da un singolo indirizzo IP

Per scenari in cui solo un client o server deve accedere a PostgreSQL:

sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4

Sostituire 1.2.3.4 con l'indirizzo IP specifico che richiede l'accesso al database.

Autorizzazione di una sottorete

In ambienti come le reti aziendali, potrebbe essere necessario consentire un'intera sottorete:

sudo firewall-cmd --permanent --zone=postgres --add-source=192.168.1.0/24

Qui, 192.168.1.0/24 rappresenta la sottorete. Regola questo valore in modo che corrisponda all'intervallo di rete desiderato.

Concessione dell'accesso a più IP specifici

Per scenari con diversi IP noti che richiedono l'accesso:

sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.5

Ripeti questo comando per ciascun indirizzo IP.

Gestione dell'accesso alle porte per PostgreSQL 14

Configurazione della porta PostgreSQL predefinita

Per installazioni standard utilizzando la porta predefinita:

sudo firewall-cmd --permanent --zone=postgres --add-port=5432/tcp
Personalizzazione della configurazione della porta

Se PostgreSQL opera su una porta non standard (ad esempio, 5433):

sudo firewall-cmd --permanent --zone=postgres --add-port=5433/tcp

Modifica il numero di porta in base alla tua specifica configurazione PostgreSQL.

Implementazione e verifica delle nuove regole del firewall

Applicazione delle modifiche

Per attivare le nuove regole ricaricare firewalld:

sudo firewall-cmd --reload

Questo passaggio garantisce che le nuove configurazioni abbiano effetto immediato.

Controllo delle configurazioni

Dopo la configurazione, è prudente rivedere le regole impostate per la zona "postgres":

sudo firewall-cmd --list-all --zone=postgres

Questo comando visualizza tutte le regole attive nella zona 'postgres', consentendo la verifica del file setup.exp

Configurazione dell'accesso remoto per PostgreSQL 14

Configurazione delle interfacce di ascolto per l'accesso remoto

Modifica della configurazione PostgreSQL

Per abilitare l'accesso remoto a PostgreSQL, è necessario modificare le impostazioni dell'interfaccia nel file postgresql.conf. Questo processo consente a PostgreSQL di accettare connessioni da varie fonti.

Assicurarsi che siano attive le impostazioni di FirewallD per consentire l'accesso remoto, come descritto nelle sezioni precedenti.

Accesso al file di configurazione

Per modificare la configurazione di PostgreSQL 14, utilizzare l'editor di testo nano:

sudo nano /var/lib/pgsql/14/data/postgresql.conf
Modifica dell'indirizzo di ascolto

Nella sezione "Impostazioni di connessione", modifica listen_addresses da "localhost" ai tuoi requisiti:

  • Ascolta su tutte le interfacce: per accettare connessioni da qualsiasi fonte, imposta listen_addresses su "*".
listen_addresses = '*'
  • Ascolta su un'interfaccia specifica: specifica un indirizzo IP per limitare le connessioni a un'interfaccia particolare.
listen_addresses = '192.168.1.100'

Dopo la modifica, salva il file (Ctrl + O, quindi Invio) ed esci (Ctrl + X).

Riavvio del servizio PostgreSQL 14

Applica le modifiche riavviando il servizio PostgreSQL:

sudo systemctl restart postgresql-14

Conferma delle porte di ascolto

Utilizza l'utilità ss per verificare che PostgreSQL sia in ascolto sulle porte specificate:

ss -nlt | grep 5432

In caso di successo, dovresti vedere le porte nella porta del tuo terminale.

Impostazioni avanzate di connessione remota in pg_hba.conf

Accesso personalizzato nel file pg_hba.conf

Per un controllo capillare sulle connessioni remote, il file pg_hba.conf offre varie opzioni di personalizzazione.

Modificando pg_hba.conf

Apri il file pg_hba.conf:

sudo nano /var/lib/pgsql/14/data/pg_hba.conf
File di configurazione pg_hba per PostgreSQL 14 su Fedora Linux
Screenshot di esempio del file di configurazione pg_hba per PostgreSQL 14 su Fedora Linux
Configurazione delle regole di accesso remoto
Consentire utenti e database specifici

Per limitare l'accesso a un utente e a un database specifici da un particolare indirizzo IP:

host miodatabase mioutente 192.168.1.100/32 md5
Consentire una sottorete

Per un accesso più ampio, ad esempio un'intera sottorete:

ospita tutto tutto 192.168.1.0/24 md5
Utilizzo di diversi metodi di autenticazione

Scegli un metodo di autenticazione adatto al tuo ambiente. Per l'autenticazione basata su password:

ospita tutto tutto 0.0.0.0/0 md5

Per l'autenticazione attendibile (notare i rischi per la sicurezza):

host all all 0.0.0.0/0 trust

Dopo aver configurato le regole desiderate, salva ed esci dall'editor.

Applicazione e verifica delle modifiche

Riavvia PostgreSQL per implementare le nuove configurazioni:

sudo systemctl restart postgresql-14

Verifica le impostazioni effettive in pg_hba.conf utilizzando:

cat /var/lib/pgsql/14/data/pg_hba.conf

Configura SELinux per PostgreSQL 14

Quando si configura PostgreSQL 14 su Fedora, è essenziale configurare correttamente SELinux (Security-Enhanced Linux). SELinux aggiunge un livello di sicurezza applicando politiche di controllo degli accessi. Una configurazione errata può portare a problemi comuni come negazioni di accesso o interruzioni del servizio.

Impostazione di SELinux sulla modalità permissiva per la risoluzione dei problemi

Regolazione temporanea della modalità SELinux

Se riscontri problemi con l'avvio o il corretto funzionamento di PostgreSQL, valuta la possibilità di impostare temporaneamente SELinux sulla modalità 'Permissiva'. Questa modalità consente operazioni che verrebbero bloccate in modalità "Applicazione", ma le registra per la revisione:

sudo setenforce 0

Registri di monitoraggio per i rifiuti AVC

Controlla i log di SELinux per i rifiuti AVC (Access Vector Cache):

sudo restorecon -Rv /var/lib/pgsql/14/data/

Questo comando aiuta a identificare le politiche SELinux che impediscono a PostgreSQL di funzionare correttamente.

Configurazione delle policy SELinux per PostgreSQL 14

Ripristino del contesto SELinux predefinito

Per garantire che i file abbiano il contesto SELinux corretto, utilizzare il comando Restorecon. Contesti errati su directory o file PostgreSQL possono causare problemi di accesso:

sudo setsebool -P postgresql_can_rnetwork 1

Questo comando abilita il valore booleano postgresql_can_rnetwork, consentendo le connessioni di rete.

Configurazione avanzata di SELinux

Personalizzazione delle policy SELinux

In configurazioni più complesse, come quando PostgreSQL interagisce con altri servizi o porte personalizzate, potrebbe essere necessaria la creazione di policy SELinux personalizzate. Utilizza lo strumento audit2allow per generare moduli di policy personalizzati in base a esigenze specifiche.

Applicazione di policy personalizzate

Dopo aver creato le policy personalizzate, applicale utilizzando:

sudo semodule -i my_postgresql.pp

Sostituisci my_postgresql.pp con il nome del tuo file di policy.

Verifica delle impostazioni di SELinux

Controllo dello stato di SELinux

Conferma lo stato di SELinux per assicurarti che sia impostato correttamente per la tua installazione PostgreSQL:

sestatus

Convalida dei contesti dei file

Verifica che i file e le directory relativi a PostgreSQL abbiano i contesti SELinux appropriati:

ls -Z /var/lib/pgsql/14/data/

Conclusione

Con PostgreSQL 14 installato con successo sul tuo sistema Fedora, puoi sfruttare le sue funzionalità avanzate e le robuste prestazioni per le esigenze del tuo database. Controlla regolarmente la disponibilità di aggiornamenti e upgrade futuri dalle build RPM di PostgreSQL per mantenere aggiornato il tuo sistema.

Per ulteriori informazioni sull'utilizzo di PostgreSQL, visitare il sito ufficiale documentazione.

Joshua James
Seguimi
Ultimi post di Joshua James (vedi tutto)

Lascia un commento