Sunteți pe pagina 1din 20

Configuracin de un gateway en Linux mediante IP Masquerading

Daniel Fernndez Garrido

ndice de contenidos

1. 2. 3. 4. 5. 6. 7. 8. 9.

Qu es un gateway? Configuracin tpica de un gateway en una LAN Gateway frente a Proxy Configuracin, paso 1 de 3: Habilitar el forwarding Configuracin, paso 2 de 3: Configurar el forwarding Configuracin, paso 3 de 3: Asegurar el gateway Configuracin de un cliente Linux para trabajar con nuestro gateway Configuracin de un cliente Windows para trabajar con nuestro gateway Prueba de funcionamiento

1. Qu es un gateway?
Un gateway o puerta de enlace es normalmente un equipo informtico configurado para dotar a las mquinas de una red local (LAN) conectadas a l de un acceso hacia una red exterior, generalmente realizando para ello operaciones de traduccin de direcciones IP (NAT: Network Address Translation). Esta capacidad de traduccin de direcciones permite aplicar una tcnica llamada IP Masquerading, usada muy a menudo para dar acceso a Internet a los equipos de una LAN compartiendo una nica conexin a Internet, y por tanto, una nica direccin IP externa.

2. Configuracin tpica de un gateway en una LAN


Poniendo un ejemplo que pueda resultar ms o menos tpico, en una pequea LAN donde tengamos tres estaciones de trabajo, cada una de ellas configurada con su direccin IP interna (no vlida en internet) del estilo 192.168.x.x, podramos tener un equipo con dos interfaces (uno para la red interna con una direccin del estilo 192.168.x.x y otro (por ejemplo, un mdem) con una direccin vlida en Internet) y conseguir que todos los equipos de esa LAN con direcciones IP privadas pudiesen conectarse a Internet usando la IP vlida del equipo que funcionara como gateway. Podemos ver este ejemplo plasmado en la siguiente figura:

Esta tcnica se denomina IP Masquerading (Enmascaramiento de IPs). Su funcionamiento bsico, simplificado, podemos verlo en el siguiente diagrama, en el que se ejemplifica una transmisin desde A (una mquina de la red privada) hacia Z (una mquina en Internet), siendo G el gateway de la red:

3. Gateway frente a Proxy


Hasta ahora hemos visto la funcionalidad de un gateway y la utilidad que nos puede dar como punto de acceso a una red externa como Internet. Sin embargo, muy a menudo habremos odo hablar de otro tipo de software que aparentemente nos ofrece la misma funcionalidad: los proxies. Resulta importante aclarar que gateway y proxy no son lo mismo. Sin entrar en disquisiciones tcnicas complicadas, podramos esquematizas las diferencias ms importantes de la siguientes manera:

C a r a c t e r

P R O X Y

G A T E W A Y

s t i c a P e t i c i o n e s h a c i a e l e x t e r i o r L o s c l i e n t e s r e a l i z a n l a s p e t i c i o n e s d e c o n e x i n c o n l a r L o s c l i e n t e s r e a l i z a n l a s p e t i c i o n e s d i r e c t a m e n t e a l e x t

e d e x t e r n a a l p r o x y ( t a n t o a n i v e l d e r e d

e r i o r a n i v e l t r a n s p o r t e , p e r o a n i v e l d e r e d

c o m s o e d e t r a n s p o r t e ) .

l a s e n t r e g a a l g a t e

w a y ( l o u t i l i z a n c o m o s a l t o e n l a t r a n s m i s i n ) . P r o t o c o l o s E l p r o x y d e b e A l g a t e w a y n o l

e e n t e n d e r e l p r o t o c o l o d e n i v e l d e a p l i c a c i n a l q u e p e r t e n e c e i n t e r e s a e l p r o t o c o l o a l q u e p e r t e n e c e n l a s p e t i c i o n e s , n i i n t e n t a

n l a s p e t i c i o n e s ( p . e j : H T T P ) y p u e d e h a c e r c a c h d e l o s r e s u l

i n t e r p r e t a r l a s . S i m p l e m e n t e l a s r e e n v a h a c i a s u d e s t i n o .

t a d o s o b t e n i d o s p a r a c a d a p e t i c i n ( h a c i e n d o l a n a v e g a c i n m s

r p i d a ) . S e g u r i d a d E l p r o x y p e r m i t e u n m a y o r n i v e l d e s e g u r i d a d , y a q u e a E l g a t e w a y o f r e c e u n m e n o r n i v e l d e s e g u r i d a d , y a q u e e l a i

s l a

s l a m i m e n s t o e f e i n c t i r e e n t r e e m d e e n s t e n o ( h e a s s t t a a n e l g r n a i n v d e e l , y d e r e a s p u l l i t c a a c a i c o n n ) s e l j a a b r l e e d a i c n o t m

e r n a d e l a e x t e r n a .

p a a r l o d e u n f i r e w a l l c o r r e c t a m e n t e c o n f i g u r a d o p a r a e v i t a r p r o b l e

m a s d e s e g u r i d a d .

Funcionalemente, la ms directa diferencia entre proxy y gateway viene dada por lo que se puede ver en la caracterstica protocolos de la tabla: el hecho de que el proxy necesite entender el protocolo de nivel de aplicacin de las peticiones que pasen por l provoca que necesitemos obligatoriamente tener un proxy preparado para todos los protocolos que deseemos usar desde nuestros equipos de la red interna. Desgraciadamente, la gran parte de los proxies disponibles hoy en da se centran en realizar cach de peticiones HTTP y HTTPS (as como las de resolucin de nombres DNS). Con uno de estos proxies, no podremos usar desde nuestros clientes, por ejemplo, un lector de correo estilo Outlook, Eudora o Evolution (ya que usan los protocolos SMTP y POP3) para leer nuestro correo. Sin embargo, s podremos hacer esto con un gateway (aunque puedan existir ciertos protocolos que necesiten mdulos especiales para trabajar a travs de un gateway, por ejemplo los que usan cierto juegos).

4. Configuracin, paso 1 de 3: Habilitar el forwarding


El primer paso para configurar nuestro equipo Linux como gateway es habilitar la capacidad de forwarding (reenvo) de paquetes TCP/IP en la configuracin de red de nuestro equipo. Para hacer esto, tendremos que darle el valor 1 a la variable del sistema net.ipv4.ip_forward, aadiendo (o modificando, si ya existe) una lnea como la siguiente en nuestro fichero /etc/sysctl.conf:

ne t.i pv 4.i p_f or wa rd = 1


Tras lo cual tendremos que volver a inicializar la configuracin de red de nuestro equipo, ejecutando el script de arranque adecuado en /etc/init.d. Por ejemplo, en Red Hat Linux haramos:

ser vic e ne tw or k res tar t


Podremos comprobar que el forwarding est activado con:

$ cat /pr oc/ sy s/n et/ ipv 4/i p_f or wa rd


Si el contenido de este fichero virtual es 1, el forwarding est activado.

5. Configuracin, paso 2 de 3: Configurar el forwarding


Una vez que hemos habilitado en nuestro equipo la caracterstica de forwarding, debemos configurar nuestro sistema de filtrado de red (Netfilter) para que lo realice de manera efectiva. Haremos esto mediante la herramienta iptables (para ms informacin sobre cmo usar y configurar iptables, ver Configuracin de un firewall en Linux con iptables), modificando el chain POSTROUTING de la tabla nat con la siguiente orden:

$/ sbi n/i pt abl es -t na t -A PO ST RO UT IN G -o [IN

TE RF AZ _IN TE RN ET ] -j MA SQ UE RA DE
Donde [INTERFAZ_INTERNET] podra ser ppp0 si nos conectamos a travs de un mdem telefnico, eth1 si lo hacemos por el segundo interfaz ethernet... Esta regla indica a NetFilter que debe hacer IP Masquerading con los paquetes de los que haga forward hacia internet, esto es, que realice sobre ellos los cambios de IP adecuados.

6. Configuracin, paso 3 de 3: Asegurar el gateway


Para que la configuracin de forwarding que acabamos de realizar no se convierta en un potencial agujero de seguridad para nuestra mquina, resulta conveniente asegurar mediante reglas de nuestro firewall dicho forwarding. Usando iptables para ello, como hicimos en el apartado anterior, para tener un nivel de seguridad mnimo sera suficiente con evitar que se puedan realizar conexiones desde el exterior a travs de nuestro sistema de reenvo. Podramos usar para esto las siguientes rdenes:

$/ sbi n/i pt abl es -A FO R W AR D -i pp p0 -o et h0 -m sta te --s tat e ES TA BLI SH ED

,R EL AT ED -j AC CE PT $/ sbi n/i pt abl es -A FO R W AR D -i et h0 -o pp p0 -j AC CE PT $/ sbi n/i pt abl es -A FO R W AR D -j DR OP


Siendo en este caso ppp0 nuestro interfaz de salida a Internet y eth0 nuestro interfaz ethernet de la red interna. Es aconsejable leer la documentacin de iptables previamente a la realizacin de este paso.

7. Configuracin de un cliente Linux para trabajar con nuestro gateway


Para que una mquina de nuestra red interna, usando Linux, pueda conectarse al exterior mediante el gateway que acabamos de preparar, tendremos que configurar nuestro interfaz de red para que reconozca la direccin IP interna de nuestro gateway (en el ejemplo ser 192.168.0.10) como puerta de enlace por defecto.

El lugar o fichero donde configurar esto difiere segn la distribucin Linux que estemos usando. En muchas distribuciones existen herramientas grficas de administracin para llevar a cabo estas tareas, y en otras tendremos que realizar dicho cambio en un fichero de configuracin. Como ejemplo, veamos los pasos a dar en dos distribuciones: Red Hat y Debian. Red Hat En Red Hat, podremos configurar la puerta de enlace de nuestro interfaz de red de tres maneras: La primera sera aadiendo las siguientes lnea al fichero /etc/sysconfig/network:

GA TE W AY =' 19 2. 16 8. 0. 10' GA TE W AY DE V= 'et h0'


Una vez hecho esto, ser necesario reiniciar los servicios de red como ya se ha explicado anteriormente (service network restart). Hay que tener en cuenta que entre las ltimas versiones de Red Hat (7.2, 7.3 y 8.0) se han producido cambios en la estructura de los ficheros de configuracin de red, de modo que si esto no funciona es preferible buscar en el manual del sistema la forma que tiene nuestra versin concreta de Red Hat de configurar esto. La segunda manera sera usar el apartado Network Configuration de la herramienta de administracin en modo texto de Red Hat en /usr/sbin/setup. Y por ltimo tambin podremos usar, ahorrndonos problemas, la herramienta grfica neat (que aparece en el men Sistema como Network Configuration), mucho ms cmoda. En ella, pulsaremos Modificar sobre nuestro interfaz de red interna (normalmente eth0) e introduciremos la direccin IP del gateway como Direccin de la Puerta de enlace predeterminada, como se puede ver a continuacin:

Debian Para configurar la puerta de enlace por defecto en Debian, tendremos que acudir al fichero /etc/network/interfaces, donde cada interfaz de red tiene una entrada con varios parmetros

de configuracin, y aadir el parmetro gateway de manera que la entrada de nuestro interfaz de red interna podra quedar algo similar a:

ifa ce et h0 ine t sta tic dd res s 19 2. 16 8. 0. 16 et m as k 25 5. 25 5. 25 5. 0 et wo rk 19 2. 16 8. 0. 0 ro ad ca st 19 2. 16 8. 0. 25 5 at ew ay 19

2. 16 8. 0. 10
Y despus reiniciar los servicios de red con el script de /etc/init.d adecuado.

8. Configuracin de un cliente Windows para trabajar con nuestro gateway


Si el equipo de la red interna que deseamos que tenga acceso a Internet usa Windows, tendremos que configurar nuestro interfaz de red para que conozca la direccin IP de nuestro gateway como puerta de enlace predeterminada. Esta operacin depender un poco de la versin de Windows que usemos. Veamos cmo hacerlo para Windows 9x/Me y para Windows XP: Windows 9x/ME Para establecer la puerta de enlace por defecto en Windows 9x o Millenium, debemos dirigirnos a Panel de Control -> Red y pulsar Propiedades seleccionando el interfaz TCP/IP correspondiente a nuestra tarjeta de red. Una vez obtengamos la ventana de propiedades, pulsaremos sobre la lengeta Puerta de Enlace y aadiremos la direccin IP de nuestro gateway:

Windows XP En Windows XP, esta operacin es ligeramente diferente. Para configurar la puerta de enlace, debemos dirigirnos a Panel de Control -> Conexiones de Red y hacer click con el botn derecho sobre la conexin de red de la LAN. Del men desplegable elegiremos Propiedades y seleccionaremos Protocolo Internet (TCP/IP), pulsando de nuevo Propiedades. En la ventana de propiedades que obtendremos, podremos introducir la direccin IP de nuestro gateway en el apartado Puerta de Enlace predeterminada:

9. Prueba de funcionamiento
Una vez relizada toda la configuracin del gateway, podremos probar su funcionamiento desde cualquiera de las mquinas de la red interna.

Sin embargo, antes de intentar navegar por Internet desde alguna de las mquinas de la LAN para comprobar si el gateway funciona, es ms aconsejable probar con un simple ping hacia una mquina cualquiera de Internet (por ejemplo, www.google.com):

$ ping [MAQUINA EXTERNA]


Si dicho ping funciona correctamente (la mquina a la que lo hacemos responde a nuestros paquetes), el gateway estar en funcionamiento. De esta manera nos ahorraremos hipotticos problemas con navegadores mal configurados, etc...

S-ar putea să vă placă și