Una interfaz de línea de comandos segura es sólo el inicio de las muchas maneras de usar SSH. Dada una cantidad apropiada de ancho de banda, las sesiones X11 se pueden dirigir por un canal SSH. O usando reenvío TCP/IP, se pueden asignar conexiones de puerto entre sistemas que previamente eran inseguras a canales SSH específicos.
Abrir una sesión X11 a través de una conexión SSH establecida es tan fácil como ejecutar un programa X en una máquina local. Cuando un programa X se ejecuta desde un intérprete de comandos de shell segura, el cliente y el servidor SSH crean un nuevo canal seguro dentro de la conexión SSH actual, y los datos del programa X se envían a través de ese canal a la máquina cliente de forma transparente.
Como podrá imaginar, el reenvío por X11 puede ser muy útil. Por ejemplo, se puede usar el reenvío por X11 para crear una sesión segura e interactiva con up2date. Para hacer esto, conéctese al servidor usando ssh y escriba:
up2date & |
Se le pedirá proporcionar la contraseña de root para el servidor. Luego aparecerá el Agente de actualización de Red Hat y permitirá al usuario actualizar con seguridad el sistema remoto.
Con SSH puede asegurar los protocolos TCP/IP a través del reenvío de puertos. Cuando use esta técnica, el servidor SSH se convierte en un conducto encriptado para el cliente SSH.
El reenvío de puertos funciona mediante el mapeado de un puerto local en el cliente a un puerto remoto del servidor. SSH le permite mapear cualquier puerto desde el servidor a cualquier puerto en el cliente; y los números de puerto no necesitan coincidir para poder funcionar.
Para crear un canal de reenvío de puerto TCP/IP que escucha conexiones del host local, utilice el siguiente comando:
ssh -L local-port:remote-hostname:remote-port username@hostname |
![]() | Nota |
---|---|
La configuración del reenvío de un puerto para que escuche puertos bajo 1024 requiere acceso de root. |
Si desea comprobar su correo en el servidor llamado mail.example.com usando POP a través de una conexión encriptada, use el comando siguiente:
ssh -L 1100:mail.example.com:110 mail.example.com |
Una vez que el canal de reenvío de puerto está entre la máquina cliente y el servidor de correo, puede direccionar su cliente de correo POP para usar el puerto 1100 en su host local para comprobar el nuevo correo. Cualquier petición enviada al puerto 1100 en el sistema cliente será dirigida seguramente al servidor mail.example.com.
Si mail.example.com no está ejecutando un servidor SSH, pero otra máquina en la misma red si, SSH todavía puede ser usado para asegurar parte de la conexión. Sin embargo, un comando ligeramente diferente es necesario:
ssh -L 1100:mail.example.com:110 other.example.com |
En este ejemplo, se está reenviando su petición POP desde el puerto 1100 en la máquina cliente a través de una conexión SSH en el puerto 22 al servidor SSH, other.example.com. Luego, other.example.com se conecta al puerto 110 en mail.example.com para verificar nuevo correo. Observe que usando esta técnica, sólo la conexión entre el sistema cliente y el servidor SSH other.example.com es segura.
El reenvío del puerto se puede usar para obtener información segura a través de los firewalls de red. Si el firewall está configurado para permitir el tráfico SSH a través del puerto estándar (22) pero bloquea el acceso a través de otros puertos, es posible todavía una conexión entre dos hosts usando los puertos bloqueados al redireccionar la comunicación sobre una conexión SSH establecida.
![]() | Nota |
---|---|
Mediante el uso del reenvío de puerto para reenviar conexiones de este modo permiten a cualquier usuario en el sistema cliente conectarse a ese servicio. Si el cliente está en riesgo o está comprometido, un agresor puede también accesar los servicios reenviados. Los administradores del sistema preocupados por el reenvío del puerto pueden deshabilitar esta funcionalidad en el servidor especificando un parámetro No para la línea AllowTcpForwarding en /etc/ssh/sshd_config y reiniciando el servicio sshd. |