Existen tres decisiones básicas en el diseño o la configuración de un
cortafuegos ([Ran95]); la primera de ellas, la más importante, hace
referencia a la política de seguridad de la organización propietaria del
firewall: evidentemente, la configuración y el nivel de seguridad
potencial será distinto en una empresa que utilice un cortafuegos para
bloquear todo el tráfico externo hacia el dominio de su propiedad (excepto,
quizás, las consultas a su página
web) frente a otra donde sólo se intente evitar que los usuarios
internos pierdan el tiempo en la red, bloqueando por ejemplo todos los servicios
de salida al exterior excepto el correo electrónico. Sobre esta decisión
influyen, aparte de motivos de seguridad, motivos administrativos de cada
organismo.
La segunda decisión de diseño a tener en cuenta es el nivel de
monitorización, redundancia y control deseado en la organización; una vez
definida la política a seguir, hay que definir cómo implementarla en el
cortafuegos indicando básicamente qué se va a permitir y qué se va a
denegar. Para esto existen dos aproximaciones generales: o bien se adopta una
postura restrictiva (denegamos todo lo que explícitamente no se permita) o
bien una permisiva (permitimos todo excepto lo explícitamente negado);
evidentemente es la primera la más recomendable de cara a la seguridad, pero
no siempre es aplicable debido a factores no técnicos sino humanos (esto
es, los usuarios y sus protestas por no poder ejecutar tal o cual aplicación
a través del firewall).
Por último, la tercera decisión a la hora de instalar un sistema de
cortafuegos es
meramente económica: en función del valor estimado de lo que deseemos
proteger, debemos gastar más o menos dinero, o no gastar nada. Un firewall puede no entrañar gastos extras para la organización, o suponer
un desembolso de varios millones de pesetas: seguramente un departamento o
laboratorio con pocos equipos en su interior puede utilizar un PC con Linux,
Solaris o FreeBSD a modo de cortafuegos, sin gastarse nada en él (excepto
unas horas de trabajo y unas tazas de café), pero esta aproximación
evidentemente no funciona cuando el sistema a proteger es una red de tamaño
considerable; en este caso se pueden utilizar sistemas
propietarios, que suelen ser caros, o aprovechar los routers de salida
de la red, algo más barato pero que requiere más tiempo de configuración
que los cortafuegos sobre Unix en PC de los que hemos hablado antes. De
cualquier forma, no es recomendable a la hora de evaluar el dinero a invertir
en el firewall fijarse sólo en el coste de su instalación y puesta
a punto, sino también en el de su mantenimiento.
Estas decisiones, aunque concernientes al diseño, eran básicamente
políticas; la primera decisión técnica a la que nos vamos a enfrentar
a la hora de instalar un cortafuegos es elemental: >dónde lo situamos para
que cumpla eficientemente su cometido? Evidentemente, si aprovechamos como
cortafuegos un equipo ya existente en la red, por ejemplo un router, no
tenemos muchas posibilidades de elección: con toda seguridad hemos de dejarlo
donde ya está; si por el contrario utilizamos una máquina Unix con un
cortafuegos implementado en ella, tenemos varias posibilidades para situarla
con respecto a la red externa y a la interna. Sin importar donde situemos al
sistema hemos de recordar siempre que los equipos que queden fuera del
cortafuegos, en la zona de riesgo, serán igual de vulnerables que antes de
instalar el firewall; por eso es posible que si por obligación hemos
tenido que instalar un cortafuegos en un punto que no protege completamente
nuestra red, pensemos en añadir cortafuegos internos dentro de la misma,
aumentando así la seguridad de las partes más importantes.
Una vez que hemos decidido dónde situar nuestro cortafuegos se debe elegir
qué elemento o elementos físicos utilizar como bastión; para tomar
esta decisión existen dos principios básicos ([CZ95]): mínima
complejidad y máxima seguridad. Cuanto más simple sea el host
bastión, cuanto menos servicios ofrezca, más fácil será su
mantenimiento y por tanto mayor su seguridad; mantener esta máquina
especialmente asegurada es algo vital para que el cortafuegos funcione
correctamente, ya que va a soportar por sí sola todos los ataques que se
efectuen contra nuestra red al ser elemento más accesible de ésta. Si la
seguridad de la máquina bastión se ve comprometida, la amenaza se traslada
inmediantamente a todos los equipos dentro del perímetro de seguridad.
Suele ser una buena opción elegir como máquina bastión un servidor
corriendo alguna versión de Unix (desde una SPARC con Solaris a un
simple PC con Linux o FreeBSD), ya que aparte de la seguridad del sistema
operativo tenemos la ventaja de que la mayor parte de aplicaciones de firewalling han sido desarrolladas y comprobadas desde hace años sobre Unix
([Rob94]).
Evidentemente, a la vez que elegimos un bastión para nuestro cortafuegos
hemos de decidir qué elemento utilizar como choke; generalmente suele
ser un router con capacidad para filtrar paquetes, aunque también puede
utilizarse un sistema Unix para realizar esta función. En el punto 15.4
se comentan diferentes arquitecturas de cortafuegos con los elementos utilizados
en cada una de ellas como chokes y como bastiones.
Ya hemos decidido qué utilizar como firewall y dónde situarlo;
una vez hecho esto hemos de implementar sobre
él los mecanismos necesarios para hacer cumplir nuestra política de
seguridad. En todo cortafuegos existen tres componentes básicos para los que
debemos implementar mecanismos ([BCOW94]): el filtrado de paquetes, el
proxy de aplicación y la monitorización y detección de actividad
sospechosa. Vamos a hablar a continuación de cada uno de estos componentes.
© 2002 Antonio Villalón Huerta