Hola, nos encontramos nuevamente, esta vez para entregarles una tercera versión (aquí la primera y la segunda)de un método para compartir nuestra la conexión de internet hacia otras máquinas o inclusive toda un LAN. Esta versión se destacará por su extrema simpleza, pero antes debemos asumir que…

  1. Estamos conectados a Internet.
  2. Tenemos una interfaz de red libre.
  3. Tenemos algún Linux con Gnome y NetworkManager 0.7 o mayor (a partir de Ubuntu 8.10 esto es posible)

Lo único que debemos hacer es crear una conexión nueva haciendo click derecho en el icono del Network Manager y seleccionar “Editar las conexiones…” en el menú contextual.

Con esto se nos desplegará la siguiente ventana…

En dicha ventana en la solapa “Cableada” damos click en el botón”Añadir”, para crear la nueva conexión encargada de brindar internet a la máquina o LAN deseadas.

.

.

..


.

Al momento de crear, necesitaremos ingresar un nombre de la conexión, el cual será indistinto, en este caso le puse “Compartida” y en la solapa de “Ajustes de IPv4” seleccionamos el método “Compartida con otros equipos”. Solo queda conectar las otras PCs y seleccionar la conexión haciendo click en el icono del Network Manager como muestra la imagen a continuación y seleccionar la conexión “Compartida”. Buen provecho.

.

En un post anterior escribimos un tutorial para compartir la conexión a internet mediante Firestarter,  ahora quisiera lograr lo mismo pero sin tener que instalar nada, solo con comandos en la consola.

Antes trataré de hacer una introducción para saber de que estamos hablando. Supongamos que tenemos contratada una conexión a internet, tenemos nuestra máquina con Ubuntu (supongo que con cualquier distribución debería funcionar) conectada directamente a internet y queremos darle el servicio a otras máquinas, con caulquier sistema operativo, que deberán conectada en red con esta, para ello necesitamos que nuestro Ubuntu realice las siguientes tareas

  1. Tenga configuradas dos interfaces, una conectada a internet y otra a la red interna (pueden ser dos interfaces físicas o solo una, con un alias).
  2. Habilitar NAT.
  3. Habilitar el ruteo de paquetes.

Luego en los clientes debemos configurar las interfaces de red con los siguiente datos

  1. Dirección IP y máscara de red.
  2. Dirección del gateway.
  3. Dirección servidor DNS.

Procedamos a configurar nuestro gateway de internet (Ubuntu).

  • Configuración de las interfaces

Antes que nada, listaremos las interfaces de red en el equipo que hará de gateway.

ifconfig

Nos arrojará algo así

eth0 Link encap:Ethernet  direcciónHW 00:08:54:d5:b6:15
dirección inet6: fe80::208:54ff:fed5:b615/64 Alcance:Vínculo
ARRIBA DIFUSIÓN CORRIENDO MULTICAST  MTU:1500  Métrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:9
colisiones:0 txqueuelen:1000
RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)
Interrupción:18 Dirección base: 0xa000

eth1 Link encap:Ethernet  direcciónHW 00:14:85:d1:56:f1
dirección inet6: fe80::214:85ff:fed1:56f1/64 Alcance:Vínculo
ARRIBA DIFUSIÓN CORRIENDO MULTICAST  MTU:1500  Métrica:1
RX packets:213659 errors:0 dropped:0 overruns:0 frame:0
TX packets:86905 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:1000
RX bytes:97185066 (97.1 MB)  TX bytes:35852528 (35.8 MB)
Interrupción:20 Dirección base: 0x8000

lo Link encap:Bucle local
inet dirección:127.0.0.1  Máscara:255.0.0.0
dirección inet6: ::1/128 Alcance:Anfitrión
ARRIBA LOOPBACK CORRIENDO  MTU:16436  Métrica:1
RX packets:280 errors:0 dropped:0 overruns:0 frame:0
TX packets:280 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:0
RX bytes:11104 (11.1 KB)  TX bytes:11104 (11.1 KB)

ppp0 Link encap:Protocolo punto a punto
inet dirección:201.234.173.139  P-t-P:201.234.173.3  Máscara:255.255.255.255
ARRIBA PUNTO A PUNTO CORRIENDO NOARP MULTICAST  MTU:1492  Métrica:1
RX packets:90905 errors:0 dropped:0 overruns:0 frame:0
TX packets:86416 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:3
RX bytes:84076601 (84.0 MB)  TX bytes:33574174 (33.5 MB)

En donde eth0, eth1, lo y ppp0 son las interfaces de red, en mi caso ppp0 es la que está conectada a internet y eth1 la que proveería de internet a las demás máquinas (red interna). Puede ser que este no sea el caso de todos, podría darse que eth0 sea la interfaz conectada a internet o eth1, todo dependerá con que tipo de conexión cuentes. Debo aclarar que eth0 y ppp0 es la misma interfaz física (placa de red), mientras que eth1 es otra placa de red. Como ppp0 ya está configurada solo deberemos configurar eth1 asignándole una dirección IP (de la red interna) y una máscara de red, todo eso con el siguiente comando:

sudo ifconfig eth1 192.168.0.1 netmask 255.255.255.0

Podemos ver que le hemos asignado la IP 192.168.0.1 con máscara 255.255.255.0, esa dirección deber pertenecer a la red donde estarán conectadas los clientes, de manera que estos deberán tener una dirección del tipo 192.168.0.X (2 < X < 254) con la misma máscara.

Si no contáramos con dos placas de red podemos crear un alias nuestra interfase eth0, eso lo hacemos con en siguiente comando

sudo ifconfig eth0:1 192.168.0.1 netmask 255.255.255.0

  • Habilitando NAT

Lo haremos con 3 comandos, siempre respetando como hemos configurado nuestras interfaces. Para nuestro caso sería:

sudo iptables -A FORWARD -i ppp0 -o eth1 -s 192.168.0.0/24 -m state –state NEW -j ACCEPT
sudo iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE

  • Habilitando ruteo

Lo haremos con un simple comando

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

  • Configurando los clientes

Cada cliente deberá ser configurado con una direccion IP perteneciente a la red interna de la forma 192.168.0.X, con gateway (puerta de enlace) 192.168.0.1 y con el servidor DNS que nos proporcione nuestro proovedor. Si no lo sabemos, podemos conocerlo haciendo en la maquina conectada a internet:

cat /etc/resolv.conf

Dicho comando nos arrojará algo así

# Generated by NetworkManager
nameserver 201.234.173.3
nameserver 200.55.20.52

Donde esas dos direcciones son los servidores DNS.

Todos estos comandos deben ser reaplicados cada vez que se reinicie la PC, por eso no estaría de más crear un script como el siguiente que realice todo esto de una sola vez,

#Configuramos interfaz de la red interna

sudo ifconfig eth1 192.168.0.1 netmask 255.255.255.0

#Habilitamos NAT

iptables -A FORWARD -i ppp0 -o eth1 -s 192.168.100.0/24 -m state –state NEW -j ACCEPT

iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -A POSTROUTING -t nat -j MASQUERADE

#Habilitamos ruteo de paquetes

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

Guardamos como un archivo de texto en nuestro home con el nombre “compartir” y lo ejecutamos de la siguiente manera.

sudo sh compartir

Espero te funcione. Saludos.