Búsqueda de sitios web

Cómo configurar un servidor SSH Jump en Linux


Un host de salto (también conocido como servidor de salto) es un host intermediario o una puerta de enlace SSH a una red remota, a través del cual se puede establecer una conexión con otro host en un zona de seguridad diferente, por ejemplo, una zona desmilitarizada (DMZ). Une dos zonas de seguridad diferentes y ofrece acceso controlado entre ellas.

Un host de salto debe ser altamente seguro y monitoreado, especialmente cuando abarca una red privada y una DMZ con servidores que brindan servicios a los usuarios en Internet.

Un escenario clásico es conectarse desde su computadora de escritorio o portátil desde el interior de la red interna de su empresa, que está altamente protegida con firewalls a una DMZ. Para administrar fácilmente un servidor en una DMZ, puede acceder a él a través de un host de salto.

En pocas palabras, un servidor SSH Jump es un servidor Linux que se utiliza como puerta de enlace a otros servidores Linux en una red privada a través del protocolo SSH.

En este artículo, demostraremos cómo acceder a un servidor Linux remoto a través de un host de salto y también configuraremos los ajustes necesarios en las configuraciones de su cliente SSH por usuario.

Configuración del servidor de salto SSH

Considere el siguiente escenario.

Para mayor claridad, a continuación se muestra una configuración simple que demuestra la función de un servidor SSH Jump.

Razones para configurar un servidor SSH Jump

Un servidor Jump proporciona una puerta de entrada a su infraestructura y reduce la superficie de ataque potencial a sus recursos. También proporciona una gestión transparente de los dispositivos, así como un único punto de entrada a sus recursos.

Tenga en cuenta que cuando incorpore un servidor de salto a su infraestructura, asegúrese de que el servidor esté reforzado; de lo contrario, sería tan bueno como no usar uno. Volveremos a esto más adelante en este tutorial.

Cómo crear un servidor Jump SSH simple

Centrémonos ahora en cómo se puede crear un servidor SSH Jump simple. Aquí está nuestra configuración sencilla.

  • IP de origen: 105.68.76.85.
  • IP del servidor Jump (a esto lo llamaremos host-jump): 173.82.232.55.
  • IP de destino (a esto lo llamaremos host_destination): 173.82.227.89.

En el escenario anterior, desea conectarse al HOST 2 (173.82.227.89), pero debe pasar por el HOST 1 (173.82.232.55) debido al firewall. enrutamiento y privilegios de acceso. Hay varias razones válidas por las que se necesitan servidores de salto.

Lista dinámica de Jumphost

La forma más sencilla de conectarse a un servidor de destino a través de un host de salto es usar los indicadores -A y -J desde la línea de comando. Esto le indica a ssh que establezca una conexión con el host de salto y luego establezca un reenvío TCP al servidor de destino, desde allí (asegúrese de tener un inicio de sesión SSH sin contraseña entre las máquinas).

ssh -A -J user@jump-server  user@destination server

Por ejemplo, en nuestra configuración, tenemos el usuario llamado james configurado en el Jump Server y tecmint configurado en el sistema de destino o de destino.

El comando tendrá el siguiente aspecto desde la IP de origen.

ssh -A -J [email  [email 

El comando le solicitará la contraseña de usuario del servidor de salto, seguida de la contraseña del sistema de destino mediante la cual se le otorgará acceso al sistema de destino.

Si los nombres de usuario o los puertos en las máquinas difieren, especifíquelos en el terminal como se muestra.

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

Lista de múltiples Jumphosts

Se puede utilizar la misma sintaxis para realizar saltos sobre varios servidores.

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

Lista de Jumphost estática

La lista de jumphost estática significa que usted conoce el jumphost o los jumphosts que necesita para conectar una máquina. Por lo tanto, debe agregar el siguiente 'enrutamiento' de jumphost estático en el archivo ~/.ssh/config y especificar los alias de host como se muestra.

### First jumphost. Directly reachable
Host vps1
  HostName vps1.example.org

### Host to jump to via jumphost1.example.org
Host contabo
  HostName contabo.example.org
  ProxyJump vps1

Ahora intente conectarse a un servidor de destino a través de un host de salto como se muestra.

ssh -J vps1 contabo

El segundo método es utilizar la opción ProxyCommand para agregar la configuración jumphost en su ~.ssh/config o $HOME/. ssh/config como se muestra.

En este ejemplo, el host de destino es contabo y el jumphost es vps1.

Host vps1
	HostName vps1.example.org
	IdentityFile ~/.ssh/vps1.pem
	User ec2-user

Host contabo
	HostName contabo.example.org	
	IdentityFile ~/.ssh/contabovps
	Port 22
	User admin	
	Proxy Command ssh -q -W %h:%p vps1

Guarde los cambios y salga del archivo. Para aplicar los cambios, reinicie el demonio SSH.

sudo systemctl restart ssh

Exploremos las opciones utilizadas en el archivo de configuración:

  • -q: significa modo silencioso. Suprime advertencias y mensajes de diagnóstico.
  • -W: solicita que la entrada y salida estándar del cliente se reenvíe al HOST en PORT a través del canal seguro.
  • %h: especifica el host al que conectarse.
  • %p: especifica el puerto al que conectarse en el host remoto.

Para 'saltar' al sistema de destino desde su IP de origen a través del Jump Server, simplemente ejecute el siguiente comando:

ssh contabo

El comando anterior primero abrirá una conexión ssh a vps1 en segundo plano afectada por el ProxyCommand y, luego, iniciará la sesión ssh en el servidor de destino contabo. fuerte>.

Hacer que el servidor SSH Jump sea más seguro

Una de las formas de hacer que esta configuración sea más segura es copiar la clave SSH pública del sistema de origen al servidor de salto y, finalmente, al sistema de destino, y luego deshabilitar la autenticación de contraseña. Consulte nuestra guía sobre cómo habilitar la autenticación SSH sin contraseña.

Además, consulte los consejos para reforzar el servidor SSH.

Además, asegúrese de que no se almacenen datos confidenciales dentro del servidor Jump, ya que esto podría provocar una fuga de credenciales de acceso, como nombres de usuarios y contraseñas, lo que provocaría una vulneración en todo el sistema.

Para obtener más información, consulte la página de manual de ssh o consulte: OpenSSH/Cookbxook/Proxies y Jump Hosts.

¡Eso es todo por ahora! En este artículo, hemos demostrado cómo acceder a un servidor remoto a través de un host de salto. Utilice el formulario de comentarios a continuación para hacer cualquier pregunta o compartir sus pensamientos con nosotros.