Español English

Tuesday 26 January 2010

Conectarse a internet a través del portátil

En casa de mi novia por un mal entendido con el proveedor de internet no hay internet y estamos a la espera de que el proveedor lo solucione ya que era un error suyo. Por suerte una red inalámbrica de un vecino no estaba cifrada con lo cual pude acceder a internet desde el portátil. Una vez explicada la causa por la que no teníamos internet voy a explicar como he conseguido que el ordenador de sobremesa de mi novia tenga acceso a internet sin un dispositivo para las redes inalámbricas.

Resum: Portátil con wifi conectado al vecino y la torre sin wifi.

Me hice la siguiente pregunta ¿Puedo hacer que la torre se conecte a internet a través del portátil? La respuesta es sí. Si tienes instalada alguna distribución de GNU/Linux tanto en el portátil como en la torre. Supongo que no sería complicado hacer que una torre con windows también hiciese esto pero no es mi caso.

Como el portátil tiene dos interfaces de red, la inalámbrica y la entrada ethernet RJ45. No hay problema en que esté conectado a dos redes al mismo tiempo. La red inalámbrica es la siguiente: 192.168.1.0/24. Ahora nosotros vamos a crear una red para que se conecten los dos ordenadores que será la siguiente: 192.168.2.0/24.

Lo primero es conectar los dos ordenadores con un cable cruzado o también conocido como latiguillo. Una vez hecho esto abrimos una terminal en cada ordenador. En la torre ejecutamos el siguiente comando:
ifconfig eth0 192.168.2.2 netmask 255.255.255.0
éste comando nos da la ip 192.168.2.2 a la interfaz eth0. Ahora ejecutamos
route add default gw 192.168.2.1
éste comando le indica a la torre que por defecto las peticiones las ha de realizar a la ip indicada (el portátil).

La torre ya hace las peticiones al portátil para conectarse a internet, pero todavía no hemos acabado.Ahora en el portátil ejecutamos
ifconfig eth0 192.168.2.1 netmask 255.255.255.0
y después éste
echo "1" > /proc/sys/net/ipv4/ip_forward
éste último le dice al portátil que reenvíe todos los paquetes que le llegan.

Una vez llegados a este punto si queréis podéis ver como tanto el portátil como la torre contestan a los ping. Ahora mismo sólo se pueden comunicar entre ellos pero nosotros queremos que la torre tenga acceso fuera de la red que hemos creado. Para eso el portátil tiene que trabajar como si fuera un router NAT. Esto se hace de la siguiente forma. En el portátil ejecutamos.
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 0.0.0.0/0 -j MASQUERADE
iptables -A INPUT -i wlan0 -p ICMP -j ACCEPT
iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT
iptables -A INPUT -i wlan0 -m state --state NEW, INVALID -j ACCEPT
iptables -A FORWARD -i wlan0 -m state --state NEW, INVALID -j ACCEPT
Con esto lo que conseguimos es que el portátil trabaje como un router NAT. En el man iptables podéis ver todas las posibilidades de éste fabuloso comando.

Ahora mismo la torre se puede conectar a internet pero no resuelve los DNS. Si queréis hacer la prueba podéis ejecutar en la torre
ping 216.239.59.191
Es la IP del servidor de blogspot.com.
Ahora sólo nos falta añadir las líneas que indican como se resuelven las peticiones DNS en nuestra torre. Para esto tenemos que editar el fichero /etc/resolv.conf. Añadimos las siguientes líneas al final
nameserver 208.67.222.222
nameserver 208.67.220.220
Estas IP son de los servidores DNS openDNS, podéis utilizar las que más os gusten. Yo he puesto estas porque forman parte de un desarrollo opensource.

Ahora una vez hecho esto, ENHORABUENA. Ya tienes acceso a internet desde la torre sin tener un dispositivo inalámbrico en ella.

Cualquier duda comentario.

2 comments:

  1. Ö
    Muy buen manual. Bastante completo. Has soltado esas reglas del iptables al hilo?? xD ... me ha gustado lo ninja del asunto ;^)

    ReplyDelete
  2. Gracias por los cumplidos ;)

    Para las reglas consulté el man del iptables y rebusqué por Internet... Algunas de las necesarias las conocía pero no todas. Con un poco de paciencia y un par de pruebas conseguí saber cuales eran las necesarias.

    jejeje. Gracias por lo de ninja del asunto ;)

    ReplyDelete