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