Redirección dinámica inversa por SSH: crear un oyente SOCKS remoto
Cree un oyente SOCKS dinámico inverso en un servidor SSH, con las conexiones de destino abiertas desde el lado del cliente.
Normalmente un túnel SSH SOCKS da a un portátil la salida de red del servidor. La redirección dinámica inversa invierte esa disposición: un programa en la máquina remota puede usar la red de la que dispone su cliente SSH.
En un cliente OpenSSH compatible con redirección remota sin destino:
ssh -N -R 127.0.0.1:1080 [email protected]
El oyente SOCKS está en remote.example.net, vinculado a su dirección loopback. Los programas de allí usan 127.0.0.1:1080. Las conexiones de destino viajan de vuelta por SSH y se abren desde el lado donde se ejecuta su cliente.
Lea la dirección antes que la IP
La documentación de -R hace significativo el destino omitido. Una especificación con port:host:hostport es, en cambio, una redirección fija. No suponga que un cliente antiguo admite la forma dinámica corta.
La IP de salida es la que usa la red del lado del cliente para esas conexiones. Un portátil detrás de un router doméstico puede salir por la dirección pública traducida del router. No es automáticamente la IP del servidor SSH ni una dirección asignada directamente al portátil.
Mantenga restringido el oyente remoto. Una vinculación comodín puede permitir que otras máquinas usen la red del lado del cliente como salida, según la política del servidor. Incluso loopback puede estar disponible para otros procesos elegibles en el host remoto; no es un secreto por proceso.
Para un conjunto restringido de destinos, revise PermitRemoteOpen y la política de redirección del servidor. La ruta también depende de que su cliente siga en línea. Cuando esa conexión se cierra, la ruta del proxy remoto desaparece. La redirección inversa cambia de dónde se originan las conexiones; no proporciona un proxy autónomo independiente de la sesión SSH.