Tengo un escenario en el que necesito abrir un puerto para un servidor detrás de un ISP que parece estar bloqueando el tráfico. En este caso tengo un servidor dedicado de forma remota que puedo ssh
en y usar cualquier puerto que desee. Mi deseo es ingresar desde el servidor detrás de este firewall al servidor dedicado y luego abrir un puerto generalmente para que el cliente de esta otra aplicación pueda acceder a voluntad.
Pensé que era tan simple como, desde el servidor detrás del firewall ISP:
ssh username@remote_server_ip -R remote_server_ip:12345:localhost:12345
Y luego simplemente conectar con el software cliente para remoteserver:12345
como la configuración del servidor.
Además, tengo sshd_config
ajustado a GatewayPorts clientspecified
y cuando lo compruebe netstat -tln | grep 12345
en el servidor_remoto, estoy viendo:
Conexiones de internet activas (solo servidores)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 remote_server_ip:12345 0.0.0.0:* LISTEN
Desafortunadamente esto parece no funcionar. Estoy sospechando que estoy obteniendo algo en los argumentos ssh. ¿Algunas ideas?
fuente
Respuestas:
Si entiendo bien, usted quiere crear un túnel ssh desde su máquina detrás del ISP y exponer su servicio a través de un puerto en el servidor SSH.
Si ese es el caso, su línea de comando parece correcta. Hago algo similar.
Ha habilitado los puertos de puerta de enlace en la configuración sshd, por lo que todo está bien, si no lo hizo, solo podría vincular el puerto a la dirección de bucle de retorno 127.0.0.1 en el servidor ssh.
Nota rápida: tuve que reiniciar mi servidor ssh para que la opción gatewayport comenzara a funcionar. Reiniciar el servicio sshd debería ser suficiente, pero no funcionó para mí.
Veo que no está especificando un puerto para el servidor ssh, lo que significa que está usando el puerto 22, su ISP puede estar templado con él de alguna manera.
Otra cosa, sea cual sea el servicio al que quiera acceder en el servidor que está detrás del ISP, asegúrese de que su puerto esté vinculado a la interfaz 127.0.0.1, ya que ese es el punto al que apunta su túnel. Además, verifique que su servicio esté aceptando conexiones desde esa interfaz y vuelva a verificar el puerto en el que se está ejecutando.
@barlop -R 127.0.0.1:12345:localhost:12345 estaría mal, el servicio solo sería accesible para alguien que se conecte con el adaptador de bucle invertido.
Pero al leer la publicación de barlop, me di cuenta de algo, tenga en cuenta que al establecer su comando, el puerto que se está abriendo en el servidor ssh estará vinculado a la misma IP que ejecuta su servidor SSH. Lo que significa que el servicio está siendo expuesto a Internet, tal vez sea lo que quiere, pero si la ppl que necesita el servicio se conecta desde la LAN, entonces debe vincular este puerto a la IP de LAN del servidor ssh. ¿TAMBIÉN ESTÁ SEGURO de que el servidor ssh al que se está conectando no está detrás de un servidor de seguridad que reenvía el puerto 22 al servidor de manera interna? Si ese es el caso, significa que le está pidiendo al servidor ssh que abra un puerto en una IP que pertenezca al firewall, lo cual es obviamente imposible.
En ese senario, necesitaría abrir un puerto en la propia lan ip del servidor ssh, luego las máquinas locales podrían conectarse directamente allí. Si desea exponer el servicio a Internet, debe reenviar un puerto del firewall al puerto. Usted abrió en el servidor ssh.
Solo tratando de cubrir todo, es difícil obtener una imagen clara de lo que está pasando sin más información sobre la infraestructura.
Awww los placeres de las redes.
fuente