Feb 14, 2010

Arquitectura de seguridad local

Una vez analizados los principales rasgos de una arquitectura de seguridad perimetral, vamos a abordar las líneas maestras que debería seguir cualquier arquitectura de seguridad local.

En primer lugar vamos a tratar el tema de los servidores; es conveniente tener actualizados los servidores, no sólo a nivel de parches de seguridad, sino también a medida que van surgiendo nuevas actualizaciones de software, ya que de esta forma tendremos acceso a nuevas funcionalidades así como a mejoras en su rendimiento.

En entornos de producción es recomendable aplicar únicamente los parches de seguridad y de corrección de errores en el código (yum update en sistemas RHEL/Cent0S), y posponer las actualizaciones de versión a migraciones globales y planificadas de todos los sistemas.

Si se emplean versiones muy antiguas de los sistemas operativos, puede darse incluso la situación de que nos quedemos sin soporte alguno. Además es conveniente no utilizar ditintas clases de distribuciones y unificar todos los servidores en base a una única distribución, ya que esto facilitará las tareas de futuros administradores de la red.

A día de hoy, mi opinión personal es emplear la versión CentOS 5.4, ya que se trata de una distribución que a nivel binario es un clon de Red Hat Enterprise Linux, uno de los sistemas más estables y utilizados a nivel empresarial.

Con respecto a la seguridad de los servidores Linux, se debe de aprovechar todas las ventajas que ofrece este tipo de sistema operativo: NetFilter, SELinux context, TCP wrappers, Application control y SELinux boolean.

También es conveniente siempre que se pueda, paravirtualizar los distintos servicios a través de las diferentes tecnologías proporcionadas por VMware o Xen.

En la siguiente figura se muestra un ejemplo de paravirtualización de una máquina que realiza labores de FTP, DNS y SMTP. En dicha imagen puede observarse que se dispone de una única máquina física en la cual se encuentran levantados los tres servicios mencionados. Con el proceso de paravirtualización se crearían tres máquinas virtuales independientes en donde cada una de ellas albergaría un único servicio.


La paravirtualización es una generación de tecnología de virtualización que emplea un sistema más moderno y eficaz en la gestión de los recursos hardware. El sistema operativo virtualizado sabe que se ejecuta en un entorno virtualizado y se adapta a ello para aprovechar ese contexto. De esta forma se consigue que ciertas llamadas privilegiadas no tengan que pasar por la capa de virtualización. Con la paravirtualización se obtienen unas pérdidas de rendimiento de entorno a un 5%, en comparación a si se instalara un sistema operativo sin virtualizar directamente en el mismo hardware.

A continuación se exponen las principales ventajas que se consiguen con la virtualización:
  • Si alguno de los servidores es atacado y se consigue acceder al control de la máquina donde reside el servicio, el resto de servicios de la red permanecerán protegidos al estar emplazados en máquinas virtuales independientes.

  • Se puede establecer de una forma más sencilla y práctica, un sistema de Alta Disponibilidad que permita mantener la continuidad del servicio en situación de caída.

  • En caso de tener que restaurar un determinado servidor, al tenerlo virtualizado el proceso de restauración sería mucho más rápido y sencillo.

Una de las tareas más importantes a realizar por parte de cualquier administrador con el objetivo de securizar correctamente sus sistemas, es la de segmentar correctamente las distintas subredes. Es importante distinguir o delimitar las zonas de una red; de este modo se pueden aplicar diferentes directivas de seguridad que aíslen a las máquinas ante posibles ataques o infecciones.

En caso de que sea necesario configurar algún tipo de red privada virtual, se recomienda encarecidamente no utilizar PPTP. Este protocolo ha quedado obsoleto debido a sus numerosos fallos de seguridad; se recomienda la utilización del protocolo SSL a través de la aplicación OpenVPN. Además todo el tráfico que circule por las VPNs y que llegue a las redes internas, debe de pasar siempre por algún sistema de tipo All-In-One, con el objetivo de que sea previamente analizado.

Las VPNs que se utilicen nunca deben de establecerse a través de una clave compartida. Esta clase de autenticación corre el riesgo de ser rota mediante un ataque de fuerza bruta (debido a la longitud de las contraseñas). Por ello se propone también la implantación de una Autoridad de Certificación, encargada de emitir y administrar los certificados digitales empleados posteriormente para establecer los túneles privados. Los certificados digitales permiten recurrir claves de hasta 2048 bits.

También es recomendable instalar un servidor de monitorización (Zabbix) que se encargue de controlar en todo momento el estado de los servidores, tanto a nivel hardware (niveles de carga de CPU, memoria, disco, etc.) como a nivel software (estado de los distintos servicios, consumo de memoria, etc.).

Además también sería interesante el hecho de poder configurar un servidor de logs remoto, el cual recoja y almacene los logs de todos los servidores, con el objetivo de salvaguardar los eventos acaecidos ante un hipotético ataque.

Por último, decir que sería muy conveniente realizar auditorias periódicas de seguridad (Nessus Vulnerability Scanner) a los distintos sistemas que conforman nuestra infraestructura, ya que aunque una de las tareas de los administradores sea la de permanecer alerta ante cualquier tipo de vulnerabilidad publicada, siempre puede ocurrir que alguna de ellas sea pasada por alto.

No comments:

Post a Comment