miércoles, 21 de julio de 2010

Conectate a otros ordenadores de forma remota: VNC

Bueno, rebuscando por ahí he encontrado la forma de ayudar a amigos y familiares de una forma fácil y sencilla: VNC. este paquete es un cliente de escritorio remoto que funciona muy bien, la verdad, lo bueno que tiene es que en parte está basado en la tecnología Java y, por tanto, se puede usar tan fácil como escribiendo la dirección del PC a conectarse en un navegador. De la forma, por ejemplo, 84.35.XX.XX:5800, de ahí pasamos a una aplicación Java que nos pedirá contraseña y listo!!! conectados y funcionando...

Este tuto está sacado de aquí, y en resumen es esto:

Instalar VNC Server y ingresar desde tu navegador web

Podras acceder a tu pc de forma remota a través de un navegador web:

  • Instalaremos los paquetes correspondientes mediante:
    sudo aptitude install x11vnc vnc-java
  • Estableceremos la contraseña que dará acceso a los clientes:
    x11vnc -storepasswd
  • Abrir puertos 5800 y 5900 en nuestro firewall y cortafuegos. Si tenemos un router debemos de redirigir estos puestos a la IP del pc en concreto a controlar.
  • Ejecutar le siguiente comando en el terminal :
    x11vnc -forever -usepw -httpdir /usr/share/vnc-java/ -httpport 5800
    que también podemos añadirlo a nuestra sesión para que se ejecute de forma automática en cada inicio.
Una vez hecho esto en la barra de direcciones del navegador ingresaremos la dirección IP del pc a controlar: algo como esto 192.168.0.118:5800, siendo 192.168.0.118 los dígitos correspondientes a la IP del pc que deseamos ingresar, ya este conectado en nuestra red local o en internet.


Soporte informático y noticias en http://www.rootsystems.es/diseno-web-granada.html

miércoles, 14 de julio de 2010

Conectar Xbox a Ubuntu con NAT abierto

Bueno, después de estar investigando mucho tiempo, ver muchos tutos y hacer multitud de pruebas, conseguí conectar mi xbox a xbox live a través de ubuntu con NAT abierto.. Os comento:
Mi ordenador está conectado a internet a través de la tarjeta inalámbrica (wlan0), y a su vez conectado a la Xbox a través de la tarjeta ethernet (eth0).

Xbox<------>(eth0)Ubuntu(wlan0)<------>Internet

La idea es la siguiente, la red de mi casa (wlan0<->router) es del tipo 192.168.0.0/24 y, el secreto del éxito, es que la red xbox y pc (xbox<->eth0) sea del tipo 10.0.0.0/24.
El funcionamiento es simple, la xbox manda paquetes con destino internet, estos paquetes tienen en la cabecera la dirección 10.0.0.0/24 y, obviamente, tienen que pasar por mi pc con Ubuntu para llegar a internet, la idea es que Ubuntu cambie la cabecera de estos paquetes poniendo su dirección de wlan0, es decir, los transforma para simular que los manda él mismo. Ésto se consigue con iptables.
Al cambiar la cabecera, el router tiene que tener los puertos abiertos para la IP wlan0 de la xbox y, según la documentación oficial de xbox live son estos:
  • TCP 80
  • UDP 88
  • UDP 3074
  • TCP 3074
  • UDP 53
  • TCP 53
Hasta ahora tenemos que haber hecho lo siguiente:

1º Poner a eth0 en una red diferente que la de wlan0, por ejemplo la 10.0.0.0/24.
sudo ifconfig eth0 10.0.0.1
2º Poner a wlan0 en red con el router: se supone que con conectarse al AP será suficiente, en mi caso la red es del tipo 192.168.0.0/24 y la IP de wlan0 es la 69
sudo ifconfig wlan0 192.168.0.69
3º Abrir los puertos TCP: 80, 3074, 53 y UDP: 88, 3074, 53 en el router (OJO) para la IP de wlan0 (en mi caso la 192.168.0.69).

Hasta aquí todo fácil, ahora viene lo interesante:
lo primero que debemos de hacer es habilitar el forward de IPv4 en nuestro Ubuntu, para eso escribimos en terminal lo siguiente:
sudo echo "1" >/proc/sys/net/ipv4/ip_forward
Ahora añadimos las reglas de Iptables que hacen lo que he explicado arriba, escribimos en terminal:

sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp -m multiport --dports 80,3074,53 -j DNAT --to-destination 10.0.0.2
sudo iptables -t nat -A PREROUTING -i wlan0 -p udp -m multiport --dports 88,3074,53 -j DNAT --to-destination 10.0.0.2
sudo iptables -t nat -A POSTROUTING -o wlan0 -s 10.0.0.0/24 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -d 10.0.0.2 -p tcp --dport 3074 -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -d 10.0.0.2 -p udp -m multiport --dports 88,3074,53 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o wlan0 -s 10.0.0.0/24 -j MASQUERADE

Y, por último, en la xbox ponemos la IP estática:
IP: 10.0.0.2
Mascara de subred: 255.255.255.0
Gateway: 10.0.0.1

DNS: 62.42.230.24 62.42.63.52 (Estas son las mías de ONO que funcionan bastante bien, pero podeis poner las que tengais o querais).

Y voilà NAT abierto y a viciar =D

No obstante, para facilitar las cosas, he creado un pequeño y humilde script para no tener que hacer todo este petardo cada vez que reiniciemos, porque las reglas de iptables se borran cuando apagas, para hacerlo seguimos los siguientes pasos:
1º Nos logueamos como root:
sudo bash
2º Vamos a /etc/init.d/
cd /etc/init.d/
3º Creamos un documento de texto y lo editamos
touch ScriptXbox
gedit ScriptXbox
4º Dentro del archivo pegamos el Script:

#!/bin/bash
echo "Levantando y cambiando IP de eth0"
ifconfig eth0 up
ifconfig eth0 10.0.0.1
echo "Levantando y cambiando IP de wlan0"
ifconfig wlan0 up
ifconfig wlan0 192.168.0.69
echo "Activando forward"
echo "1" >/proc/sys/net/ipv4/ip_forward
echo "Aplicando reglas Iptables"
iptables -t nat -A PREROUTING -i wlan0 -p tcp -m multiport --dports 80,3074,53 -j DNAT --to-destination 10.0.0.2
iptables -t nat -A PREROUTING -i wlan0 -p udp -m multiport --dports 88,3074,53 -j DNAT --to-destination 10.0.0.2
iptables -t nat -A POSTROUTING -o wlan0 -s 10.0.0.0/24 -j MASQUERADE
iptables -A FORWARD -i wlan0 -d 10.0.0.2 -p tcp --dport 3074 -j ACCEPT
iptables -A FORWARD -i wlan0 -d 10.0.0.2 -p udp -m multiport --dports 88,3074,53 -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -s 10.0.0.0/24 -j MASQUERADE
echo "hecho!"

5º Guardamos y cerramos
6º Tenemos que darle permisos de ejecución
chmod 755 ScriptXbox
7º Actualizamos para que arranque la iniciar
update-rc.d ScriptXbox defaults

Y listo!!!!!!!!!!!!! a disfrutar


Soporte informático y noticias en http://www.rootsystems.es/diseno-web-granada.html