linux/SSH/ssh_forward_unix_socket.adoc

2.1 KiB
Raw Permalink Blame History

Accesso remoto a socket locali Unix via OpenSSH

1. Inoltro socket Unix

OpenSSH, oltre allinoltro di porte TCP, consente anche linoltro di socket locali Unix.

1.1. Inoltro di un socket Unix remoto ad una porta TCP locale

Comando per collegare una porta TCP locale, ad esempio sul proprio PC, ad un socket remoto esistente su un server remoto.

[user@mypc ~]$ ssh -nNT -L 1234:/var/run/remote-app/remote-app.sock -o "ExitOnForwardFailure yes" remote-host

Esempio di inoltro del socket di PostgreSQL:

[user@mypc ~]$ ssh -nNT -L 5432:/var/run/postgresql/.s.PGSQL.5432 -o "ExitOnForwardFailure yes" remote-host

Accesso al database PostgreSQL remoto tramite la porta TCP locale 5432:

[user@mypc ~] psql -U db-user -h localhost -p 5432 my-db-name

1.2. Inoltro di un socket Unix locale ad una porta TCP remota

Il comando da usare è analogo al precedente. Lo schema seguente fa rimerimento allhost myhost dal quale si vuole inoltrare un socket locale my-app.sock ad una porta TCP sullhost remote-host:

[user@myhost ~]$ ssh -nNT -R /var/run/my-app/my-app.sock:localhost:1234 -o "ExitOnForwardFailure yes" remote-host

Questo comando stabilisce una connessione allhost remote-host attraverso la quale inoltrerà il socket my-app.sock alla porta 1234 aperta sullinterfaccia localhost di remote-host.

2. Riferimenti esterni

Per ulteriori approfondimenti vedere il post di Stefan Kreutz qui. Kreutz appofondisce il particolare le possibilità di controllare laccesso remoto da un socket Unix mediante inoltro ad una porta TCP.


Celestino Amoroso
celestino . amoroso @ gmail . com

88d204d546890e5d89073fb1cec29fe9