5.7.2. Reenvío del puerto

5.7.2. Reenvío del puerto

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 en el servidor. SSH le permite mapear cualquier puerto desde el servidor a cualquier puerto en el cliente; los números de puerto no necesitan coincidir para que esto funcione.

Para crear un canal de reenvío de puerto TCP/IP que escucha conexiones del localhost, utilice el siguiente comando:

ssh -L local-port:remote-hostname:remote-portusername@hostname

Nota

La configuración del reenvío de puertos para escuchar puertos bajo 1024 requiere acceso de root.

Para verificar correo-e en un servidor llamado mail.example.com usando POP3 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 POP3 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 las peticiones POP3 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 correo nuevo. 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 cortafuegos de red. Si el cortafuegos 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

Si se utiliza el reenvío de puerto para reenviar conexiones de este modo, cualquier usuario en el sistema cliente puede conectarse a ese servicio. Si el cliente está en riesgo o está comprometido, un agresor puede también acceder a los servicios reenviados.

Los administradores de sistemas pueden desactivar la funcionalidad de reenvío de puerto en el servidor si especifican No en la línea AllowTcpForwarding en /etc/ssh/sshd_config. El servicio sshd debe ser reiniciado después de esta modificación.