OSSEC es una herramienta HIDS muy util con la que se puede monitorizar los accesos al host, si se cambia algún archivo de configuración, realizar acciones determinadas para situaciones concretas (bloquear un usuario al de X intentos de conectarse por SSH). También cuenta con un modelos servidor-cliente para poder centralizar todo y visualizarlo mediante un panel web. Además de esto, también se puede configurar notificaciones por email para que mande correos cuando surjan alertas.
Server
Instalar todas las dependencias necesarias
apt install inotify-tools build-essential
apt install mysql-server libmysqlclient-dev mysql-client apache2 php5 libapache2-mod-php5 php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Descargar OSSEC
cd /tmp && wget https://bintray.com/artifact/download/ossec/ossec-hids/ossec-hids-2.8.3.tar.gz
Desempaquetarlo
tar -zxvf ossec-hids*
Borrar el archivo empaquetado
rm -fr ossec-hids*.tar.gz
Acceder al directorio src para habilitar la base de datos antes de instalar
cd /tmp/ossec-hids*/src
Habilitar la base de datos
make setdb
Error: PostgreSQL client libraries not installed. Info: Compiled with MySQL support.
Ir a la carpeta raiz de ossec
cd /tmp/ossec-hids*
Ejecutar el instalador, hará unas preguntas para configurar la herramienta.
./install.sh
1- Que tipo de instalación Usted desea (servidor, agente, local ó ayuda)? servidor - Usted eligió instalación de Servidor. 2- Configurando las variables de entorno de la instalación. - Eliga donde instalar OSSEC HIDS [/var/ossec]: - La instalación se realizará en /var/ossec . 3- Configurando el sistema OSSEC HIDS. 3.1- Desea recibir notificación por correo electrónico? (s/n) [s]: - Cuál es vuestra dirección de correo electrónico? info@prueba.com - Hemos encontrado vuestro servidor de correo (SMTP): mail.prueba.com. - Desea Usted usarlo? (s/n) [s]:s --- Usando el servidor SMTP: mail.prueba.com. 3.2- Desea Usted agregar el servidor de integridad del sistema? (s/n) [s]:s - Ejecutando syscheck (servidor de integridad del sistema). 3.3- Desea Usted agregar el sistema de detección de rootkit? (s/n) [s]:s - Ejecutando rootcheck (sistema de detección de rootkit). 3.4- Respuestas activas le permitirán ejecutar un comando específico en base a los eventos recibidos. Por ejemplo, Usted podra bloquear una dirección IP ó deshabilitar el acceso de un usuario específico. Más información en: http://www.ossec.net/en/manual.html#active-response - Desea Usted habilitar respuesta activa? (s/n) [s]:s - Respuesta activa habilitada. - Por omición, podemos habilitar el rechazo de servicio o el abandono del paquete por medio del Firewall. El rechazo agregara el ofendedor en el archivo etc/hosts.deny y el abandono bloquara la comunicación con el ofendedor en iptables (si el sistema fuera linux) ó ipfilter (si el sistema fuera Solaris, FreeBSD or NetBSD). - Las dos repuestas pueden ser utilizadas para detener un escaneo de fuerza bruta contra SSHD, escaneo de puertos y otras formas de ataque. Por ejemplo Usted podra tambien agregar los ofensores de acuerdo a eventos registrados por medio de snort. - Desea Usted habilitar la respuesta desechar en el Firewall? (s/n) [s]:s - Respuesta desechar en el Firewall habilitada (local) para niveles >= 6 - Lista blanca para respuesta activa por omisión: - 213.186.33.99 - Desea Usted agregar más IPs a la lista blanca? (s/n)? [n]: s - IPs (lista separada por blancos): 192.168.1.1 3.5- Desea Usted habilitarsyslog remoto (puerto 514 udp)? (s/n) [s]:s - Syslog remoto habilitado. 3.6- Estableciendo la configuración para analizar los siguientes registros: -- /var/log/messages -- /var/log/auth.log -- /var/log/syslog -- /var/log/mail.info -- /var/log/dpkg.log -- /var/log/apache2/error.log (apache log) -- /var/log/apache2/access.log (apache log) - Si Usted deseara monitorear algún otro registro, solo tendrá que editar el archivo ossec.conf y agregar una nueva entrada de tipo localfile. Cualquier otra pregunta de configuración podra ser respondida visitandonos en linea en http://www.ossec.net . --- Presione ENTER para continuar ---
Base de datos
Crear la base de datos
mysql -u root -p
mysql> create database ossec_db; mysql> grant INSERT,SELECT,UPDATE,CREATE,DELETE,EXECUTE on ossec_db.* to ossec_usr; mysql> set password for ossec_usr = PASSWORD('Password'); mysql> flush privileges;
Volcar la configuración de ossec a la base de datos creada.
mysql -u root -p ossec_db < /tmp/ossec-hids*/src/os_dbd/mysql.schema
Editar el archivo de configuración de ossec
vim /var/ossec/etc/ossec.conf
<database_output> <hostname>127.0.0.1</hostname> <username>ossec_usr</username> <password>Password</password> <database>ossec_db</database> <type>mysql</type> </database_output>
Habilitar la base de datos
/var/ossec/bin/ossec-control enable database
Reiniciar ossec
/var/ossec/bin/ossec-control restart
Frontend
En este caso como fronted web, se va a usar analogi. No hay muchos frontends para esta herramienta y la verdad que todos son bastante pobres. Pero de todos los que hay el mas completo puede que sea este.
cd /var/www/html/
Clonar el repositorio de analogi
git clone https://github.com/ECSC/analogi.git
Crear el archivo de configuración
cp analogi/db_ossec.php.new analogi/db_ossec.php
Editar el archivo de configuración añadiendo los parametros de la base de datos
vim analogi/db_ossec.php
define ('DB_USER_O', 'ossec_usr); define ('DB_PASSWORD_O', 'Password'); define ('DB_HOST_O', '127.0.0.1'); define ('DB_NAME_O', 'ossec_db');
Editar el site de apache para poner una contraseña
vim /etc/apache2/sites-available/000-default.conf
<Directory /var/www/html/analogi> AuthType Basic AuthName "Restricted Files" AuthBasicProvider file AuthUserFile "/var/www/html/analogi/.htpasswd" Require user admin </Directory>
Crear el archivo de contraseñas
htpasswd -c /var/www/html//analogi/.htpasswd admin
Cambiar el usuario del directorio
chown www-data:www-data /var/www/html/analogi/ -R
Reiniciar apache
systemctl restart apache2.service
Cliente
Instalar las dependencias necesarias
apt install inotify-tools build-essential
Descargar ossec
cd /tmp && wget https://bintray.com/artifact/download/ossec/ossec-hids/ossec-hids-2.8.3.tar.gz
Descomprimir ossec
tar -zxvf ossec-hids-*
Borrar el tar
tar -zxvf ossec-hids-*
Ir a la carpeta de ossec
cd ossec-hids-*
Instalar Ossec y responder a las preguntas
./install.sh
1- Que tipo de instalación Usted desea (servidor, agente, local ó ayuda)? agente - Usted eligió instalación de Agente(cliente). 2- Configurando las variables de entorno de la instalación. - Eliga donde instalar OSSEC HIDS [/var/ossec]: - La instalación se realizará en /var/ossec . 3- Configurando el sistema OSSEC HIDS. 3.1- Cuál es la direccion ó nombre de vuestro del servidor OSSEC HIDS?: 10.10.1.2 - Agregando el IP del servidor 10.10.1.2 3.2- Desea Usted agregar el servidor de integridad del sistema? (s/n) [s]: s - Ejecutando syscheck (servidor de integridad del sistema). 3.3- Desea Usted agregar el sistema de detección de rootkit? (s/n) [s]: s - Ejecutando rootcheck (sistema de detección de rootkit). 3.4 - Desea Usted habilitar respuesta activa? (s/n) [s]: s 3.5- Estableciendo la configuración para analizar los siguientes registros: -- /var/log/messages -- /var/log/auth.log -- /var/log/syslog -- /var/log/dpkg.log - Si Usted deseara monitorear algún otro registro, solo tendrá que editar el archivo ossec.conf y agregar una nueva entrada de tipo localfile. Cualquier otra pregunta de configuración podra ser respondida visitandonos en linea en http://www.ossec.net .
Ahora ir al ossec-server y ejecutar lo siguiente para crear el agente
/var/ossec/bin/manage_agents
**************************************** * OSSEC HIDS v2.8.3 Agent manager. * * The following options are available: * **************************************** (A)dd an agent (A). (E)xtract key for an agent (E). (L)ist already added agents (L). (R)emove an agent (R). (Q)uit. Choose your action: A,E,L,R or Q: A - Adding a new agent (use '\q' to return to the main menu). Please provide the following: * A name for the new agent: agent * The IP Address of the new agent: 192.168.1.1 * An ID for the new agent[001]: Agent information: ID:001 Name:agent IP Address:192.168.1.1 Confirm adding it?(y/n): y Agent added.
Ahora extraer la key del agente en el servidor
/var/ossec/bin/manage_agents
**************************************** * OSSEC HIDS v2.8.3 Agent manager. * * The following options are available: * **************************************** (A)dd an agent (A). (E)xtract key for an agent (E). (L)ist already added agents (L). (R)emove an agent (R). (Q)uit. Choose your action: A,E,L,R or Q: E Available agents: ID: 001, Name: agent, IP: 192.168.1.1 Provide the ID of the agent to extract the key (or '\q' to quit): 001 Agent key information for '001' is: MDAxIG5hYm9vIDEwLjEwLjEuMSBiMTVlOTY2YTU2MzQ4YjI0NzEwY2U2ZmVmY2I0YTAsadasddsdf24626sdf165f2sd61g51j5kiuy12tm ** Press ENTER to return to the main menu.
Y en el agente importar la clave
/var/ossec/bin/manage_agents
**************************************** * OSSEC HIDS v2.8.3 Agent manager. * * The following options are available: * **************************************** (I)mport key from the server (I). (Q)uit. Choose your action: I or Q: I * Provide the Key generated by the server. * The best approach is to cut and paste it. *** OBS: Do not include spaces or new lines. Paste it here (or '\q' to quit):MDAxIG5hYm9vIDEwLjEwLjEuMSBiMTVlOTY2YTU2MzQ4YjI0NzEwY2U2ZmVmY2I0YTAsadasddsdf24626sdf165f2sd61g51j5kiuy12tm Agent information: ID:001 Name:agente IP Address:192.168.1.1 Confirm adding it?(y/n): y Added. ** Press ENTER to return to the main menu.
Y por último reiniciar tanto el agente como el servidor
/var/ossec/bin/ossec-control restart
Desinstalar
En el caso de que se quiera desinstalar lanzar este comando
rm -f /etc/init.d/ossec /etc/rc0.d/K20ossec /etc/rc1.d/K20ossec /etc/rc2.d/S20ossec /etc/rc3.d/S20ossec /etc/rc4.d/S20ossec /etc/rc5.d/S20ossec /etc/rc6.d/K20ossec; sudo rm -rf /var/ossec; sudo /usr/sbin/deluser ossec; sudo /usr/sbin/deluser ossecm; sudo /usr/sbin/deluser ossecr; sudo /usr/sbin/deluser ossecd; sudo /usr/sbin/delgroup ossec; sudo /usr/sbin/delgroup ossecd
Fuente:
https://raymii.org/s/tutorials/OSSEC_2.8.0_Server_Client_and_Analogi_Dashboard_on_Ubuntu.html
http://www.ossec.net/ossec-docs/OSSEC-book-ch3.pdf
One comment