2010-06-13

Conectarse a un Servidor de Lineage II a través de un Túnel SSH (Cont.)

Bueno, ya habíamos visto en la entrada anterior sobre este tema como conectarse a un servidor de Lineage II a través de un túnel SSH burlando un Firewall. En esta entrada concluiré ese tema explicando como realizar la conexión cuando el servidor modifica el cliente en lugar de modificar el archivo de hosts.

En realidad esta entrada también explica una manera de redireccionar cualquier conexión que vaya a una determinada IP a una IP diferente usando un túnel SSH. Esta facultad es especialmente útil por ejemplo cuando queremos saltar Firewalls o cuando tenemos programas viejos que ya no tienen mantenimiento y tienen una IP quemada en el código que no podemos cambiar y necesitamos que se conecten a una IP diferente, entre otras posibilidades.

De que trata esta entrada

Esta entrada explica la manera de usar un túnel SSH para desviar conexiones que van a determinada IP de modo que vayan a una IP diferente de nuestra elección. Para explicar dicho tema haré uso de un ejemplo, una conexión a través de un Firewall usando un túnel SSH para conectarse a un servidor de Lineage II que modifica el cliente.

En este ejemplo en particular realizaremos una conexión al servidor Ludmila, un servidor que al momento de escribir esta entrada era un servidor low rate (7x) que corría con Lineage II - CT1 Hellbound

Para mas información sobre el tema que se está tratando en esta entrada por favor lean las entradas anteriores del blog sobre el mismo tema.

Antes de empezar

Antes de poder hacer uso de esta técnica se necesita alguna información, en particular necesitamos las direcciones IP y los puertos a los que el cliente necesita conectarse para poder realizar el redireccionamiento IP. Esta información la puedes conseguir muy seguramente en la página del servidor en el que juegas o tal vez preguntando en el foro de este mismo, no obstante, enseñaré aquí una ténica para obtener esta información por nuestra propia cuenta monitoreando las conexiones activas del PC.

Antes de intentar lo que describiré a continuación trata de minimizar lo más posible las conexiones que tu PC tiene con la red, cierra los programas que usan internet como Messenger, Skype, Outlook, etc. Lo ideal si puedes es que no haya ninguna conexión activa.

Seguidamente abre una consola y ejecuta:

netstat -n -p tcp

Verás en la consola algo como esto:

Bueno, ahora vuelve a escribir el comando en la consola pero NO presiones Entrar, esto es, la consola debe estar lista para ejecutar el comando. Luego abre el cliente de Lineage II y escribe tus datos de inicio de sesión, luego da clic en Login o presiona Entrar y rápidamente presiona ALT+TAB para cambiar a la consola y presiona Entrar para que se ejecute el comando que estaba preparado en la consola.

Inmediatamente verás aparecer la nueva conexión con su IP y puerto. Bien, ya tenemos la información del servidor de autenticación. Seguidamente selecciona el servidor en la lista de servidores y dale a Connect, cuando veas la lista de personajes ejecuta nuevamente el comando y verás aparecer la IP y el puerto del servidor del juego, algo como esto:

Ok, ya tenemos las IPs y puertos que necesitaremos para establecer la conexión, estos son:

  • 190.224.162.71:666
  • 190.224.162.71:7777
  • 190.224.162.74:2106

No importa si en tu caso el cliente se conecta a más o menos destinos lo importante es que anotes las IPs y los puertos que necesitarás redireccionar.

Preparar la tarjeta de red

Lo siguiente que haremos será preparar la tarjeta de red para desviar las conexiones que normalmente irían a través de la puerta de enlace de vuelta a nuestro equipo. Ya expliqué como hacerlo en la entrada anterior, aquí solo mostraré un screenshot de como se ve la página de configuración avanzada de IPv4:

Nótese que he agregado las dos direcciones IP del servidor del juego que hemos detecto (190.224.162.71 y 190.224.162.74) además de la IP de conexión de la red local (192.168.0.174) dejando la tarjeta de red con un total de tres direcciones IP.

Crear el Túnel SSH

Lo siguiente que haremos será crear el Túnel SSH. Para hacerlo volveré a utilizar el Putty ya que es lo más fácil. Los pasos base para establecer la conexión ya los he explicado en las entradas anteriores así que aquí solo mostraré un screenshot de como se ve la configuración de los túneles:

Listo, una vez configurados los túneles le damos al botón Open y establecemos la conexión con el equipo relevador. Una vez establecida la conexión Putty estará escuchando en los puertos 666, 7777 y 2106 listo para hacer el redireccionamiento IP al servidor real del juego.

Abrimos el juego y nos conectamos como si nada. Felicitaciones!

Algunos comentarios finales

Así concluye este pequeño tutorial sobre SSH Tunneling para saltar Firewalls. A pesar de que esto puede parecer un conjunto de tutoriales escritos con cierto desdén por las reglas y con la intención de permitirle a quien los lea violar políticas de una empresa o una institución educativa en realidad no es así.

Este material se escribió con el propósito de poner a disposición de otros un conocimiento que no está muy a la luz. Y a pesar de que lo que aquí se explica podría usarse con fines ilegales y maléficos también tiene muchas aplicaciones beneficiosas, puede sacar de un aprieto a un profesional de IT en algún caso.

También muestra las debilidades que algunos sistemas tienen y demuestra que cerrar puertos en un Firewall no es garantía de que se evitarán conexiones no deseadas.

Yo siempre estoy abierto a comentarios y los recibo con mucho gusto. Por favor si tienen comentarios, dudas, preguntas, o lo que sea no duden en dejar un comentario en la entrada o enviarme un correo electrónico.

2 comentarios:

tino dijo...

ya que estamos, sabrias si hay alguna manera de bajar los ms con este server, en el router vi una opcion "QoS" nose si esta opcion me ayudaria a mejorar un poco la latencia con el server, el tema que no se como configurarlo bien, lo que me pasa actualmente es tener lag en asedios con mucha gente despues es todo normal, tengo 1mb de conexion.

desde ya gracias

Sergio dijo...

Hola. Gracias por leer el blog. Primero que nada decirte que la configuración de QoS de tu router no mejorará la latencia con el servidor a menos que la latencia sea causada por alguien que está dentro de tu propia red (Alguien viendo vídeos en YouTube o algo así).

La configuración de QoS determina que tipo de tráfico tiene mayor prioridad en la red que "administra" el router. En mi caso yo tengo el tráfico al puerto 7778 (el puerto del Lineage II) con la mayor prioridad en mi red para que cuando mis room mates estén navegando o bajando algo no se me lagee el juego, pero como te digo esto solo afecta a la red local.

Si la latencia está por fuera de tu red local no hay mucho que puedas hacer. Aunque aumentaras tu canal eso no te garantizaría no tener latencia, yo tengo un canal de 4 mb/s y a veces tengo latencia con mi servidor (por que lo tienen un un datacenter de mierda).

A veces simplemente se trata del servidor, hay servidores que se hacen lentos cuando hay muchos usuarios conectados al tiempo y todos o gran parte de ellos perciben la lentitud del servidor como latencia en la conexión.

Finalmente, hay muchas personas que llaman lag a varios tipos de condiciones que no siempre están relacionados con la red. Por ejemplo si hay muchos jugadores a tu alrededor tu GPU tendrá que renderizar una gran cantidad de meshes lo que hará que las gráficas se vean más lentas, la solución a este problema es, por supuesto, correr el juego con una configuración gráfica menor.

Así mismo a veces cando ingresas a un área donde hay muchos personajes tu PC carga de repente una gran cantidad de datos del disco duro (texturas, meshes, sonidos, efectos y animaciones) y tu percibes eso como lentitud en el juego, en algunos casos si el disco duro es de acceso lento (por ejemplo los IDE) el juego puede llegar a congelarse.