
Ahora bien, si no me equivoco, un túnel SSH del puerto 80 a un servidor web en el puerto 80 debería permitir que mi puerto 80 pase por ese servidor, ¿correcto? Sin embargo, cuando configuro un túnel y accedo a un sitio web, mi registro todavía parece provenir de la computadora de mi casa en lugar de la IP del servidor. ¿Alguna idea de por qué?
Utilizo el siguiente comando, pero todo lo que parece hacer es simplemente ingresar SSH al host en la terminal:
ssh root@webserver -L 80:127.0.0.1:80
Respuesta1
Intenté esto y confirmé que estaba funcionando:
ssh -ND 8080 [email protected]
Se requiere root para vincular el puerto local 80 en su máquina, ya que es un puerto reservado (y 8080 es la alternativa común). Para reenviar solo el tráfico de su navegador, puede configurar Firefox/Chrome/Lo que sea para usar un proxy de Socks "localhost" en "8080".
Pruébelo sin root, me funciona en un servidor web al que no tengo acceso de root.
Respuesta2
Una vez que el túnel esté configurado (con -L
), deberá cambiar la URL que utiliza, por ejemplo, http://127.0.0.1/
o si el nombre del sitio debe coincidir debido a la configuración del alojamiento virtual, deberá agregarlo al archivo de hosts de su escritorio:
127.0.0.1 www.domain.com
Podrías definir un alias en el servidor vhost para poder usar un nombre para 127.0.0.1 como "test.domain.com", y el nombre real para ir directamente, si alguna vez va a ser útil, olvidándote de eliminar las entradas. del archivo de hosts es una buena manera de causar confusión. Depende de cómo funcione el sitio.
Para reenviar el puerto 80 sólo necesita ser root en el escritorio, "no" en el servidor web.Recomiendo encarecidamente no permitir el inicio de sesión ssh para root.
Usando un puerto sin privilegiospuedetrabajo, nuevamente dependiendo de su sitio:
ssh user@webserver -L 1080:127.0.0.1:80
y utilice la URL http://127.0.0.1:1080/
.
Usando un proxy SOCKS ( -D
) como se sugierepuedecausar algunas sorpresas, dependiendo de la configuración de SOCKS/DNS/firewall/NAT.
(En Linux, como alternativa a ser root para los puertos reservados, puede utilizar las capacidades POSIX, consultehttps://stackoverflow.com/questions/413807/hay-una-manera-para-procesos-no-root-de-vincular-a-puertos-privilegiados-1024-on-l, sin embargo, esto no funcionará en versiones estándar de OpenSSH ya que tiene una verificación adicional codificada en los números de puerto, a menos que se compile con NO_IPPORT_RESERVED_CONCEPT
definido. Las respuestas a la pregunta vinculada tienen varias otras soluciones para eso).