Pagine

10 giugno 2011

SCP e SSH port forwarding. Copiare file da una rete privata remota

Vediamo un altro comando utile che possiamo tranquillamente aggiungere alla categoria dei Linux tips & tricks.
Lo scenario:
Abbiamo una rete privata remota. Una delle sue macchine è accessibile via ssh da un IP pubblico. Da questa è possibile accedere via ssh alle altre.
Cosa vogliamo fare?
Vogliamo accedere ad uno dei server della rete remota, diverso da quello affacciato su internet, e da questo copiare un file sul nostro pc.

Come procedere:
E' molto semplice, dobbiamo sfruttare la macchina affacciata su internet come ponte per farci accedere ad un'altra nella sua rete privata. Torna utile allo scopo il programma ssh tramite il quale è possibile anche fare port forwarding.
Per semplificare diciamo che server1 è il server che ha l'ip pubblico, mentre server2 è una delle macchine interne alla rete remota.
Si procede in due step:
  1. Colleghiamoci al server1 e attiviamo un port forwarding tra il nostro pc e server 2 usando server1 come ponte.
    Il comando è:
    ssh -L 2121:<ip_rr_server2>:22 <user_ssh_server1>@<ip_server1>
    dove:
    ip_server1 è l'indirizzo IP internet del server1.
    user_ssh_server2 è lo username per accedere via ssh al server2 dal server1.
    ip_rr_server2 è l'ip di uno dei server interni della rete remota

    Significato del comando:
    Apri sul mio pc la porta 2121 in port forwarding con la 22 del server2 passando per il server1. Questo comando ovviamente mi chiede le credenziali di user_ssh_server1 e mi aprirà una shell ssh nel server1.

  2. A questo punto sul mio pc è aperta la porta 2121 che posso sfruttare per collegarmi alla 22 (la porta del servizio ssh) del server2. Apro quindi una nuova console terminale sul mio pc e digito il comando di copia sicura scp:
    scp -P 2121 <user_ssh_server2>@localhost:<file_to_copy> <local_dest>
    dove:
    user_ssh_server2 è lo user che ha accesso ssh al server2
    file_to_copy è il path completo del file da copiare dal server2
    local_dest è il percorso del mio pc dove salvare il file
Questa tecnica è molto comoda non solo perché ci permette di copiare in un sol colpo file da server interni a una rete privata e quindi normalmente non accessibili (se non tramite doppio passaggio), ma anche perché il tutto avviene su tunnel ssh cifrato e sicuro.

    Nessun commento:

    Posta un commento