Come accedere a un server remoto utilizzando un host Jump

Un host jump (noto anche come jump server) è un host intermedio o un gateway SSH per una rete remota, attraverso il quale è possibile effettuare una connessione a un altro host in una zona di sicurezza dissimile, ad esempio una zona demilitarizzata (DMZ). Collega due zone di sicurezza dissimili e offre un accesso controllato tra di loro.

Un host jump dovrebbe essere altamente protetto e monitorato soprattutto quando si estende su una rete privata e una DMZ con server che forniscono servizi agli utenti su Internet.

Uno scenario classico è la connessione dal tuo desktop o laptop dalla rete interna della tua azienda, che è altamente protetta con firewall a una DMZ. Per gestire facilmente un server in una DMZ, è possibile accedervi tramite un host jump.

In questo articolo, dimostreremo come accedere a un server Linux remoto tramite un host jump e inoltre configureremo le impostazioni necessarie nelle configurazioni client SSH per utente.

Considerare il seguente scenario.

SSH Jump Host
SSH Jump Host

Nello scenario precedente, si desidera connettersi all’HOST 2, ma è necessario passare attraverso l’HOST 1, a causa dei privilegi di firewalling, routing e accesso. Ci sono una serie di validi motivi per cui sono necessari i jumphost..

Elenco Jumphost dinamico

Il modo più semplice per connettersi a un server di destinazione tramite un host jump sta usando il flag -J dalla riga di comando. Questo dice a ssh di effettuare una connessione all’host jump e quindi stabilire un inoltro TCP al server di destinazione, da lì (assicurati di avere accesso SSH senza password tra le macchine).

$ ssh -J host1 host2

Se nomi utente o porte su macchine differiscono, specificarli sul terminale come mostrato.

$ ssh -J username@host1:port username@host2:port 

Elenco Jumphosts multipli

La stessa sintassi può essere usata per fare salti su più server.

$ ssh -J username@host1:port,username@host2:port username@host3:port

Elenco Jumphost statico

Elenco jumphost statico significa, che si conosce il jumphost o jumphosts che è necessario collegare una macchina. Pertanto è necessario aggiungere il seguente ‘routing’ statico di jumphost nel file ~/.ssh/config e specificare gli alias host come mostrato.

### First jumphost. Directly reachableHost vps1 HostName vps1.example.org### Host to jump to via jumphost1.example.orgHost contabo HostName contabo.example.org ProxyJump contabo

Ora prova a connetterti a un server di destinazione tramite un host jump come mostrato.

$ ssh -J vps1 contabo
Accedi all'host di destinazione tramite Jumphost
Accedi all’host di destinazione tramite Jumphost

Il secondo metodo consiste nell’utilizzare l’opzione ProxyCommand per aggiungere la configurazione jumphost nel file ~.ssh/config o $HOME/.ssh/config come mostrato.

In questo esempio, l’host di destinazione è contabo e il jumphost è vps1.

Host vps1HostName vps1.example.orgIdentityFile ~/.ssh/vps1.pemUser ec2-userHost contaboHostName contabo.example.orgIdentityFile ~/.ssh/contabovpsPort 22User adminProxy Command ssh -q -W %h:%p vps1

Dove il comando Proxy Command ssh -q -W %h:%p vps1, significa eseguire ssh in modalità silenziosa (usando -q) e in modalità stdio forwarding (usando -W), reindirizzare la connessione attraverso un host intermedio (vps1).

Quindi prova ad accedere al tuo host di destinazione come mostrato.

$ ssh contabo

Il comando precedente aprirà prima una connessione ssh a vps1 in background effettuata dal ProxyCommand, e lì dopo, avviare la sessione ssh al server di destinazione contabo.

Per ulteriori informazioni, vedere la pagina man ssh o fare riferimento a: OpenSSH/Cookbxook/Proxy e Jump Hosts.

Questo è tutto per ora! In questo articolo, abbiamo dimostrato come accedere a un server remoto tramite un host jump. Utilizza il modulo di feedback qui sotto per porre domande o condividere i tuoi pensieri con noi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.