3 ene. 2009

Compartir Internet en una Red Ubuntu

Nuevamente vuelvo por aquí para escribir un pequeño tutoríal para compartir internet en una pequeña red ya que esto es verdaderamente un desafío al intelecto, ya que requiere de mucho conocimiento técnico de IPTABLES que es una locura, que es terrible y mas si eres novato.

Entonces vamos con lo fácil mas bien, por supuesto otro tutoría bien masticadito bastante gráfico nuevamente. Por cierto alguien en estos días me escribió un correo para decirme que mis tutoriales no hacian sino engendrar mas la pereza por el conocimiento. La respuesta a eso es que el mundo no esta lleno de genios de la computación, ay gente que viene de windows y es importante resaltar que hay cosas aca en nuestro mundo linux que no son tan fáciles como por los lados de las ventanas.

Bueno despues de eso vamos con lo que necesitamos:

Primero lo que queremos hacer es lo siguiente:
Tenemos un computador de escritorio con un sistema Ubuntu Intrepid Ibex instalado que tiene dos tarjetas de red:

1. Asrock Incorporada VT6102
2. Realtek RTL-8169

Este computador sera el que se conecte al internet por medio de una de estas tarjetas que en este caso sera la tarjeta numero 1. A su ves tenemos un portátil marca DELL Inspiron con Intrepid que tiene también una tarjeta de red y que se conectara al computador de escritorio mediante un cable de red hasta la tarjeta numero 2. Gráficamente es algo como lo que sigue:
Bueno ya tenemos claro que es lo que tenemos y que es lo que vamos a hacer, primero que todo advierto que si vamos a tener que usar el terminal,de todas formas no vamos a ver nada de iptables en ningún momento para que no se asusten.

Lo primero que vamos a requerir es instalar dos programas para poder hacer posible lo que tenemos pensado.

sudo apt-get install firestarter dhcp3-server

Primero les cuento que estamos instalando, firestarter es un programa que se encarga del firewall de nuestro sistema y además permite compartir internet en una red que es lo que primariamente vamos a realizar, dhcp3-server es simplemente un script para que nuestro sistema se comporte como un servidor de internet.

Bueno una ves que lo tenemos instalado en nuestro sistema de escritorio que es donde vamos a realizar todo lo que viene, estamos listos para empezar.

Lo primero es ir al icono de network manager 0.7, ahi lo que vamos a realizar es la edicion de las conexiones.

Una ves que llegamos a esta pantalla el paso mas importante es identificar cada uno de nuestros dispositivos. En este caso tenemos dos dispositivos mostrados, uno es eth1 y el otro es eth0, la idea es verificar cual es el que tiene la conexión a internet y cual es el que estará conectado a nuestro portátil. Entonces verificando con facilidad se puede notar en mi caso que el que esta conectado al internet es el eth1 que es la tarjeta de red numero 1 y el que esta conectado al portátil es el eth0 con la tarjeta de red numero 2.
Entonces una ves tenemos definido esto lo que vamos es a editar el dispositivo que esta conectado a nuestro portátil. Repito vamos es solamente a mirar el que esta conectado a nuestro portátil, el de internet no nos interesa para nada. Ahora en esta pantalla lo que tenemos es que definir que el método de conexión que el portátil tendrá a nuestro sistema lo vamos a definir nosotros de forma MANUAL.

La direccion que vamos a usar entonces es: 192.168.0.1
La mascara de red que vamos a usar es: 255.255.255.0
Y la puerta de enlance que vamos a usar lo dejamos en blanco.

Repito lo anterior no es susceptible a gustos es lo que dice en el blog jejeje. XD

Sigamos con el tutorial pues:
Ahora vamos a ir al terminal

El comando que vamos a introducir simplemente crea un enlace del servidor para que el programa firestarter pueda usarlo.
sudo ln -sf /etc/init.d/dhcp3-server /etc/init.d/dhcpd

Después de presionar enter nos pedirá nuestra contraseña y listo. Ahora nuevamente vamos a utilizar la linea de comando y vamos a editar un archivo. Simplemente en terminal escribimos lo siguiente:

gksu gedit /etc/default/dhcp3-server

En el archivo que se abre lo que nos dice es que el huésped es decir el portátil debe buscar un numero IP que se debe asignar de forma dinámica, lo que pasa es que el sistema no sabe en donde es que lo debe buscar y aquí debemos indicar en donde es que el portátil buscara su numero IP. Entonces como ya sabemos el portátil se esta conectando al la tarjeta de red numero 2, que esta identificada como eth0
Listo una ves guardamos este archivo nos vamos a abrir el programa firestarter.
Que viene con un asistente de esos tipo windows que simplemente presionamos siguiente jejejeje.

Aqui es solo cuestion de seguir mis pantallazos.

Una ves estamos en el programa simplemente el siguiente paso es modificar las preferencias así que nos vamos al botón preferencias y vamos a poner las siguientes características. En mi caso puse las que el programa pone por defecto para darme cuenta que no funcionaria jajaja. Pero bueno para saber cuales son las que debes poner te vas al icono de network manager y le das en información y buscas la información de como tu pc se conecta al internet. En mi caso el cambio que realice fue el siguiente:

En donde dice Ip Baja puse 192.168.0.1 y listo lo demas lo deje como estaba por defecto y con eso fue suficiente.
Ahora despues de realizar todo lo anterior toco reiniciar el computador de escritorio y en mi caso volver a relizar el paso uno donde puse lo de manual, despues conecte el portatil a la red usando el cable y de una aparecio el internet.

15 comentarios:

  1. Serviría también para una conexión cableada y una inalámbrica?

    ResponderEliminar
  2. Para que funcione con una red inalámbrica debes tener un router, este tutorial es precisamente para una red cableada.

    ResponderEliminar
  3. alguien sabe como compartir el internet que recibo en mi antena wifi a otras computadoras conectadas por la ethernet?
    He buscado en internet exhaustivamente y no encuentro nada al respecto.

    gracias.

    ResponderEliminar
  4. En estos dias comienzo a testear lo que estas pidiendo, si lo logro entonces publicare un tutorial de como compartir internet de wifi a ethernet.

    ResponderEliminar
  5. Segui tu tutorial pero resulta que el cortafuegos me bloquea el acceso a internet en el SERVIDOR por otra parte el portatil no sale a intermet aunque si recibe IP-DHCP, alguna sugerencia

    ResponderEliminar
  6. Necesito algo mas de informacion el cortafuego es externo a tu pc ?. Si es externo a tu pc lo que debes hacer es verificar que puertos tiene abiertos, para ello puedes buscar en google "puertos abiertos n mi pc" y corres el analizador, despues de que sepas que puertos estan abiertos el que requieres es el 80 asi que con firestarter hay una opcion para rediririgir los servicios aun puerto especifico, aplicas eso y seguramente ya puedes buscar la IP para conectarte.

    ResponderEliminar
  7. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  8. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  9. ###### SCRIPT DE CONFIGURACION DE IPTABLES ######
    #!/bin/bash

    # Dispositivo de red de internet
    EXIF="eth0"
    # Dispositivo de red local
    INIF="eth1"

    ## Borrado de reglas anteriores
    iptables -F
    iptables -X
    iptables -Z
    iptables -t nat -F

    iptables -t nat -A POSTROUTING -o $EXIF -j MASQUERADE

    echo 1 > /proc/sys/net/ipv4/ip_forward

    iptables -A FORWARD -i $INIF -o $EXIF -j ACCEPT
    iptables -A FORWARD -i $EXIF -o $INIF -m state --state RELATED,ESTABLISHED -j ACCEPT

    # Verifique la reglas:# iptables -L -n

    ###### Fin del script de configuracion ip tables ######

    Con esto de arriba nuestras interfaces estan listas para compartir internet

    ResponderEliminar
  10. Configuramos nuestra PC1 que compartira el internet
    $ sudo gedit /etc/network/interfaces
    # The primary network interface
    iface eth0 inet dhcp
    name Wan Interface
    # post-up /sbin/ifconfig eth0 mtu 1492 (opcional)

    auto eth0

    # The secundary network interface ( no utilizar gateway )
    iface eth1 inet static
    name Share Local Internet
    address 192.168.10.1 ( gateway de tu local network )
    netmask 255.255.255.0
    network 192.168.10.0
    broadcast 192.168.10.255
    mtu 1500

    auto eth1

    # Ahora reiniciamos nuestro network:
    $ sudo /etc/init.d/networking restart

    # Ya esta todo listo, ahora solo queda configurar las PC que se conectaran a la PC1

    Las demas PC se configuran de esta manera

    PC2
    IP: 192.168.10.2
    Mask: 255.255.255.0
    gateway: 192.168.10.1

    Primary DNS Server: XXX.XXX.XXX.XXX
    Secundary DNS Server: XXX.XXX.XXX.XXX

    PC3
    IP: 192.168.10.3
    Mask: 255.255.255.0
    gateway: 192.168.10.1

    asi sucesivamente

    # servidores dns a utilizar:# cat /etc/resolv.conf
    (aplicar este comando en la PC1 que compartira el internet)

    nameserver:XXX.XXX.XXX.XXX ( Primary )
    nameserver:XXX.XXX.XXX.XXX ( Secundary )

    Ya tienes internet compartida!

    Ahora bien, si quieren usar DHCP para repartir IP Dinamicas, solo tienes que configurar dhcp3-server.

    La configuracion de la PC1 se queda como esta.

    PC1
    $ sudo apt-get install dhcp3-server

    Luego editamos el archivo de configuración dhcpd.conf

    $ sudo gedit /etc/dhcp3/dhcpd.conf

    # option definitions common to all supported networks…
    option domain-name “example.org”;
    option domain-name-servers ns1.example.org, ns2.example.org;

    default-lease-time 600;
    max-lease-time 7200;

    Debe quedar de esta manera

    # option definitions common to all supported networks…
    # option domain-name “example.org”;
    # option domain-name-servers ns1.example.org, ns2.example.org;

    # default-lease-time 600;
    # max-lease-time 7200;

    Ahora configuramos los parametros de nuestra Red

    subnet 192.168.10.0 netmask 255.255.255.0 { ( nuestra Red Local )
    range 192.168.10.30 192.168.10.254; ( Rango de IP a Repartir )
    option domain-name-servers 70.45.95.8; ( $ sudo cat /etc/resolv.conf )
    option domain-name "tudominio.org"; ( $ sudo cat /etc/hostname )
    option routers 192.168.10.1; ( gateway )
    option broadcast-address 192.168.10.255; ( Broadcast de tu local network)
    default-lease-time 600; ( se deja igual )
    max-lease-time 14400; ( cambiamos de 7200 a 14400 )
    }

    Guardamos los cambios.

    Ahora vamos a configurar dhcp3-server

    $ sudo gedit /etc/default/dhcp3-server

    INTERFACES=”eth1” ( nuestra interface local )

    Guardamos los cambios.

    Aplicamos ahora:
    $ sudo /etc/init.d/dhcp3-server start
    $ sudo /etc/init.d/networking restart

    Listo! internet compartida con DHCP tanto para ethernet como para wireless ad-hoc


    # wireless

    # Wireless Interface
    iface wlan0 inet static
    address 192.168.100.1
    netmask 255.255.255.0
    broadcast 192.168.100.255
    wireless-mode Ad-Hoc
    wireless-essid gator-lx
    wireless-keymode open
    wireless-key1 1122-3344-55 ( o s:password )
    wireless-defaultkey 1
    wireless-rate auto
    wireless-channel 6

    auto wlan0

    Para wireless acuerdate cambiar todos los eth1 por tu interface wireless

    esto es todo.

    scrip para inicio:

    $ sudo update-rc.d "nombre del sript" start 20 2.

    Atencion! el punto final lo tienes que poner

    Para removerlo:
    $ sudo update-rc.d -f "nombre del script" remove

    ResponderEliminar
  11. una mas

    $sudo gedit /etc/hosts

    127.0.0.1 localhost "este es tu hostname"

    192.168.10.1 localhost "pones aqui tu hostname tambien"

    ResponderEliminar
  12. Nombre y la Version de Linux Ubuntu utilizaste

    ResponderEliminar
  13. hola amigo tengo ubuntu 9.10 sigos lo pasos de este tuturial y no me sale..???que tengo que hacer para compartir internet LAN..!!!

    ResponderEliminar
  14. Gracias, me ha funcionado a la primera.

    ResponderEliminar