Compartir una misma Conexión a Internet

Introducción.
Con el aumento masivo de usuarios a Internet surge la necesidad de realizar técnicas en las cuales podamos compartir una misma conexión de Internet con varias maquinas dentro de una misma Red.
Aclarando un poco, nuestro Proveedor de Internet (ISP) nos brinda una conexión de Internet mediante una dirección IP en forma dinámica.
(Dinámica quiere decir que esta IP se va renovando continuamente) De esta forma solo podemos tener una PC conectada a Internet y tendremos que recurrir al uso de un Proxy.
Vamos a usar el proxy vía NAT o bien llamado proxy transparente, su función esencial sera la de brindar enmascaramiento de las IP que cuentan cada equipo conectado a nuestra red. Principio de Funcionamiento de Nuestro Proxy.
Es muy simple el equipo con el cual vamos a configurar tendrá que contar con dos características principales una de contar con dos placas de red y la mas importante es la configuración del mismo.
Su funcionamiento es muy simple, vamos a poner un ejemplo:
Tenemos una red compuesta por 5 PC, conectadas todas a un switch o Hub, una cuenta con el sistema Operativo Linux y dos placas de Red.
Las 4 restantes pueden tener cualquier Sistema Operativo, (nosotros vamos hablar solamente de linux) el servidor Proxy al contar con dos placas de red, las conexiones de las mismas serán:
una conectada al hub como las 4 anteriores y la otra estará conectada directamente al dispositivo de ADSL, Router, etc. (esto ultimo ligado al dispositivo provisto por el proveedor ISP)

Ya tenemos físicamente conectado todo ahora vamos al concepto de funcionamiento:
Cuando cualquier PC al querer obtener información de Internet, (navegar,descarga, email, etc) y al tener definido que como proxy sera nuestro servidor Linux, (mas adelante explicaremos las conexión del cliente) este hará la petición al server y el mismo enmascara los paquetes de este equipo con su IP brindada directamente por el ISP.
Nuestro proveedor de Internet no sabrá que esta recibiendo una petición de un equipo interno de nuestra Red, y la ultima función  del proxy es recibir las respuestas pedidas por el equipo interno y brindarlas sin ninguna restricción.
Resumiendo. El proxy enmascara nuestros pedidos internos con la IP que tiene asignada por el ISP y nos brinda conexión a Internet como si fuera el mismo quien lo solicita.
Esto se llama conexión proxy transparente. Cualquier equipo solicita salir a Internet y sale sin ninguna restricción.


ACLARACIÓN IMPORTANTE.
Muy importante aclarar que tendremos que tener configuradas las dos placas en el servidor como también realizada la conexión a Internet.No voy a entrar en detalle de como configurar una placa de red como tampoco la conexión a Internet. (porque depende de la Distribución instalada y la conexión a Internet)
Como recomendación de la configuración es la de utilizar las herramientas incluidas en las distribuciones Mandriva 2008 (drakconf) y Suse 10.3 (Yast) con ellas podrá configurar la conexión a Internet de manera simple como también la configuración de las placas de Red. (de no contar con los conocimientos necesarios para realizar las configuraciones antes descriptas)

Vamos a Configurar.
La forma de hacerlo es muy simple tendremos que cargar linea por linea en una consola para que funcione sin problemas como también podremos cargar las mismas lineas al inicio de nuestro sistema para evitar teclear continuamente. Ya que al reiniciar nuestro equipo todos los valores tecleados se borraran y tendremos que cargarlos nuevamente)

 Sigamos con el anterior ejemplo 4 PC y un Server.

Nuestra Red es una red Clase C la mas común con IPs en el orden de 192.168.0.1/15
El servidor tendrá asignada la IP fija en una de sus placas de 192.168.0.1 (recuerden esta sera la IP que tendremos que poner como gateway en los clientes)
Los demás equipos le asignamos las IP fijas siguientes.
La otra Placa del servidor tendrá asignada una IP por el ISP X no tiene mucha relevancia.

Desde la consola y siempre como Root tecleamos:
# iptables -L
Vamos las reglas de Firewall en nuestro equipo, es muy importante que por ahora estén vacías para no generar problemas con nuestro Proxy.
Para vaciarlas usamos;
# iptables -F
Podemos consultar las reglas usando el comando anterior iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Sigamos

# iptables -t nat -F
Con esta orden lo que hacemos es vaciar las reglas de NAT. (NAT nos provee de reglas para el enmascaramiento)

#echo 1 > /proc/sys/net/ipv4/ip_forward
Activamos el soporte para el Forward en nuestro server.

#iptables -t nat -A PREROUTING -s 192.168.0.1/24 -d 0.0.0.0/0 -j ACCEPT
Con esta regla definimos que en Nat toda nuestra red 192.168.0.1 podrá salir sin problemas Aceptando los paquetes de cualquier equipo dentro de este tipo de Red Clase C. (255.255.255.0) Podemos cambiar sin problemas los valores por los de nuestra red.
(#iptables -t nat -A PREROUTING -s 10.0.0.1/24 -d 0.0.0.0/0 -j ACCEPT otro ejemplo para una red compuesta por 10.0.0.1/15)

#iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE
Con esta regla decimos que todo lo que salga de nuestra red sera enmascarado vía Nat.

Ahora podemos teclear todas las reglas juntas una tras otra:
# iptables -t nat -F
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A PREROUTING -s 192.168.0.1/24 -d 0.0.0.0/0 -j ACCEPT
# iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE

Listo ya nuestro server esta preparado para realizar la tarea de ser proxy.
Podemos certificarlo de la siguiente manera:

# iptables -t nat -L
Donde veremos claramente las reglas de Forward y Masquerade;

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  –  192.168.0.0/24       anywhere

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  –  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Configuración en los Clientes (Linux).
Esta se realiza partiendo desde la base que los mismos tiene configurados las IP de forma dinámica o estática y cargando en el archivo
/etc/resolv los valores de los DNS provistos por nuestro proveedor de Internet de la siguiente manera.

# mcedit /etc/resolv.conf

nameserver  200.xxx.xxx.xxx
nameserver  200.xxx.xxx.xxx

Y luego cargado desde la misma consola

route add default gw [IP_DEL_SERVIDOR]
De esta forma definimos el gateway de nuestra red que sin palabras raras es nuestro servidor Proxy. (IP del servidor Proxy)

Automatizando la Carga del Proxy.
Antes aclaramos que cuando nuestro Server si reinicia se borran todas las reglas cargadas en forma manual, esto lo podemos solucionar de forma muy simple haciendo uso de un archivo llamado rc.local, rc.boot, boot.local. (depende de la distribución instalada en nuestro Server)

Lo que tendremos que hacer es muy simple añadir las lineas a este archivo para que cuando el sistema inicie las cargué en forma automática vamos a ver como:  (ejemplo de Una Distribución Mandriva 2008 con su archivo rc.local)

# /etc/rc.d/rc.local
# mcedit /etc/rc.d/rc.local

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.

iptables -t nat -F
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -s 192.168.0.1/24 -d 0.0.0.0/0 -j ACCEPT
iptables -t nat -A POSTROUTING -d 0.0.0.0/0 -j MASQUERADE

touch /var/lock/subsys/local

Guardamos los cambios y de esa forma tenemos listo nuestro servidor.

FINALIZANDO Y PROBANDO.
Nos resta solo probar que podemos acceder a un sitio web de la siguiente manera:
[ariel@server ariel]$ ping infosertec.com.ar
PING infosertec.com.ar (200.58.112.83) 56(84) bytes of data.
64 bytes from 200.58.112.83: icmp_seq=1 ttl=56 time=49.1 ms
64 bytes from 200.58.112.83: icmp_seq=2 ttl=56 time=44.9 ms
64 bytes from 200.58.112.83: icmp_seq=3 ttl=56 time=178 ms

Si de nuestros clientes podemos hacer un Ping a cualquier dirección de Internet podemos dar por sentado que nuestro servidor Proxy funciona en forma Correcta.


CONCLUSIÓN
. De esta forma podemos configurar un proxy de una manera simple haciendo uso de NAT, pero recuerden que no tendremos control alguno sobre la conexión a Internet y que además todos nuestros equipos de la red tendrán acceso a Internet con sus respectivos servicios.
Por eso como ultima recomendación puedo decirles que configuren a Iptables para que filtre y proteja de alguna manera nuestros equipos.
Mas adelante explicare como hacerlo de forma simple.

AHORA ESPERO OPINIONES, CRITICAS, EXPERIENCIAS Y PORQUE NO TEMAS QUE QUISIERAN QUE TRATE.

Ariel M. Corgatelli

4 Responses to “Compartir una misma Conexión a Internet”

  1. Podes tratar el tema de un fileserver (samba).

  2. Muy bueno el tuto :D

  3. interesante pana pero como hago este mismo procedimiento en windows ya que poseo dos pc y una dir ip que me da el proveedor de servicios de internet

  4. Hola, me gusta mucho la información que ofrece en su página. Deseo pedirle un favor, y es que me ayude a instalar samba client y servi en mi maquina, tengo mandriva 2008.1, pero siempre que intento bajar el programa por los mecanismos que el sistema me ofrece, me indica que hubo un error 127 y que falló la instalación. Que otra opción puedo seguir para instalar el programa que me permite conexión con equipos con windows xp, impresora, etc.

    De ante mano, Gracias

    Jaime López

Discussion Area - Leave a Comment