Un cliente SSH se conecta a un servidor Secure Shell, que le permite ejecutar comandos de terminal como si estuviera sentado frente a otro computadora. Pero un cliente SSH también le permite "tunelizar" un puerto entre su sistema local y un servidor SSH remoto.
Hay tres tipos diferentes de túnel SSH, y todos se usan para diferentes propósitos. Cada uno implica el uso de un servidor SSH para redirigir el tráfico de un puerto de red a otro. El tráfico se envía a través de la conexión SSH encriptada, por lo que no se puede monitorear ni modificar en tránsito.
Puede hacerlo con el comandossh
incluido en Linux, macOS y otro tipo de UNIX sistemas operativos. En Windows, que no incluye un comando ssh incorporado, recomendamos la herramienta gratuita PuTTY para conectarse a los servidores SSH. También es compatible con la creación de túneles SSH.
"Reenvío de puertos locales" le permite acceder a recursos de red local que no están expuestos a Internet. Por ejemplo, supongamos que desea acceder a un servidor de base de datos en su oficina desde su hogar. Por razones de seguridad, ese servidor de base de datos solo está configurado para aceptar conexiones desde la red de la oficina local. Pero si tiene acceso a un servidor SSH en la oficina y ese servidor SSH permite conexiones desde fuera de la red de la oficina, entonces puede conectarse a ese servidor SSH desde su hogar y acceder al servidor de la base de datos como si estuviera en la oficina. Este suele ser el caso, ya que es más fácil proteger un único servidor SSH contra ataques que asegurar una variedad de recursos de red diferentes.
Para ello, establece una conexión SSH con el servidor SSH e indica al cliente que reenvíe el tráfico desde un puerto específico desde su PC local, por ejemplo, el puerto 1234, a la dirección del servidor de la base de datos y su puerto en la red de la oficina. Entonces, cuando intenta acceder al servidor de la base de datos en el puerto 1234 de su PC actual, "localhost", ese tráfico se "tuneliza" automáticamente a través de la conexión SSH y se envía al servidor de la base de datos. El servidor SSH se encuentra en el medio, reenviando el tráfico hacia adelante y hacia atrás. Puede usar cualquier línea de comando o herramienta gráfica para acceder al servidor de la base de datos como si se estuviera ejecutando en su PC local.
Para usar el reenvío local, conéctese al servidor SSH normalmente, pero también suministre el-L
argumento. La sintaxis es:
ssh -L puerto_local: dirección_remota: puerto_remota [email protected]
Por ejemplo, supongamos que el servidor de la base de datos en su oficina se encuentra en 192.168.1.111 en la red de la oficina. Usted tiene acceso al servidor SSH de la oficina enssh.youroffice.com
, y su cuenta de usuario en el servidor SSH esbob
. En ese caso, su comando sería así:
ssh -L 8888: 192.168.1.111: 1234 [email protected]
Después de ejecutar ese comando, podrá acceder al servidor de la base de datos en puerto 8888 en localhost. Por lo tanto, si el servidor de base de datos ofrece acceso web, puede conectar // localhost: 8888 en su navegador web para acceder a él. Si tuviera una herramienta de línea de comandos que necesita la dirección de red de una base de datos, diríjala a localhost: 8888. Todo el tráfico enviado al puerto 8888 en su PC será transferido a 192.168.1.111:1234 en la red de su oficina.
Es un poco más confuso si desea conectarse a una aplicación de servidor que se ejecuta en el mismo sistema que el servidor SSH. . Por ejemplo, supongamos que tiene un servidor SSH ejecutándose en el puerto 22 en su computadora de oficina, pero también tiene un servidor de base de datos ejecutándose en el puerto 1234 en el mismo sistema en la misma dirección. Desea acceder al servidor de la base de datos desde su casa, pero el sistema solo acepta conexiones SSH en el puerto 22 y su firewall no permite ninguna otra conexión externa.
En este caso, podría ejecutar un comando como el siguiente:
ssh -L 8888: localhost: 1234 [email protected]
Cuando intente acceder al servidor de la base de datos en el puerto 8888 en su PC actual, el tráfico se enviará a través de la conexión SSH. Cuando llega al sistema que ejecuta el servidor SSH, el servidor SSH lo enviará al puerto 1234 en "localhost", que es la misma PC que ejecuta el servidor SSH. Entonces, el "localhost" en el comando de arriba significa "localhost" desde la perspectiva del servidor remoto.
Para hacer esto en la aplicación PuTTY en Windows, seleccione Conexión> SSH> Túneles. Seleccione la opción "Local". Para "Puerto de origen", ingrese el puerto local. Para "Destino", ingrese la dirección y el puerto de destino en el formulario remote_address: remote_port.
Por ejemplo, si desea configurar el mismo túnel SSH como se indicó anteriormente, debe ingresar8888
como el puerto de origen ylocalhost: 1234
como destino. Haga clic en "Agregar" luego y luego haga clic en "Abrir" para abrir la conexión SSH. También necesitará ingresar la dirección y el puerto del servidor SSH en la pantalla principal de "Sesión" antes de conectarse, por supuesto.
"Reenvío de puertos remotos "Es lo opuesto al reenvío local y no se usa con tanta frecuencia. Le permite hacer que un recurso en su PC local esté disponible en el servidor SSH. Por ejemplo, supongamos que está ejecutando un servidor web en la PC local en la que está sentado. Pero su PC está detrás de un firewall que no permite el tráfico entrante al software del servidor.
Suponiendo que puede acceder a un servidor SSH remoto, puede conectarse a ese servidor SSH y usar el reenvío de puertos remotos. Su cliente SSH le indicará al servidor que reenvíe un puerto específico, por ejemplo, el puerto 1234, en el servidor SSH a una dirección y puerto específicos en su PC actual o red local. Cuando alguien accede al puerto 1234 en el servidor SSH, ese tráfico se "tunelizará" automáticamente a través de la conexión SSH. Cualquier persona con acceso al servidor SSH podrá acceder al servidor web que se ejecuta en su PC. Esta es una manera efectiva de pasar por los cortafuegos.
Para usar el reenvío remoto, use el comandossh
con el argumento-R
. La sintaxis es en gran medida la misma que con el reenvío local:
ssh -R puerto_remoto: dirección_local: puerto_local [email protected]
Digamos que quiere hacer que una aplicación de servidor escuche en el puerto 1234 en su PC local disponible en el puerto 8888 en el servidor SSH remoto. La dirección del servidor SSH esssh.youroffice.com
y su nombre de usuario en el servidor SSH es bob . Ejecutaría el siguiente comando:
ssh -R 8888: localhost: 1234 [email protected]
Alguien podría conectarse al servidor SSH en el puerto 8888 y esa conexión sería transferida a la aplicación del servidor ejecutándose en el puerto 1234 en la PC local de la que estableció la conexión.
Para hacer esto en PuTTY en Windows, seleccione Conexión> SSH> Túneles. Seleccione la opción "Remoto". Para "Puerto de origen", ingrese el puerto remoto. Para "Destino", ingrese la dirección de destino y el puerto en el formato dirección_local: puerto_local.
Por ejemplo, si desea configurar el ejemplo anterior, debe ingresar8888
como puerto de origen ylocalhost: 1234
como destino. Haga clic en "Agregar" luego y luego haga clic en "Abrir" para abrir la conexión SSH. También necesitará ingresar la dirección y el puerto del servidor SSH en la pantalla principal de "Sesión" antes de conectarse, por supuesto.
Las personas podrían conectarse al puerto 8888 en el servidor SSH y su tráfico se canalizaría al puerto 1234 en su sistema local.
De forma predeterminada, el servidor SSH remoto solo escuchará las conexiones desde el mismo host. En otras palabras, solo las personas en el mismo sistema que el servidor SSH podrán conectarse. Esto es por razones de seguridad. Tendrá que habilitar la opción "GatewayPorts" en sshd_config en el servidor SSH remoto si desea anular este comportamiento.
RELACIONADO: ¿Cuál es el Diferencia entre una VPN y un Proxy?
También hay "reenvío de puertos dinámicos", que funciona de manera similar a un proxy o VPN. El cliente SSH creará un proxy SOCKS que puede configurar aplicaciones para usar. Todo el tráfico enviado a través del proxy se enviaría a través del servidor SSH. Esto es similar al reenvío local: lleva el tráfico local enviado a un puerto específico en su PC y lo envía a través de la conexión SSH a una ubicación remota.
RELACIONADO: Por qué el uso de una red Wi-Fi pública puede ser peligroso incluso cuando se accede a sitios web cifrados
Por ejemplo, supongamos que está utilizando una red Wi-Fi pública. Desea navegar de forma segura sin que nadie lo escuche. Si tiene acceso a un servidor SSH en su hogar, puede conectarse y usar el reenvío dinámico de puertos. El cliente SSH creará un proxy SOCKS en su PC. Todo el tráfico enviado a ese proxy se enviará a través de la conexión del servidor SSH. Nadie que monitoree la red Wi-Fi pública podrá monitorear su navegación o censurar los sitios web a los que puede acceder. Desde la perspectiva de cualquier sitio web que visite, será como si estuviera sentado frente a su PC en casa. Esto también significa que puede usar este truco para acceder a sitios web exclusivos de EE. UU. Fuera de EE. UU., Suponiendo que tenga acceso a un servidor SSH en EE. UU., Por supuesto.
Como otro ejemplo, es posible que desee acceder a un medio aplicación de servidor que tiene en su red doméstica. Por razones de seguridad, es posible que solo tenga un servidor SSH expuesto a Internet. No permite conexiones entrantes desde Internet a su aplicación de servidor de medios. Puede configurar el reenvío de puertos dinámicos, configurar un navegador web para usar el proxy SOCKS y luego acceder a los servidores que se ejecutan en su red doméstica a través del navegador web como si estuviera sentado frente a su sistema SSH en su hogar. Por ejemplo, si su servidor de medios está ubicado en el puerto 192.168.1.123 en su red doméstica, puede conectar la dirección192.168.1.123
en cualquier aplicación que use el proxy SOCKS y accederá al servidor de medios como si usted estaba en su red doméstica.
Para usar el reenvío dinámico, ejecute el comando ssh con el argumento-D
, de la siguiente manera:
ssh -D puerto_local [email protected]
para Por ejemplo, digamos que tiene acceso a un servidor SSH enssh.yourhome.com
y su nombre de usuario en el servidor SSH esbob
. Desea utilizar el reenvío dinámico para abrir un proxy SOCKS en el puerto 8888 en la PC actual. Ejecutaría el siguiente comando:
ssh -D 8888 [email protected]
A continuación, puede configurar un navegador web u otra aplicación para usar su dirección IP local (127.0.01) y el puerto 8888. Todo el tráfico de esa aplicación se redirigiría a través del túnel.
Para hacer esto en PuTTY en Windows, seleccione Conexión> SSH> Túneles. Seleccione la opción "Dinámico". Para "Puerto de origen", ingrese el puerto local.
Por ejemplo, si desea crear un proxy SOCKS en el puerto 8888, debe ingresar8888
como puerto de origen. Haga clic en "Agregar" luego y luego haga clic en "Abrir" para abrir la conexión SSH. También necesitará ingresar la dirección y el puerto del servidor SSH en la pantalla principal de "Sesión" antes de conectarse, por supuesto.
Luego puede configurar una aplicación para acceder al proxy SOCKS en su PC local (es decir, Dirección IP 127.0.0.1, que apunta a su PC local) y especifique el puerto correcto.
RELACIONADO: Cómo configurar un servidor proxy en Firefox
Por ejemplo, puede configurar Firefox para usar el proxy SOCKS . Esto es particularmente útil porque Firefox puede tener su propia configuración de proxy y no tiene que usar configuraciones de proxy para todo el sistema. Firefox enviará su tráfico a través del túnel SSH, mientras que otras aplicaciones usarán normalmente su conexión a Internet.
Al hacer esto en Firefox, seleccione "Configuración manual del proxy", ingrese "127.0.0.1" en el cuadro de SOCKS, e ingrese el puerto dinámico en el cuadro "Puerto". Deje los cuadros Proxy HTTP, Proxy SSL y Proxy FTP vacíos.
El túnel permanecerá activo y abierto mientras tenga abierta la conexión de la sesión SSH. Cuando termine su sesión SSH y se desconecte de un servidor, el túnel también se cerrará. Simplemente reconéctese con el comando apropiado (o las opciones apropiadas en PuTTY) para volver a abrir el túnel.
Deshabilitar el Control de cuentas de usuario (UAC) Easy Way en Win 7, 8 o 10
Si ha estado usando Windows por un tiempo, probablemente recuerde lo molesto que es el Control de cuentas de usuario (UAC) fue cuando apareció por primera vez en Windows Vista. A continuación, le mostramos cómo deshabilitarlo, y aún puede deshabilitarlo en Windows 8 y 10. Aquí se explica cómo. RELACIONADO: Por qué no debe deshabilitar el Control de cuentas de usuario (UAC) en Windows Sin embargo, una palabra de advertencia primero.
Cómo registrar eventos de Nest Cam en una hoja de cálculo de Google Docs
Si desea mantener un registro permanente de cada evento de movimiento que capture su Nest Cam, puede hacerlo usando IFTTT y Google Hoja de cálculo Doc. Así es cómo configurarlo. Si tienes una suscripción a Nest Aware, tu Nest Cam puede grabar video 24/7 y avisarte de cualquier movimiento. Sin ella, tu Nest Cam aún puede enviarte alertas de movimiento, pero solo grabará instantáneas del movimiento y solo conservará esa información durante hasta tres horas, lo que a veces no es suficiente para que los usuarios la revisen a fondo.