Ubuntu

Soporte

COMO: Compartir Conexión a Internet

Tenemos una red y queremos configurarla para tener internet desde cualquier terminal.

El sistema NAT (Network Address Translation) permite que cualquier usuario de la red tenga acceso a internet utilizando la IP que nos asigna el proveedor.
Para esto, necesitamos dos interfaces de RED, una de ellas a la privada y la otra a internet.

La función del NAT es tomar todos los paquetes provenientes de la red (con direcciones como 192.168.0.1 las cuales no son validas para internet), 'enmascararlos' en uno solo y enviarlos a internet. (Por medio de la interfaz del servidor) Cuando estos vuelven, los 'desenmascara' y distribuye entre los usuarios de la red.

El NAT, parámetro dentro de IPTABLES, lo podemos agregar a nuestro firewall (Ver Seguridad en Linux) con unas pocas lineas.

Agregamos esto a nuestro antiguo script, o bien creamos uno nuevo.

iptables --flush

NOTA: En caso de no tener firewall, borramos todas las reglas anteriores.
En el caso de tener un firewall como el mencionado anteriormente, debemos agregarle una linea que permita toda conexión de red como esta:

iptables -A INPUT -i eth0 -j ACCEPT

Primero que nada, debemos definir las reglas de enmascaramiento, de tal forma que todo lo que salga sea enmascarado:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Donde eth1 es la interfaz que se conecta a internet
Luego, debemos crear una regla que pueda permitir el paso de la información entre las dos redes, a esto se lo llama FOWARDING, y se hace de esta manera:

iptables -A FOWARD -i eth0 -j ACCEPT

Donde eth0 es la interfaz que se conecta a nuestra red privada.

Como último paso en el servidor, debemos activar el soporte de IP Fowarding en el kernel agregando al script lo siguiente:

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

Todos estos comandos no quedan almacenados al reiniciar la pc, de forma tal que la configuración se perderá, por lo que guardamos el script en /etc/init.d, agregándole la extensión .sh y permisos de ejecución con el siguiente comando:

sudo chmod 555 /etc/init.d/internetshareing.sh

Lo ejecutamos con:

sudo sh /etc/init.d/internetshareing.sh

Listo, de esta forma ya tenemos el servidor configurado. Ahora solo resta configurar el cliente con el comando:

route add default gw [IP DEL SERVIDOR]

Agregamos al archivo /etc/resolv.conf los numeros de IP del DNS. para ello ejecutamos en la terminal:

nano /etc/resolv.conf

Una vez habierto el editor de textos, incorporamos los DNS

nameserver [IP DEL DNS1]
nameserver [IP DEL DNS2]
nameserver [IP DEL DNSx]

En caso de ser un cliente Microsoft Windows, para configurarla seguimos los siguientes pasos:

Inicio -> Configuracion -> Conexiones de Red -> Click derecho en la Conexión de Red -> Propiedades ->Protocolo de Internet TCP/IP -> Propiedades:


Dirección de IP: (la dirección que usamos para configurar el script)
Mascara Subnet: 255.255.255.0
Gateway: (ip de red del Servidor)

Avanzado -> DNS -> Añadir

Agregamos dos o más DNS de nuestro proveedor.

-> Aceptar -> Reiniciar la conexión.

Y eso es todo, ¡disfruten de la conexión! =D