Secure Shell (SSH) tiene muchos trucos realmente interesantes, cada uno de los cuales proporciona una característica útil (envuelta en un práctico shell de seguridad) para ayudarle a hacer su vida un poco más fácil.
La semana pasada discutimos la autenticación de claves con SSH; Esta semana hablaremos sobre el reenvío de puertos, que se puede utilizar para:
- Acceda a un servidor al que de otro modo no podría acceder.
- Accede a un dispositivo remoto con mayor seguridad.
- Otorgue un túnel cifrado temporal desde su máquina local a una máquina remota.
Hay tres tipos diferentes de reenvío de puertos SSH. ellos local (Las comunicaciones del cliente se redirigen, vía SSH, a un host remoto), lejos (Las comunicaciones desde un servidor remoto se redirigen vía SSH a otro dispositivo), y Moviente (Las comunicaciones de diferentes aplicaciones se redirigen, a través de SSH, a múltiples servidores).
Hay muchos ejemplos de reenvío de puertos y algunos de ellos pueden ser bastante complejos. Por esta razón, aquí solo nos ocuparemos de los dos primeros tipos de reenvío de puertos (local y remoto). Estos también son los tipos de reenvío de puertos SSH que puedes utilizar'Usará más.
El reenvío de puertos SSH está integrado en SSH de forma predeterminada, por lo que siempre que tenga SSH instalado, debería tener todo lo que necesita para trabajar con esta función.
Sin embargo, déjame mostrarte cómo funciona el reenvío de puertos SSH.
Instalar un servidor OpenSSH
Probablemente su distribución de Linux ya tenga SSH instalado. Sin embargo, para reenviar el puerto, necesitarás agregar también un servidor SSH. Para hacer esto, puede iniciar sesión en su máquina Linux e instalar una distribución basada en Ubuntu de la siguiente manera:
sudo apt-get install openssh-server -y
sudo adecuado–Obtiene Estable Abre–Servidor –y |
En una distribución basada en RHEL, este comando sería el siguiente:
La instalación de sudo dnf abre sh-server -y
sudo dnf Estable Abre–Servidor –y |
Una vez que el servidor esté instalado, inícielo y habilítelo en su distribución basada en Ubuntu usando el comando:
Habilite sudo Systemctl – Ahora SSH
sudo sistemactl tal vez —ahora ssh |
En una distribución basada en RHEL, el comando iniciar/habilitar es:
Habilite sudo systemctl – ahora sshd
sudo sistemactl tal vez —ahora sshd |
Reenvío de puerto SSH local
El primer tipo de reenvío de puertos que abordaremos es el tipo local. Supongamos que está desarrollando un nuevo sitio web y desea poder acceder a él a través de una conexión cifrada. Esta nueva ubicación puede estar ubicada en su red local o en un servidor remoto. De cualquier manera, puede conectarse mediante un servidor SSH remoto desde un puerto local a un puerto remoto.
Supongamos que desea utilizar el puerto local 8080 y reenviar la dirección IP para conectarse al puerto 80 192.168.1.11, a través de SSH. Para ello el comando sería:
ssh -L 8080:192.168.1.11:80 servidor local
ssh –a 8080:192.168.1.11:80 servidor local |
Se le solicitará la contraseña del usuario SSH local y luego regresará al símbolo del sistema. Para verificar que el túnel esté funcionando, abra un navegador web y apúntelo a:
El sitio remoto (en 192.168.1.11) debería aparecer en un navegador web y enrutarse mediante cifrado SSH.
Puedes seguir utilizando el túnel cifrado mientras permanezcas «Has iniciado sesión« Desde la ventana de la terminal. Para cerrar el túnel cifrado, regrese a la ventana Terminal y escriba:
Reenvío de puerto remoto SSH
Probablemente encontrará más útil este tipo de reenvío de puertos porque puede permitirle dar a otros acceso a una máquina remota, a través de un túnel cifrado. Digamos, por ejemplo, que tiene alguien en su LAN que necesita acceso VNC a un servidor con una GUI y desea asegurarse de que la conexión esté cifrada por motivos de seguridad. Por supuesto, esto requerirá configurar correctamente VNC en el servidor y un visor de VNC en la máquina cliente.
En este ejemplo, nos quedaremos con la dirección IP 192.168.1.11 para la máquina remota y tendremos la máquina cliente en 192.168.1.21. También debe tener acceso SSH a la máquina cliente.
Sin embargo, antes de hacer esto, debes encargarte de una configuración SSH simple. Abra el archivo de configuración del servidor SSH con el comando:
sudo nano /etc/ssh/sshd_config
sudo nano /etc./ssh/sshd_config |
Agregue la siguiente línea al final del archivo:
Guarde y cierre el archivo. Reinicie SSH usando:
sudo systemctl reiniciar SSH
sudo sistemactl Reanudar ssh |
o
sudo systemctl reiniciar sshd
sudo sistemactl Reanudar sshd |
Ahora, creemos el túnel remoto. Para crear un túnel para VNC (que se ejecuta en el puerto 5900), ejecute el siguiente comando en el servidor remoto (que, por ejemplo, está en 192.168.1.11):
ssh -R 5900:localhost:5900 NOMBRE DE USUARIO@192.168.1.21
ssh –R 5900:servidor local:5900 nombre de usuario@192.168.1.21 |
Donde NOMBRE DE USUARIO es un nombre de usuario en la máquina cliente a la que puede acceder. Una vez que este usuario esté autenticado, el túnel SSH remoto estará en funcionamiento. Luego, el otro usuario puede conectarse al servidor mediante un cliente VNC, con localhost y el puerto 5900.
Recuerde, incluso cuando el usuario remoto desconecta su conexión VNC, el túnel sigue funcionando. Para cerrar el túnel, regrese a la terminal del servidor remoto y escriba salir.
Si buscas crear túneles cifrados para una variedad de casos de uso, no busques más que SSH. Una vez que aprendas a crear estos túneles, descubrirás que pueden resultar muy útiles en muchos tipos diferentes de escenarios.
YOUTUBE.COM/THENEWSTACK
La tecnología avanza rápido, nunca te pierdas un episodio. Suscríbase a nuestro canal de YouTube para transmitir todos nuestros podcasts, entrevistas, demostraciones y más.
Participar