«

»

ago
03

PostgreSQL + STunnel

Ciao a tutti!

Ho trovato questo articolo interessante su come collegare il DBMS PostgreSQL utilizzando una connessione protetta, ovvero un tunnel ssh e, dato che ieri si sono iscritti alcuni utenti che conosco personalmente e che “giocherellano”, per così dire, con questo software, ho ritenuto utile contattare il relativo autore, Enrico Pirozzi, per poter pubblicare questo mini-howto… che ne pensate?

Livello: Avanzato

Vediamo ora come collegare un client PostgreSQL ad esempio psql, o pgadmin, attraverso un tunnel ssh realizzato con stunnel. Per prima cosa scarichiamo il pacchetto dal sito ufficiale http://www.stunnel.org e installiamo il pacchetto secondo le regole di installazione, se si è su una macchina FreeBSD si può tranquillamente usare il port ed installarlo con il classico make, make install etc… Andiamo ora alla configurazione, il nostro obiettivo è di realizzare un tunnel del tipo:

Client PostgreSQL porta 5432 -> 5432 stunnel 5430 ->……………….tunnel ssh sulla 5430 ………..-> 5430 stunnel 5432 -> Server PostgreSQL

Lato Server
Sulla macchina server nel file stunnel.conf dovrete avere qualcosa come

cert = /usr/local/etc/stunnel/stunnel.pem
chroot = /var/run/stunnel/
# PID is created inside chroot jail
pid = /stunnel.pid
setuid = nobody
setgid = nogroup

# Use it for client mode
client = no

# Service-level configuration

[postgres_stunnel]
accept = 5430
connect = 5432

in cui si accettano connessioni provenienti dalla 5430 che vengono poi redirette sulla 5432 del server PostgreSQL

Lato Client
Sul lato Client la configurazione darà opposta

client = yes
cert = stunnel.pem

[5430]
accept = localhost:5432
connect = ipserverremoto:5430

in cui si accettano connessioni provenienti dalla 5432 che vengono poi redirette sulla 5430 del server stunnel con ip=ipremoto. A questo punto lanciamo stunnel sul server e sul client e proviamo a fare una connessione pgadmin ad esempio selezionando 127.0.0.1 come ip del server postgres, e gli altri parametri in base al database creato. Un osservazione se sulla macchina dove eseguiamo il client è presente anche una installazione server di PostgreSQL ricordiamoci di fermare il server prima di lanciare la connessione all’ip locale, altrimenti per ovviare all’inconveniente possiamo configurare il client di stunnel con:

client = yes
cert = stunnel.pem

[5430]
accept = localhost:5431
connect = ipserverremoto:5430

ora possiamo rilanciare la connessione dal client verso il server ricordandoci di usare come ip il 127.0.0.1 e come porta la 5431.

Nota: Il file di certificazione stunnel.pem deve essere lo stesso in entrambi i lati della connessione.
Fonte di questo articolo: L’articolo è stato reperito dal seguente link: http://www.enricopirozzi.info/index.php?/archives/P3.html - il blog personale di Enrico Pirozzi

Lascia un Commento

Il tuo indirizzo mail non sarà pubblicato!

Puoi usare i seguenti tag HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>