Home > Centos, Debian, Postgresql - SQL, Ubuntu > postgresql abilitare accesso remoto linux ubuntu centos debian

postgresql abilitare accesso remoto linux ubuntu centos debian

Osservo che ritorna con una certa frequenza la domanda come abilitare l’accesso remoto in postgresql versioni 8.x e 9.x. La questione degli accesso remoto è basilare in quanto attiene anche al livello della sicurezza. In via generale l’accesso remoto in postgres è controllato dai due file postgresql.conf e pg_hba.conf.
La posizione di questi file varia a seconda delle distribuzioni ad esempio in centos/redahat fedora i due files sono posizionati nella data_directory con i postgresql in debian /ubuntu

/var/lib/pgsql/data

In debian/ubuntu si trovano si trovano in etc il percorso è del tipo
/etc/postgresql/num-versione/main

postgresql.conf    Il file postgresql tra i vari parametri che controlla Gli indirizzi ip “ascoltati” da postgresql sono rappresentati con listen_address.
Il valore  di default di listen_adress è “localhost” ed è indicato con

listen_address = 'localhost"

Questo significa che l’accesso a postgresql è consentito di default solo all’elaboratore che ha in esecuzione il server sql. Per consentire l’accesso da pc remoto a postgresql bisogna inanzitutto cambiare il valore “localhost” ad esempio è possibile utilizzare “*”per consentire l’accesso a tutti.

listen_address = '*"

E possibile indicare anche un lista di indirizzi o domini.

Una volta consentito l’ascolto su tutti gli indirizzi si utilizza il file pg_hba.conf per indicare a postgresql quali users possono accedere a quali databases e come possono farlo.

# TYPE  DATABSE     USER       CIDR-ADDRESS           METHOD

# local for domain socket only 
local   all         postgres                          ident
# IPv4 connections  
# TYPE  DATABSE     USER       CIDR-ADDRESS           METHOD

# local for domain socket only 
local   all         postgres                          ident
# IPv4 connections  
host    all         postgres                          md5 
host    all         all         127.0.0.1/32          md5 
host    all         all         192.168.0.0/24        md5
# IPv6 
host    all         all         ::1/128               md5

Due esemplificazioni  l’utente postgres su local può accedere a tutti i database senza specificare  password (metodo ident)  .
Tutti gli users degli hosts della sottorete 192.168.0.0/24 possono accedere a tutti i databases in postgresql ( a patto ovviamente che il database annoveri tra i suoi utenti l’user che accede )  con metodo di cifratura md5 e pertanto con password.

Attenzione: ricordare che postgresql analizzando il file  pg_hba quando trova la prima riga che soddisfa le condizioni della connessione non processa le righe successive.

Ovviamente sono possibili impostazioni più sofisticate di quelle dell’esempio anche considerati i diversi metodi di autenticazioni e le casistiche che si possono presentare. E’ tuttavia buona norma limitare l’accesso al database alla sola sottorete locale. Del resto è sempre possibilie creare un tunnel ssh per accedere così da agire come  si operasse in locale.

Controllare le connessioni

PostgreSQL ascolta le connessioni utilizzando il sockets unix ( in genere in /tmp ).
Pertanto si può effettuare il controllo con:

netstat -nxl | grep PGSQL

ad esempio in Ubuntu

$ netstat -nxl | grep PGSQL
unix 2 [ ACC ] STREAM LISTENING 10109 /var/run/postgresql/.s.PGSQL.5432

Altre risorse:

Advertisements
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: