SIGVI R2

Guía de Instalación

Índice

1. Introducción

2. Requerimientos

2.1. Plataforma

2.2. Servidor Web

2.3. Servidor de bases de datos relacionales

2.4. Intérprete de PHP5

3. Instalación

3.1. Datos de sistema

3.2. Instalación de la aplicación

3.3. Creación de la base de datos

3.4. Adaptando la aplicación a su entorno

3.5. Comprobar accesos LDAP

3.6. Configuración de los procesos batch

3.7. Accediendo por primera vez

4. Más ayuda

1. Introducción

SIGVI son las siglas de Sistema Inteligente de Gestión de Vulnerabilidades Informáticas. Es una herramienta para poder gestionar las vulnerabilidades de nuestros sistemas.

Este proyecto se desarrolla y mantiene desde UPCnet, empresa de servicios TIC del grupo UPC (Universidad Politécnica de Cataluña). También ha sido co-financiado durante el 2008 por el Ministerio de Industria, Turismo Y Comercio de España (MITYC, www.mityc.es) para la obtención de un producto precompetitivo.

El SIGVI es una aplicación Web compuesta por un conjunto de scripts programados en PHP que implementan la lógica de la aplicación y una base de datos relacional donde se guardan los datos. Algunos scripts se ejecutan como procesos batch (generalmente por la noche) para realizar las tareas que no requieren la interacción humana, como por ejemplo las cargas de vulnerabilidades desde las fuentes, el chequeo de las vulnerabilidades en nuestros sistemas, etc. El resto son los scripts que programan la propia aplicación Web.

Este documento trata de detallar cómo instalar una nueva instancia del SIGVI.

2. Requerimientos

El SIGVI R2 es una aplicación Web implementada en PHP5 y que necesita una base de datos relacional para almacenar los datos.

2.1. Plataforma

La aplicación ha sido desarrollada y testada sobre plataformas Linux. El proceso de instalación será el mismo en cualquier plataforma UNIX (salvando los directorios Web, que dependerá más del propio servidor Web). Dado que es un lenguaje interpretado también funcionará en plataformas Windows, aunque hay diferencias en la configuración de los procesos batch.

Se recomienda instalar la aplicación en una plataforma Linux.

2.2. Servidor Web

Será necesario un servidor Web que permita interpretar scripts de PHP5. Esta aplicación ha sido desarrollada y testada en un entorno Web basado en Apache Web Server, versión 2 con el módulo de PHP5 (opcionalmente con el módulo SSL).

Si su servidor Web es otro diferente, debe tener en cuenta que la aplicación se basa en un sistema de directorios. Existen directorios comunes, donde se alojan las clases, imagenes, iconos, etc. Y otros directorios que contienen la lógica propia de la aplicación.

Las referencias internas requieren tanto accesos relativos y accesos absolutos.

Ejemplo de instalación en sistemas basados en “apt”:

> apt-get install apache2-mpm-prefork libapache2-mod-php5

2.3. Servidor de bases de datos relacionales

SIGVI R2 proporciona una capa de abstracción de bases de datos, permitiéndole funcionar sobre cualquier tipo que implemente esa capa. Esta versión se provee con acceso a RDBMs MySQL, Postgres y Oracle.

Pero esto es únicamente a nivel funcional, dado que el fichero de carga inicial de la base de datos corresponde a MySQL. En futuras versiones está previsto solventar esta parte proveyendo inicialmente el código necesario para el resto de servidores soportados.

Se recomienda tener instalada tener como servidor de bases de datos MySQL Server versión 5.0 o superior. En otro caso será necesario modificar el fichero SQL de carga inicial para adaptarlo a su sistema.

Ejemplo de instalación en sistemas basados en apt:

> apt-get install mysql-server-5.0

2.4. Intérprete de PHP5

Como ya se ha indicado, la aplicación está implementada en PHP5. Cuando se habla sobre los requerimientos del servidor web, ya se ha explicado que deberá ser capaz de interpretar scripts PHP5.

Pero además es necesario disponer de varios módulos de PHP5:

3. Instalación

El SIGVI R2 se distribuye en un paquete comprimido con los comandos tar y gzip. Éste contiene:

Primero deberá extraer el contenido del paquete:

> tar xzvf sigvi-xxxx.tgz

3.1. Datos de sistema

Para explicar la instalación tomaremos como ejemplo un entorno concreto con la siguiente configuración:

Descripción del software:

Descripción del entorno:

Deberá adaptar las referencias a los de su sistema.

3.2. Instalación de la aplicación

Dentro del paquete existe un directorio llamado “sigvi” que contiene la aplicación. Deberemos mover ese directorio dentro del árbol de directorios de nuestro servidor Web (en algunas versiones se llama htdocs):

# mv sigvi /var/www/sigvi

Luego tendremos que modificar los permisos de éste directorio para que el usuario con el que se ejecuta Apache pueda acceder a los scripts a través de los directorios. En las últimas versiones de Apache éste usuario se llama “www-data”, pero puede consultarlo mirando el propietario de los procesos, por ejemplo “apache” que puede visualizar con el comando “ps -efa”

# chown -R www-data:www-data /var/www/sigvi

# chmod -R 750 /var/www/sigvi

A partir de este momento el servidor Web ya tendrá acceso a la aplicación, aunque aún no funcionará dado que falta por completar el resto de la instalación.

3.3. Creación de la base de datos

Como ya se ha comentado, SIGVI R2 provee una capa de abstracción de base de datos que le permitiría trabajar con cualquier tipo de RDBMS. No obstante el fichero SQL mediante el cual se genera la base de datos y se inicializa pertenece a MySQL.

Para crear la base de datos necesitaremos usar un usuario de MySQL con privilegios de creación, que en este caso es root.

Para realizar la carga inicial, en la cual ya se crea la base de datos usaremos el fichero .sql que encontraremos dentro del paquete, en el mismo directorio donde está el fichero INSTALL. Este fichero .sql se completa con la versión del SIGVI que estemos instalando. Por ejemplo, si estamos instalando la versión 1.3.0 del SIGVI R2 ejecutaremos:

# mysql -u root -p < sigvi-1.3.0.sql

Al finalizar, si no se han producido errores, tendremos creada la base de datos del SIGVI, junto con un usuario “sigvi” y todas las tablas inicializadas.

3.4. Adaptando la aplicación a su entorno

Una vez completados los pasos anteriores faltará configurar la aplicación para poder acceder a ella vía Web. Para ello tendremos que editar el fichero app.conf.php que se encuentra dentro del directorio “conf” del SIGVI.

Concretamente tendrá que revisar los parámetros HOME, ADM_EMAIL, SERVER_URL, y la configuración de la base de datos (al final del fichero).

3.4.1.HOME y SERVER_URL

Tenga especial atención con la constante HOME, dado que es la constante que se usa internamente para hacer referencia a la propia aplicación a través del navegador. Dependerá de la URL que usemos para acceder a la aplicación, es decir, el path que viene detrás de la URL del propio servidor.

¿Cómo definir correctamente esta constante?

Estos son ejemplos de distintas situaciones de instalación de la aplicación y cómo definirla en cada caso.

3.5. Comprobar accesos LDAP

El SIGVI permite validar las contraseñas de los usuarios contra servicios externos. Para ello bastará tener el plugin necesario. En esta versión se provee un plugin para autenticación vía LDAP.

Si en su entorno se realizan las validaciones vía LDAP podrá configurar el SIGVI para que valide los usuarios que cree en él contra su servicio. Para configurarlo vaya al final del fichero app.conf.php dentro del directorio conf y adáptelo a su entorno.

Los usuarios que tengan el campo “externo” a cierto, se validarán usando este método.

3.6. Configuración de los procesos batch

Los procesos batch, o procesos diferidos son los encargados de actualizar los datos de la base de datos como por ejemplo descargar las vulnerabilidades y actualizar la tabla de vulnerabilidades, comprobar qué productos, de los que tiene instalados en sus servidores, están afectados por alguna vulnerabilidad, avisar a los administradores, etc.

Aunque la aplicación provee de mecanismos a través de la interfaz Web para ejecutar manualmente los procesos más importantes, es aconsejable la configuración de ejecución en diferido para automatizar las tareas y minimizar el seguimiento y el fallo humano.

En los sistemas UNIX la configuración se realiza vía crontab, que puede realizarse de dos maneras: usando el fichero de sistema /etc/crontab o bien el crontab del usuario (comando crontab -l para visualizar, o crontab -e para editarlo).

Primero tendremos que editar el fichero cron.sh que se encuentra dentro del directorio cron del SIGVI. Revise las tres primeras variables:

Luego use el método que prefiera, ya sea editando el fichero /etc/crontab o usando el crontab de un usuario (crontab -e). Tenga en cuenta que el usuario que use deberá tener acceso al directorio Web donde está alojado el SIGVI (por ejemplo www-data, o root).

Finalmente se aconseja ejecutar manualmente el shell script cron.sh y comprobar la salida, para detectar y corregir posibles errores de configuración.

Si su plataforma es Windows, deberá crear una tarea programada para ejecutar los scripts .php tal como hace el shell script cron.sh:

3.7. Accediendo por primera vez

Abra un navegador Web y acceda al servidor (por ejemplo http://server.localdomain.domain/sigvi) y accederá a la página de login.

Por defecto existe un único usuario: “admin”, cuya contraseña es “admin”.

Cambie la contraseña lo antes posible.

Una vez validado accederá al menú principal. En ésta encontrará en la parte superior del menú un icono de información a través del cual podrá acceder a una página donde se le indicará cuáles son los pasos a seguir tras instalar una nueva instancia del SIGVI.

Para más información acerca de las tareas iniciales, lea por favor el manual del usuario, en el apartado de cada perfil encontrará un apartado de tareas iniciales donde se explica con más detalle qué tareas debe ejecutar para dejar lista su nueva instancia.

4. Más ayuda

Si necesita más ayuda puede pedir información a sebastian.gomez@upcnet.es

Gracias por su interés, esperamos que le resulte útil.