viernes, marzo 16, 2007

Notas de la instalación de OSSIM (I)

Puesto que últimamente estoy trabajando con OSSIM, he estado probando como instalar el sistema desde las fuentes. Aparte de la documentación que hay colgada en el wiki, os paso algunas notas que he ido tomando al instalarlo (aunque no lo he probado a fondo la instalación que he hecho). Estas notas están tomadas de los pasos que he ido dando tras seguir la documentación del wiki y los ficheros README.* incluidos en el proyecto.

Para compilar el sistema en una Debian Etch - a día de hoy la distribución testing de Debian. Aunque me faltan partes por instalar (por ejemplo el AcidBase).

Los pasos que seguí fueron los siguientes:
Instalar los siguientes paquetes:

Paquetes necesarios para compilar el server:

apt-get install libglib2.0-dev
apt-get install libgda2-dev
apt-get install libgnet-dev

Paquetes necesarios para que el framework de web funcione:

apt-get install apache2
apt-get install php4
apt-get install mysql-server
apt-get install python
apt-get install perl
apt-get install gda2-mysql
apt-get install phpgacl
apt-get install php4-mysql
apt-get install php4-domxml
apt-get install libphp-adodb
apt-get install php4-gd
De todos estos paquetes, el único que necesita un tratamiento especial es phpgacl, puesto que OSSIM utiliza su propia base de datos para guardar las acl. El paquete Debian que se instala por defecto pedirá una base de datos, mejor saltarse la configuración y configurar manualmente

Una vez instalado los paquetes seguimos los clásicos pasos de:

./autogen.sh
./configure --prefix=/usr/local
make
make install
Esto nos instalará todo el proyecto de OSSIM.

Ahora se crean las bases de datos que va a usar el proyecto (de momento sólo usamos mysql como base de datos).

terron@ossim-devel:~/proyectos/ossim/os-sim$ mysqladmin -u root -p create ossim
Enter password: 
terron@ossim-devel:~/proyectos/ossim/os-sim$ mysqladmin -u root -p create snort
Enter password: 
terron@ossim-devel:~/proyectos/ossim/os-sim$ mysqladmin -u root -p create ossim_acl
Enter password: 
En este caso vamos a suponer que el usuario con el que vamos a acceder al a base de datos es root, aunque no debería usarse el usuario de administración, sino crear un usuario, darle permiso en las bases de datos anteriores y configurar con los mismos. Ahora creamos los esquemas de las distintas tablas, con los scripts que hay en la distribución:
terron@ossim-devel:~/proyectos/ossim/os-sim$ cat db/create_mysql.sql db/ossim_data.sql db/ossim_config.sql db/snort_nessus.sql db/realsecure.sql | mysql -u root -p ossim
Enter password: 
terron@ossim-devel:~/proyectos/ossim/os-sim$ cat contrib/acid/create_acid_tbls_mysql.sql contrib/snort/create_snort_tbls_mysql.sql | mysql -p -u root snort
Enter password:

Ahora debemos de crear los alias en el Apache para que la zona web, apunte a la situación de la web. Lo más cómodo es crear un fichero ossim.conf y colocarlo en /etc/apach2/conf.d, posteriormente parando y arrancando Apache de nuevo para que tome los cambios. Por ejemplo este es un ossim.conf para colocar el alias y permitir el acceso sólo a las IP del rango 192.168.1.0/24, y con OSSIM instalado en /usr/local.

Alias /ossim "/usr/local/share/ossim/www"
<Directory "/usr/local/share/ossim/www">
    order deny,allow
    deny from all
    allow from 192.168.1.0/24
</Directory>

Ahora hay que editar el fichero php.ini para incluir en las rutas de búsqueda con los ficheros de clases de OSSIM:

include_path = ".:/usr/share/php:/usr/local/share/ossim/include"

Configurar el fichero /etc/ossim/server/config.xml con las entradas para la conexión a la base de datos. Por ejemplo, este es el conjunto de conexión a la base de datos

...
<datasource name="ossimDS" provider="MySQL"
dsn="PORT=3306;USER=root;PASSWORD=clave;DATABASE=ossim;HOST=localhost"/>
<datasource name="snortDS" provider="MySQL"
dsn="PORT=3306;USER=root;PASSWORD=clave;DATABASE=snort;HOST=localhost"/>
...

Se debe configurar también el framework, en el fichero /etc/ossim/framework/ossim.conf. Hay que configurar las conexiones a la base de datos, las rutas a phpgacl y adodb. Por ejemplo

...
data_dir=/usr/local/share/ossim
base_dir=/usr/local/share/ossim/www
ossim_interface=eth0
ossim_link=/ossim/
adodb_path=/usr/share/php/adodb/
...

ossim_type=mysql
ossim_base=ossim
ossim_user=root
ossim_pass=clave
ossim_host=localhost
ossim_port=3306
...
phpgacl_path=/usr/share/phpgacl/
phpgacl_type=mysql
phpgacl_host=localhost
phpgacl_base=ossim_acl
phpgacl_user=root
phpgacl_pass=clave

Ahora debemos de configurar phpgacl. Lo más cómodo es editar el fichero /etc/phpgacl/gacl.ini.php e introducir los datos de conexión a la base de datos:

db_type = "mysql"
db_host = "localhost"
db_user = "root"
db_password = "clave"
db_name = "ossim_acl"
Al igual que en el caso anterior, está usando el usuario root para la configuración. Ahora debemos de forzar la creación de las tablas adecuadas de pgpgacl. Para ello, se debe ejecutar el siguiente script web:
http://ossim_server/ossim/setup/ossim_acl.php

En este punto tuve algunos problemas, puesto que me pide que reconfigure primero el pgpgacl - para que cree las tablas - y posteriormente volver a ejecutar el script php de OSSIM para que introduzca los objetos.

En principio podemos arrancar el server para probarlo con:

/usr/local/bin/ossim-server
Y podemos acceder a la web del framework con:
http://ossim_server/ossim/

Hasta aquí la primera parte de las notas que he ido tomando.

Technorati Tags:

2 comentarios:

Anónimo dijo...

Hola me interesa mmucho el tema de OSSIM esta muy bueno el articulo, espero la 2 parte a ver si puedes dar mas detalles.

Anónimo dijo...

si buscas una "traducción" al castellano del manual de usuario puedes echarle un vistazo a:
http://tecnoloxiaxa.blogspot.com/2008/06/manual-de-ossim-login.html