02 aprile 2011

Accesso ad un server interno con un solo salto

Spesso accade che in una rete privata ci siano molti server, uno solo dei quali è raggiungibile da Internet attraverso il protocollo Secure Shell, la cui porta (di norma la 22) viene aperta e girata dal firewall aziendale verso l'esterno.

Per accedere ad uno dei server interni il buon amministratore deve generalmente fare un doppio salto: prima entrare con SSH sull'unica macchina pubblica e da lì saltare ancora con SSH al server che interessa. Tutto ciò è una scocciatura, ma SSH, o meglio il client OpenSSH, ci mette a disposizione una scorciatoia.

Diciamo che il server pubblico si chiama gaius e quello interno, inaccessibile dall'esterno, si chiama six. Ovviamente vogliamo arrivare a six nel più breve tempo possibile ;-)

Su entrambe le macchine ci sono gli account per l'utente paolo, che sarei poi io.

Sul nostro PC di casa aggiungiamo queste righe nel file ~/.ssh/config:

  Host gaius
      HostKeyAlias gaius_4sigma_22
      HostName gaius.4sigma.it
      Port 22
      CheckHostIP yes
      User paolo

  Host six
      User paolo
      ProxyCommand ssh gaius exec nc %h %p
      ForwardAgent yes

Fatto questo basterà scrivere nel terminale il comando:

  $ ssh six

per trovarci collegati a six, il server inaccessibile, passando attraverso gaius, il server pubblico.

Ovviamente non c'è nessuna magia e, per informazioni più dettagliate, vi consiglio di cercare le opzioni ProxyCommandForwardAgent nel manuale della configurazione di SSH.

Alla prossima.

0 commenti:

Posta un commento