• Reverse SSH Tunnel

    Quando si desidera connettersi a un PC con Linux remoto in modalità amministrativa, in particolare per la manutenzione di macchine dedicate per il backup, è possibile impostare un Reverse SSH Tunnel temporaneo. Il Reverse SSH Tunnel permette di scavalcare le protezioni del router o della WLAN senza dover conoscere la configurazione di queste periferiche.

    La seguente procedura stabilisce una connessione di manutenzione fra il PC locale e un server remoto tramite un canale protetto. La sessione così aperta rimane disponibile fino allo spegnimento del PC oppure alla scadenza della connessione, che in questo caso viene impostata a 24 ore, ossia 86400 secondi.

    Il server destinazione viene impostato (e provato) appositamente per consentire la manutenzione remota. Da remoto quindi si effettua il login al PC locale tramite gli account amministrativi presenti sul PC locale.


    1. Al prompt del login del PC locale inserire il nome utente e la password.
    2. Impersonare l'account root. A questo scopo digitare: sudo su, seguito nuovamente dall'inserimento della propria password.
    3. Se presente, annullare le procedure di download backup e fermare il timer di chiusura automatica: killall screen.
    4. Inizializzare un Reverse SSH Tunnel: ssh -f -n -R 5000:localhost:22 utente_remoto@server_remoto sleep 86400. Durante questa fase potrebbe essere necessario confermare le chiavi di server_remoto, digitando per esteso: yes. Il comando apre una sessione SSH nello sfondo alla porta 5000 del server remoto e alla porta 22 del PC locale, connettendosi al server remoto con l'account (precedentemente impostato) utente_remoto.
    5. Login Reverse SSH Tunnel: Alla richiesta della password, inserire la password di utente_remoto.
    6. Verifica (opzionale) del Reverse SSH Tunnel: ps aux. Nell'elenco presentato si trova verso la fine una riga simile alla seguente: nome_utente 4288 0.0 0.0 5300 648 ? Ss 15:23 0:00 ssh -f -n -R 5000:localhost:22 nome_utente@www.dominio.tld sleep 86400. Se non fosse visibile per intero, è possibile digitare: ps aux | more e premere la barra spaziatrice per visualizzare le schermate una per una con da capo integrato.


    Ora è possibile accedere alla macchina remota dal server remoto con il comando:

    ssh -p 5000 nome_utente@localhost

    In questo caso, nome_utente si riferisce all'account della macchina che si vuole amministrare in remoto. Solitamente è necessario accettare la chiave SSH di quella macchina e impersonare l'account root. Alla fine delle operazioni è buona pratica di rimuovere il tunnel e così interrompere anche la propria connessione, oppure avvisare il cliente del termine dei lavori.