Control de registros con Graylog en Debian 10
Continuamos hablando de sistemas de detección de intrusos o IDS, en este caso la estrella de hoy es la Graylog, un panel web, que nos permitirá revisar y controlar los registros generados por Snort y procesados por Barnyard2
¿Qué es Graylog y para qué sirve?
Se trata de una herramienta de gestión de registros libre, ya que utiliza una licencia GPL v3.0 en su versión comunitaria y que sigue la filosofía de desarrollo del código abierto u open source. Debajo del capó nos encontramos con tecnologías como Java, Elasticsearch o MongoDB.
Graylog tiene como objetivo principal recopilar, indexar y analizar cualquier registro del servidor desde una ubicación centralizada o distribuida. En el caso de esta entrada lo instalaremos en el mismo servidor virtual, justo al resto de herramientas que he comentado en el primero párrafo.
Permite monitorear fácilmente cualquier actividad inusual para depurar aplicaciones y registros. Además propociona un potente lenguaje de consulta, capacidades de alerta, canalización de procesamiento de datos, entre otras funcionalidades. Se pueden extender sus funcionales a través de una API REST y el uso de complementos.
Instalación de Graylog en Debian 10
Para la entrada vamos a seguir utilizando la máquina virtual que tengo en mi equipo con Debian 10. Para que todo funcione correctamente este host tiene que tener unos requisitos mínimos o deseables. Básicamente que el equipo tengo más de 20 GB de espacio disponible en el disco, 4 GB de memoria y 2 cores de CPU
Añadir los repositorio de Backports
Empezamos añadiendo los repositorios «backports» en el sistema, que son los que utilizaremos para realizar la instalación:
sudo vi /etc/apt/sources.list
Y añadimos:
deb http://ftp.debian.org/debian/ buster main contrib non-free deb http://security.debian.org/debian-security buster/updates main contrib non-free deb http://ftp.debian.org/debian/ buster-updates main contrib non-free deb http://ftp.debian.org/debian buster-backports main contrib non-free
Guardamos y salimos.
Actualizamos:
sudo apt update sudo apt dist-upgrade
Instalar Java JDK
Tanto Graylog como Elasticsearch son aplicaciones basadas en Java. Por lo que lo tendremos que instalar en el sistema. De forma predeterminada, la última versión de Java ya se encuentra en los repositorios principales de Debian 10. Lo podemos instalar así:
sudo apt -y install apt-transport-https default-jdk
Añadir herramientas adicionales
Para seguir con la instalación debemos añadir una serie de herramientas adicionales, que probablemente ya tendemos disponibles, pero si no fuera así:
sudo apt -y install gnupg wget
Instalar MongoDB
De MongoDB ya he hablado en la web alguna vez. Por defecto no viene disponible en los repositorios de la distribución, por lo que debemos añadir los siguientes repositorios:
sudo su - apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 4B7C549A058F8B6B echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" \ | tee /etc/apt/sources.list.d/latest-mongodb.list exit
Actualizamos e instalamos:
sudo apt update sudo apt -y install mongodb-org
Una vez hecho esto arrancamos el servicio y lo añadimos al inicio:
sudo systemctl enable mongod.service sudo systemctl start mongod.service
Instalar Elasticsearch-OSS
A fecha de esta entrada Graylog 3.3 no soporta Elasticsearch 7.x por lo que trabajaremos con la versión anterior. Al igual que hemos hecho con anterioridad, vamos a habilitar los repositorios necesarios, para tener disponible esta herramienta y así poder instalarla.
sudo su - wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add - echo "deb https://artifacts.elastic.co/packages/oss-6.x/apt stable main" \ | tee -a /etc/apt/sources.list.d/latest-elastic-6.x.list exit
Actualizamos e instalamos:
sudo apt -y update sudo apt -y install elasticsearch-oss
Asignamos un nombre al clúster de Elasticsearch
sudo sed -i "s/#cluster.name: my-application/cluster.name: graylog-app/g" \ /etc/elasticsearch/elasticsearch.yml
Habilitamos el servicio al inicio y lo arrancamos:
sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service
Instalar Graylog
En esta parte simplemente debemos descargarla versión 3.3 del producto y su llave.
sudo su - cd /tmp/ wget https://packages.graylog2.org/repo/packages/graylog-3.3-repository_latest.deb dpkg -i graylog-3.3-repository_latest.deb apt -y update exit
Ahora sí instalamos:
sudo apt -y install graylog-server
De momento no encendemos el servicio y no lo añadimos al inicio, ya qu primero lo hemos de configurar.
Configurar Graylog
Ahora vamos a crear un hash para la contraseña que después vamos a utilizar para acceder a la herramienta, vía web:
echo 'contrasea' | tr -d '\n' | sha256sum | cut -d" " -f1 # Con el resultado 750b3435ee4f96c4e8e33b43a0c485fda1f06581335421b301f937f0dc3668db
Y añadimos el código resultante al fichero de configuración:
sudo su - sed -i \ "s/^root_password_sha2 =\$/root_password_sha2 = -hash-obtenido- /g" \ /etc/graylog/server/server.conf
Y añadimos el código secreto, el que nosotros queramos, eso sí, que por lo menos tenga 16 carácteres.
sed -i "s/^password_secret =\$/password_secret = AzulRojoAmarilloSecreto/g" /etc/graylog/server/server.conf
Habilitamos el acceso desde un host externo:
sed -i "s/^#http_bind_address = 127.0.0.1:9000/http_bind_address = 0.0.0.0:9000/g" \ /etc/graylog/server/server.conf
Cambiamos la zona horaria:
sed -i "s/#root_timezone = UTC/root_timezone = Europe\/Madrid/g" \ /etc/graylog/server/server.conf exit
Añadimos el servicio al inicio y encendemos:
sudo systemctl enable graylog-server.service sudo systemctl start graylog-server.service
Si todo ha ido bien, ya veremos la java escuchando por el puerto 9000:
davidochobits@servdebian:~$ sudo lsof -i :9000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 8924 graylog 49u IPv6 34677 0t0 TCP *:9000 (LISTEN)
Accediendo al panel web
Para acceder a la plataforma debemos ir a nuestro navegador web favorito e indicar la IP o URL del host más el puerto 9000, con el resultado, en mi caso:
Con una vista similar a la siguiente, una vez hemos accedido:
Ahora nos falta configurarlo para poder ver la información que nos interese, pero eso será en la siguiente entrada. ¡Estad atentos!
Fuentes consultadas:
Howtheforge.com – How to Monitor Log Files with Graylog v3.1 on Debian 10