Al trabajar con ambientes Linux es importante estar al tanto de las novedades que puedan presentarse a nivel de red y seguridad ya que está en juego toda la información de los usuarios, los servicios y procesos que son ejecutados a diario y múltiples roles del servidor que si llegan a presentar fallos de seguridad pondrán en riesgo toda la arquitectura IT.
Una de las mejores herramientas gratuitas que nos ayudan a supervisar la red de forma completa y a analizar las carencias de seguridad es Bro y hoy este tutorial analizará en detalle cómo usarla en Ubuntu 17.04.
Bro forma parte de Software Freedom Conservancy el cual es una asociación enfocada en los proyectos libres con lo cual nos garantiza que Bro es Open Source disponible para todos.
- Realiza análisis constante y seguimiento del tráfico HTTP.
- Es capaz de detectar ataques de fuerza bruta contra servicios de red tales como SSH y FTP.
- Ejecuta validaciones en los certificados SSL / TLS.
- Analiza y detecta cambios en el software instalado en la máquina.
- Genera reportes usando email.
- Está en la capacidad de realizar geolocalizaciones de IP por ciudad.
- Detecta ataques de SQL.
- Diversas opciones de configuración.
- Es flexible.
1. Instalar dependencias en Ubuntu 17
Antes de iniciar debemos actualizar los paquetes del sistema operativo ejecutando la siguiente línea:
sudo apt-get update
Bro requiere el uso de diversas dependencias como Libpcap, OpenSSL y BIND8 adicional de Python 2.6 o superior, y debido a que esta instalación de Bro se está realizando desde el origen del desarrollador será necesario agregar dependencias como CMake, SWIG, Bison y un compilador de C / C ++ para la ejecución.
Estas dependencias serán instaladas ejecutando la siguiente línea. Allí aceptaremos la descarga y respectiva instalación.
sudo apt-get install bison cmake flex g++ gdb make libmagic-dev libpcap-dev libgeoip-dev libssl-dev python-dev swig2.0 zlib1g-dev
2. Descargar la base de datos GeoIP en Ubuntu 17
En este paso descargaremos la base de datos GeoIP de Bro con la cual se realizará el direccionamiento IPv4 e IPv6.
Con las siguientes líneas descargaremos las bases GeoIP de IPv4 e IPv6:
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz
Procedemos a descomprimir dichos archivos:
gzip -d GeoLiteCity.dat.gz gzip -d GeoLiteCityv6.dat.gz
Ahora será necesario mover estos archivos al directorio /usr/share/GeoIP usando las siguientes líneas:
sudo mv GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat sudo mv GeoLiteCityv6.dat /usr/share/GeoIP/GeoIPCityv6.dat
3. Instalar Bro desde el recurso en Ubuntu 17
Para esta instalación usaremos el parámetro Git para la descarga desde GitHub, ejecutaremos la siguiente línea:
git clone --recursive git://git.bro.org/bro
sudo apt install git
Allí veremos que inicia el proceso de clonación de los archivos de instalación de Bro. Una vez el proceso finalice accederemos al nuevo directorio de Bro usando la línea
cd broUna vez accedamos al directorio ejecutaremos la siguiente línea para iniciar el proceso de configuración de Bro:
./configure
Esto tomara alrededor de un minuto y posteriormente debemos ejecutar el comando make para la construcción del programa:
Esto tardará entre 15 a 20 minutos y una vez finalizado veremos lo siguiente:
Ahora instalaremos Bro ejecutando la siguiente línea:
sudo make install
Bro será instalado en el directorio /usr/local/bro. Ahora este directorio debe estar disponible en PATH y para ello lo añadiremos a la ruta /etc/profile.d con el fin de que esté disponible para todos. Ejecutaremos la siguiente línea con el editor deseado para crear el archivo 3rd-party.sh:
sudo nano /etc/profile.d/3rd-party.sh
Alli ingresaremos la siguiente línea:
exporta PATH=$PATH:/usr/local/bro/bin
Una vez definidos estos valores guardamos los cambios usando la combinación de teclas
Ctrl + O
y salimos del editor usando
Ctrl + X
Este archivo debemos activarlo usando la siguiente línea:
source /etc/profile.d/3rd-party.sh
4. Configurar Bro en Ubuntu 17
Todos los archivos de configuración de Bro se encuentran en el directorio /usr/local/bro/etc y son los siguientes:
node.cfg: Permite definir los nodos a analizar networks.cfg: Incluye el listado de interfaces de red en notacion CIDR locales. broctl.cfg: Alli encontramos el archivo de configuración de correo de Bro para registro y algunas configuraciones adicionales.
Ahora editaremos cada uno de estos de la siguiente forma:
En primer lugar accederemos a la configuración de los nodos usando la siguiente línea:
sudo nano /usr/local/bro/etc/node.cfg
Alli debemos especificar la interfaz de red de Ubuntu en la línea interface. Guardamos los cambios y salimos del archivo.
Ahora accederemos a la configuración de los nodos privados usando la siguiente línea:
sudo nano /usr/local/bro/etc/networks.cfg
Alli debemos especificar la dirección IP del servidor:
Para acceder a dicha IP podemos usar el comando
ip addr show
Finalmente configuraremos la cuenta de correo asociada a Bro con la siguiente línea. Alli añadiremos la dirección de correo en el campo MailTo. Guardamos los cambios y salimos del archivo.
sudo nano /usr/local/bro/etc/broctl.cfg
5. Administrar de Bro con BroControl en Ubuntu 17
Con BroControl podemos llevar a cabo diversas tareas de administración de Bro tales como instalar, detener los servicios, etc.
BroControl es una herramienta de línea de comandos y una Shell interactiva. Para invocar BroControl ejecutaremos la siguiente línea:
sudo /usr/local/bro/bin/broctl
Este será el resultado:
Alli tenemos la posibilidad de ejecutar múltiples comandos asociados a Bro. Para salir de esta consola usaremos el comando
exit.
Para iniciar Bro usaremos lo siguiente:
sudo /usr/local/bro/bin/broctl deploy
El resultado será el siguiente:
Si deseamos comprobar el estado de Bro ejecutaremos lo siguiente. Podemos ver que su estado es Running – Corriendo.
sudo /usr/local/bro/bin/broctl status
6. Configurar Cron para Bro en Ubuntu 17
Recordemos que con Cron es posible programar diversas tareas y debido a que Bro no cuenta con parámetros de Systemd, Cron se convierte en la mejor opción para soporte en múltiples tareas sobre Bro, por ejemplo, en caso de bloqueo de la aplicación, comprobar espacio en disco, etc.
Vamos a crear el archivo Cron ejecutando lo siguiente:
sudo nano /etc/cron.d/bro
Alli ingresaremos lo siguiente:
*/5 * * * * root /usr/local/bro/bin/broctl cron
Guardamos los cambios usando la combinación de teclas
Ctrl + O
y salimos del editor usando
Ctrl + X
Al activar esta tarea recibiremos un correo indicando que se ha creado un archivo en el directorio /usr/local/bro/logs/stats.
Vamos a usar la siguiente línea para comprobar que todo funcione bien:
ps aux | grep bro
Ahora mataremos alguno de los procesos usando la siguiente sintaxis:
sudo kill -9 id_proceso
Una vez hagamos este proceso ejecutaremos la siguiente línea de nuevo para comprobar el estado de Bro y veremos que su resultado es crashed;
sudo /usr/local/bro/bin/broctl status
Podemos esperar algún tiempo, ejecutar de nuevo el comando y todo estará restablecido de nuevo. De esta forma contamos con Bro para el análisis de red y seguridad en Ubuntu.