Creazione Tunnel SSH per client Postgres 10.

Installazione, configurazione e uso di Ubuntu come server: web, ftp, mail, news, proxy, dns e altro.
macse
Prode Principiante
Messaggi: 3
Iscrizione: domenica 17 giugno 2018, 10:52
Desktop: windows 7
Distribuzione: Ubuntu Server 18.04 LTS
Sesso: Maschile

Creazione Tunnel SSH per client Postgres 10.

Messaggio da macse »

Buongiorno a tutti
Ho provato a fare una ricerca, ma credo che quello di cui ho bisogno non sia solo una soluzione e quindi ho deciso di aprire una discussione.
Vi spiego.
Ho una macchina virtuale (Vmware) sulla quale ho installato ubuntu server 18.04 LTS
su questa ho installato:
- Postgresql 10 + PostGis
- Apache2 e PHP (senza mysql)
- server ftp (vsftpd)

Detto questo ho bisogno di amministrare il DB da remoto utilizzando pgadmin4 installato sulla macchina Win7 in rete (in questo caso è la macchina che esegue anche la VMachine). Per fare questo ho creato un tunnel ssh e una volta stabilito mi connetto correttamente da win7 con il client e gestisco il DB senza problemi.
Il "problema" nasce al riavvio della VMachine che, ovviamente, chiude il tunnel. Per ora l'unico modo di riaprire il tunnel ssh è quello di fare il login e rilanciare il comando (che ho inserito in uno script).
Vorrei che il tunnel si aprisse al boot senza dover loggare l'utente.
vi posto il codice che uso per aprire il tunnel

Codice: Seleziona tutto

sudo ssh -fNg user@192.168.XXX.XXX -L 8888:127.0.0.1:5432


1. ho provato ad inserire lo script in /etc/init.d/ ma non crea nulla anche perchè poi lanciandolo manualmente mi chiede la password di user@192.168.XXX.XXX
2. inoltre non volevo mettere l'IP della macchina perchè se cambiasse dovrei modificare manualmente il codice

il file inserito in /etc/init.d/ ha questi permessi:

Codice: Seleziona tutto

-rwxr-xr-x root root  ......
Grazie mille per la pazienza
Massimiliano
Avatar utente
Filoteo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1315
Iscrizione: venerdì 28 agosto 2015, 9:38
Desktop: Gnome
Distribuzione: Arch Linux

Re: Creazione Tunnel SSH per client Postgres 10.

Messaggio da Filoteo »

192.168.XXX.XXX è la macchina con Windows 7?
macse
Prode Principiante
Messaggi: 3
Iscrizione: domenica 17 giugno 2018, 10:52
Desktop: windows 7
Distribuzione: Ubuntu Server 18.04 LTS
Sesso: Maschile

Re: Creazione Tunnel SSH per client Postgres 10.

Messaggio da macse »

No quello che ho inserito nel comando ssh è l'IP del server.infatti inserisco la pwd dell'utente user e si crea il tunnel correttamente tant'è che mi connetto da win7 (con il client postgresql)
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2850
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Creazione Tunnel SSH per client Postgres 10.

Messaggio da DoctorStrange »

Il motivo per il quale potrebbe non funzionare, nche se mi riservo il beneficio del dubbio è che, nella sequenza di boot, prima di inizializzare la rete e connettersi, deve passare un certo intervallo di tempo, durante il quale vengono prima avviati i servizi essenzili alla macchina.

Sò che esistono nel Network Manager, dei particolari percorsi chiamato "after ipv4 startup" o con un nome simile, che comunque si trovano all'interno del percorso di installazione del Network Manager stesso, che esistono proprio per questo genere di scopi, eseguono ed avviano un certo numero di script, solo dopo che la connessione alla rete è stabilita. Fossi in te proverei a mettere il tuo script in questa cartella, assegnargli tutti i privilegi di esecuzione, e vedere se in questo modo funziona.

Oltre questo, logicamente ti scontrerai con i comunissimi problemi che derivano dal tentare di eseguire uno script che ha bisogno di privilegi di amministratore in un ambiente nel quale ti logghi come semplice utente.

Il metodo canonico, sarebbe quello di "addestrare" il server verso il quale ti connetti per informarlo che esiste un particolare utente che può connettersi al server stesso senza avere privilegi sudo.

In alternativa puoi tentare di connetterti al server direttamente con l'utente root, operazione logicamente molto rischiosa, ma comunque possibile.

A te la scelta.
Avatar utente
Filoteo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1315
Iscrizione: venerdì 28 agosto 2015, 9:38
Desktop: Gnome
Distribuzione: Arch Linux

Re: Creazione Tunnel SSH per client Postgres 10.

Messaggio da Filoteo »

Beh sicuramente non funziona perché dovresti inserire la password in modo interattivo. Puoi risolvere usando le chiavi ssh. Sul client windows come ti connetti tramite il tunnel?

Per quanto riguarda l’IP del server, puoi settare il router in modo che dia un IP statico alla tua macchina virtuale in base all’indirizzo MAC (ammesso che la VM abbia la scheda di rete in bridge).

Terzo, sicuro che servano i privilegi di root per aprire il tunnel?
macse
Prode Principiante
Messaggi: 3
Iscrizione: domenica 17 giugno 2018, 10:52
Desktop: windows 7
Distribuzione: Ubuntu Server 18.04 LTS
Sesso: Maschile

Re: Creazione Tunnel SSH per client Postgres 10.

Messaggio da macse »

In effetti è proprio questo il motivo della mia discussione. Ubuntu server lo conosco poco. Ssh per nulla. È la prima volta che lo uso. Lo script così com'è funziona ma non so se è la soluzione migliore. Cmq io ho la necessità che il tunnel venga generato automaticamente all'avvio. Non ho vincoli di utente root o meno. Mi connetto solo ed esclusivamente tramite pgadmin4 che è un gestore del dB. Li non faccio nient'altro che inserire IP e porta (8888) nome utente e pwd del dB. Ho provato a collegarmi direttamente alla porta del dB (la 5432) ma non funziona. Probabilmente non espone il servizio. Ho trovato su un sito che l'unico modo è usare un tunnel ssh. Pertanto qualunque suggerimento, soprattutto sulla teoria, è ben accetto.
Avatar utente
Filoteo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1315
Iscrizione: venerdì 28 agosto 2015, 9:38
Desktop: Gnome
Distribuzione: Arch Linux

Re: Creazione Tunnel SSH per client Postgres 10.

Messaggio da Filoteo »

Non conosco postgres però è probabile che il database sia in ascolto solo su localhost, cioè accetta connessioni solo dalla macchina stessa. Una strategia per aggirare questo problema è appunto instradare la connessione attraverso il protocollo ssh, che è un buon metodo se vuoi accedere tramite internet, essendo il traffico criptato.

Tuttavia se alla macchina virtuale accedi solo dal sistema windows o altre macchine della rete locale, potresti semplicemente mettere postgres in ascolto su qualsiasi indirizzo. Vedi se questo link può aiutarti: https://blog.bigbinary.com/2016/01/23/c ... ction.html
Scrivi risposta

Ritorna a “Ubuntu su server”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti