jueves, 6 de mayo de 2010

Iptables + Ipalias

GNU/Linux es sinónimo de un mundo de posibilidades y en materia de administración de sistemas y servidores la ventaja con respecto a otros sistemas es muy significativa. Las distribuciones linux nos abren a los administradores, fanáticos y geeck un mundo de posibilidades limitado -casi únicamente- por nuestras habilidades....


Iptables + Ipalias es una de esas soluciones que engrosa la lista de lo antes comentado... Por qué ? ... Pues veamos.


Ya en una entrada anterior comente sobre iptables y sus bondades (aquí el articulo) pero ahora propongo ir un poco mas allá mostrando su uso con Ipalias...


En palabras muy sencillas se puede decir que ipalias es una implementación que nos permite configurar múltiples direcciones ip para una sola interfaz, de esta manera podemos hacer una suerte de virtualización (o simulación) de contar con mas interfaces de red.


Esta es una idea útil -en redes caseras o pequeñas- para realizar la implementación de un firewall y aumentar la seguridad, incluso la podemos utilizar para levantar maquinas virtuales que se conecten a internet.


Como ????


La verdad es que es un procedimiento sencillo, lo que debemos hacer primera mente es verificar haciendo uso de un ifconfig las interfaces disponibles y su nomenclatura ante el sistema...


# ifconfig


El resultado en un entorno de trabajo normal seria semejante al que muestro a continuación:


eth0    Link encap:Ethernet  HWaddr 08:00:46:16:BA:D0
          inet addr:192.168.0.103  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:46ff:fe16:bad0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11889 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11310 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:8460330 (8.0 MiB)  TX bytes:1362059 (1.2 MiB)
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:141 errors:0 dropped:0 overruns:0 frame:0
          TX packets:141 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:13091 (12.7 KiB)  TX bytes:13091 (12.7 KiB)



Aquí podemos ver que nuestro sistema cuenta con una tarjeta de red (eth0) y el loopback (lo) configurados - Configuración que lo normal -


Habilitar el ipalias es muy sencillo basta con ir al archivo de configuración de las interfaces en nuestra distro (/etc/network/interfaces) y agregar una interfaz con la misma nomenclatura de la que tenemos pero seguida de dos puntos (:) y un identificador.... Así:


auto eth0:1


Los demás detalles de como configurar la interfaz para recibir DHCP o Ip estática los podemos encontrar aquí


Una vez configurada la segunda dirección ip para la interfaz lo que debemos hacer es habilitar el ruteo de paquetes, para ello, cambiamos el valor del archivo que confirgura esta acción en el Kernel:


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


Ya teniendo el reenvio de paquetes, lo que nos queda simplemente es indicar al kernel como debe realizar el reenvio y para esto usamos Iptables....



# iptables -t nat --flush
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE



La primera de las instrucciones hace un flush para limpiar posibles reglas anteriores de enmascaramiento .... y la segunda por su parte enmascara todos los paquetes que entren y salgan de eth0.


Listo, ahora lo que tenemos que hacer es configurar los host que queremos estén detrás del firewall, para ello podemos seguir este post.


Hay que tener ya que debemos asignar a los host tras el firewall una ip del rango de eth0:0 (interfaz virtual), además, tenemos que configurar que el gateway de estos apunte a la ip de la interfaz eth0:0

No hay comentarios: