Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En este tutorial indicare como se configura un Firewall con Shorewall con polticas DROP
en dos interfaces de red para CentOS y para Debian.
Shorewall
Shorewall (Shoreline Firewall) es una robusta y extensible herramienta de alto nivel
para la configuracin de muros cortafuego. Shorewall solo necesita se le proporcionen
algunos datos en algunos ficheros de texto simple y ste crear las reglas de
cortafuegos correspondientes a travs de iptables. Shorewall puede permitir utilizar un
sistema como muro cortafuegos dedicado, sistema de mltiples funciones como puerta de
enlace, dispositivo de encaminamiento y servidor. Shorewall no solo le permite
configurar un firewall seguro, poderoso y robusto, tambin se puede lograr con este el
control del AB (Ancho de Banda) ya que maneja el Traffic Shaping/QOS, Tambin podemos
configurar en Shorewall algunas cosas como Dom0, Xen - Shorewall in Routed Xen, Xen -
Shorewall in a Bridged Xen DomU, VNP, IPP2P, Macros, MAC Verification, Mltiples
conexiones de Intener o MultiISP y ms.
A pesar de ser tan potente y flexible, Shorewall puede llegar a ser una herramienta
demasiado complicada para el uso cotidiano del usuario principiante y que no tenga
conocimientos sobre este, adems para muchos usuarios, Shorewall puede parecer una
herramienta muy fcil de configurar, pero cabe recalcar que una ves dominada se puede
lograr tener un firewall muy potente y seguro para servidores en produccin.
Hay muchas herramientas para crear un Firewall bsico, y algunas de estas son para el
entorno grfico o X, no se recomienda utilizar estas ya que consumen muchos recursos y
lo que a muchos nos interesa es evitar esto.
Qu es un NAT?
NAT (acrnimo de Network Address Translation o Traduccin de Direccin de Red), tambin
conocido como enmascaramiento de IP, es una tcnica mediante la cual las direcciones de
origen y/o destino de paquetes IP son reescritas mientras pasan a travs de un
dispositivo de encaminamiento (router) o muro cortafuegos. El NAT es un sistema que se
utiliza para asignar una red completa (o varias redes) a una sola direccin IP.
Cmo Funciona el NAT
Cuando un cliente en la red interna contacta con una mquina en Internet, enva paquetes
IP destinados a esa mquina. Estos paquetes contienen toda la informacin de
direccionamiento necesaria para que puedan ser llevados a su destino. NAT se encarga de
estas piezas de informacin:
Cuando los paquetes pasan a travs de la pasarela de NAT, son modificados para que
parezca que se han originado y provienen de la misma pasarela de NAT. La pasarela de NAT
registra los cambios que realiza en su tabla de estado, para as poder: a) invertir los
cambios en los paquetes devueltos, y b) asegurarse de que los paquetes devueltos pasen a
travs del cortafuegos y no sean bloqueados. Por ejemplo, podran ocurrir los siguientes
cambios:
Que es DNAT?
DNAT son las siglas de Destination Network Address Translation o Traduccin de direccin
de red de destino, el DNAT nos permite redirigir puertos hacia mquinas que se
encuentran en una red interna o Red Privada.
Procedemos a descargar Shorewall 3.4.6-2.noarch.rpm en formato RPM para CentOS 5 desde
la pgina oficial desde la seccin de descargas en http://www.shorewall.net tambin
directamente en http://www.invoca.ch
Para Debian simplemente lo podemos instalar con aptitude install shorewall el cual se
instalar la versin 3.2.6-2.
cp /usr/share/doc/shorewall/default-config /etc/shorewall
startup=1
Hay que tener en cuenta que los ficheros que vamos a configurar se encuentran en el
directorio "/etc/shorewall", los ficheros que vamos a configurar a continuacin son:
zones, interfaces, policy, rules, routestopped
STARTUP_ENABLED=Yes
De esta manera cuando queramos iniciar Shorewall con "shorewall start" o reiniciar con
"shorewall restart", no nos dar problemas.
Otro parmetro que hay que tener en cuenta CLAMPMSS, ya que si contamos con un enlace
tipo PPP debemos cambiar el No por Yes, se utiliza en conexiones tipo PPP (PPTP o PPPoE)
y sirve para limitar el MSS (acrnimo de Maximum Segment Size que significa Mximo
Tamao de Segmento).
CLAMPMSS=Yes
zones
En el fichero zones se definen las zonas que se administraran del firewall. La zona fw
est definida en zones, por lo tanto ya no tendremos que ponerla ni borrarla, ahora
procedemos a registrar las zonas de Internet (net) y Red Local (loc):
interfaces
En este fichero se establecen las interfaces de las zonas a ser tomadas en cuenta por el
firewall. Se establecen las interfaces que corresponden a la de Internet y Red Local. En
el siguiente ejemplo, se cuenta con una interfaz eth1 para acceder hacia Internet, y una
interfaz eth0 para acceder hacia la LAN y en todas se solicita se calcule
automticamente la direccin de transmisin (Broadcast), adems se identifican ciertas
propiedades respecto de la interpretacin de los paquetes que ingresan o salen por esa
interfaz:
Ntese que en la interfaz de Internet (net) "eth1" se adhiere "blacklist", con esto
tendremos la opcin de que si en algn momento observamos en los registros de nuestros
logs del sistema que alguna ip est intentando ingresar sin nuestro permiso a nuestro
servidor lo podemos bloquear por completo editando en el fichero
"/etc/shorewall/blacklist" la ip correspondiente de dicho intruso, tambin si acaso
hubiera un servicio de DHCP, sea como cliente, como servidor o como intermediario, en
alguna de las interfaces, se debe aadir la opcin dhcp para permitir la comunicacin
requerida para este servicio, en el ejemplo dado opera un servidor DHCP, el cual es
utilizado en la red de rea local para asignar direcciones IP a los equipos de la LAN,
en lo anterior se debe activar la opcin DHCP para la interfaz eth0, que corresponde a
la zona utilizada por el rea local, en caso de que el anfitrin donde opera el muro
cortafuegos obtiene su direccin IP, para la interfaz eth1, a travs del servicio DHCP
del ISP, ser necesario interpretarlo como el caso de la Red Local.
policy
En este fichero se establecen las polticas por defecto para paquetes que viajan entre
una zona hacia otra:
fw net ACCEPT
Si se desea dar una salida a los equipos de la LAN sin restriccn de puertos hacia el
mundo o Internet simplemente ponemos esta regla:
De este modo no especificamos ningn puerto, simplemente los equipos navegaran y podran
salir a cualquier lado, caso contrario que no se desee esta poltica se podr configurar
como est en el ejemplo dado ms abajo en el fichero "rules".
Segn los requerimientos del usuario tambin podran utilizar otras como:
masq
Este fichero se lo utiliza para definir enmascaramiento (masquerading) o NAT, esto es
til cuando tenemos una red privada con la cual queremos navegar a travs de un Proxy.
En el siguiente ejemplo aplicaremos enmascaramiento para la interfaz eth0 (Red Lan) la
cual sale por medio de la interfaz eth1 que es nuestra IP Pblica:
routestopped
En este fichero podemos definir que direcciones IP o redes podrn continuar accediendo
cuando el cortafuegos es detenido o cuando este se encuentra en proceso de reinicio.
Ser necesario definir nuestras interfaces de red o IP que deseamos que contine la
comunicacin, podemos definir en formato separado por comas indicando la red o ip:
Otro ejemplo:
rules
Este es el fichero de configuracin ms importante de Shorewall, ya que aqu se definen
las reglas que permitirn o denegarn el acceso a servicios y puertos desde y hacia
zonas o el firewall. Tambin se puede definir las reglas DNAT y registro de ciertos
paquetes. Antes de configurarlo hay que tener en cuenta que las polticas por defecto
son DROP, por lo tanto nada pasa a ningn lugar, no se podr navegar ni siquiera el
mismo fw, por lo tanto tenemos que ir a abriendo y permitiendo el acceso a varios
puertos segn como sean los requerimientos.
En Shorewall no solo se puede configurar con las numeraciones de los puertos, Shorewall
nos permite tambin configurar los puertos segn sea su nombre o servicio que ofrece
(DNS, FTP, POP3, MySQL, SSH, VNC, Whois, Emule, BitTorrent, etc), dada esta facilidad en
Shorewall podemos incluir y agregar de esta forma:
DNS/ACCEPT loc fw
Lo que se estara haciendo con esta regla, es permitiendo que la red local haga
consultas de DNS al fw, ntese que se a incluido DNS en ves de los puertos por su
numeracin 53, con esta regla se abrir tanto en tcp como en udp por que con esta
simple regla nos bastara para que se abra el puerto DNS.
Si quisiramos permitir las consultas de DNS desde el Internet (net) hacia el Firewall
(fw), lo tendramos que hacer as:
DNS/ACCEPT net fw
Tambin podemos definir una regla para que no tenga lmites de puertos:
Con esta regla lo que hemos hecho es que el Firewall (fw) tenga acceso hacia el Internet
(net) sin restriccin alguna.
Ahora aceptamos que nuestra red local (loc) se pueda conectar al Internet (net), aqu
podemos definir si queremos los mismos puertos que el fw, ya que para mayor seguridad no
le ponemos que todas puedan salir a puertos como el 22, 5800, 5900, 1-1023, ya que son
puertos de riesgos, y para evitarnos problemas con los usuarios a que estn haciendo
cosas sin control en la red preferible descomentamos estos:
Ntese que de igual manera a la red local (loc) le permito hacer peticiones al Puerto 53
hacia el Internet, recuerden que es recomendable configurar un DNS cache para nuestra
red local en nuestro servidor, pero al mismo tiempo los ISP nos dan otros DNS de gran
ayuda para que podamos navegar, estos DNS hay que ponerlos en nuestro servidor y uno de
los DNS del ISP en los equipos clientes, de esta forma si nuestro DNS local no puede
resolver un dominio pasar a utilizar el DNS secundario que le hemos asignado.
Procedemos a permitir la conexin de los equipos de la red local a limitados puertos del
fw, si hemos configurado un DNS cache para nuestra red local (loc) y un Proxy para
navegacin por medio de este procedemos a abrir solo los puertos necesarios, ya que no
permitiremos a todos los equipos la conexin por medio de VNC al servidor, ni por SSH a
menos que quieran los administradores de red permitir estos u otros accesos al servidor:
Permitimos que una sola mquina ingrese a nuestro servidor sin lmite alguno, esta
mquina o ip sera la del administrador de la red:
Con este ejemplo tambin lo podemos definir desde la zona de Internet (net) al Firewall
(fw) para permitir el acceso a una ip fuera de nuestra red, la cual puede ser de algn
amigo, administrador, etc.
Tambin podemos definir que solo se conecte desde el exterior a limitado nmeros de
puertos:
REDIRECT
El REDIRECT permite redirigir peticiones hacia un puerto en particular. Muy til cuando
se quieren redirigir peticiones para HTTP (puerto 80) y se quiere que estas pasen a
travs de un Servidor Intermediario (Proxy) como Squid. Las peticiones hechas desde la
red local sern redirigidas hacia el puerto 8080 del cortafuegos, en donde hay un
Servidor Intermediario (Proxy) configurado en modo transparente:
Podemos tambin limitar las peticiones hechas desde la red local (LAN) al puerto 3128
del Proxy, limitando la taza de conexiones a veinte por segundo con rfagas de hasta
cinco conexiones. Esto es muy til para evitar ataques de DoS (acrnimo de Denial of
Service que se traduce como Denegacin de Servicio) desde la red local (LAN).
DNAT
El DNAT se utiliza para reenviar peticiones desde un puerto del cortafuegos hacia una IP
y puerto en particular tanto en la red local como en la DMZ. Cabe destacar que para que
el DNAT funcion se necesita que:
Si tenemos un servidor DNS (53), HTTP (80) dentro de nuestra red local y queremos
permitir accesos a este, reenviamos con el DNAT editando las siguientes reglas:
Si tenemos dos servidores de correo, uno que recibe la mensajera (como pasarela) y otro
que enva y este necesita conectarse al servidor principal (pasarela) para poder enviar
los correos, para poder permitir esto solo tenemos que abrir los puertos necesarios:
Ping/ACCEPT fw loc
Ping/ACCEPT fw net
Trcrt/ACCEPT fw net
En el siguiente ejemplo permitimos a una mquina de la red local hacer Ping y Traceroute
hacia la zona de Internet:
Si deseamos podemos permitir a toda la red local hacer Ping y Traceroute hacia la zona
de Internet:
Ping/ACCEPT net fw
En este ejemplo se hace DNAT desde la zona de la Internet para los servicios de HTTP
(puerto 80), SMTP (puerto 25), POP3 (puerto 110) y DNS (puerto 53) hacia diversos
servidores localizados en Loc:
En el siguiente ejemplo se hace DNAT desde la zona de Internet para los servicios de
HTTP (puerto 80), SMTP (puerto 25), POP3 (puerto 110) y DNS (puerto 53) hacia diversos
servidores localizados en Loc y limitar la taza de conexiones a diez por segundo con
rfagas de hasta cinco conexiones para cada servicio:
DROP net:192.168.0.0/16 fw
DROP net:10.0.0.0/8 fw
DROP net:172.16.0.0/12 fw
DROP net:224.0.0.0/4 fw
DROP net:240.0.0.0/5 fw
DROP net:127.0.0.0/8 fw
DROP net:0.0.0.0/8 fw
DROP net:169.254.0.0/16 fw
DROP net:255.255.255.255 fw
Con esto bloqueamos totalmente a estas ips, sin permitirles ningn tipo de accin en
nuestro equipo.
Otros Ejemplos:
FTP/ACCEPT net fw
MySQL/ACCEPT loc fw
MySQL/ACCEPT loc net
SSH/ACCEPT loc:172.16.0.5 fw
HTTP/ACCEPT net fw
Edonkey/DNAT net loc:172.16.0.3
Si queremos permitir paquetes icmp con limitaciones para evitar ataques DoS, lo
podemos hacer del siguiente modo: