Skip to main content

Instalación en docker

MISP soporta ser instalado en multiples sistemas operativos Linux (Ubuntu, Debian, Kali, Centos) pero además dispone de contenedor para docker disponible en su repositorio oficial

git clone https://github.com/MISP/misp-docker
mv misp-docker misp
cd misp

Copiar el template.env a un fichero .env para indicar las variables. Por lo que parece la versión docker no hace mucho caso de este fichero ya que se define la información en el docker-compose.yml

cp template.env .env

Editar el docker-compose.yml con la información que deseamos (puertos, personalmente al existir en una máquina que hay más dockers no quiero que use el puerto 443, así que he cambiado los puertos 80 -> 8000 y 443 -> 8003. He retirado que mapee dicho puerto solo en la IP local, ya que me interesa poder acceder desde un equipo de la LAN, ya se encargará el firewall de segmentación de VLANs de cortar el acceso. A continuación os dejo el yaml modificado que he usado yo.

version: '3'

services:
  web:
    build: web
    depends_on:
      - db
    container_name: misp_web
    image: misp:latest
    restart: unless-stopped
    ports:
      - "8000:80"
      - "8003:443"
    volumes:
      - /dev/urandom:/dev/random
      - ${DATA_DIR:-./data}/web:/var/www/MISP
    environment:
      - MYSQL_HOST=${MYSQL_HOST:-misp_db}
      - MYSQL_DATABASE=${MYSQL_DATABASE:-misp}
      - MYSQL_USER=${MYSQL_USER:-misp}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD:-misp}
      - MISP_ADMIN_EMAIL=${MISP_ADMIN_EMAIL:-admin@admin.test}
      - MISP_ADMIN_PASSPHRASE=${MISP_ADMIN_PASSPHRASE:-admin}
      - MISP_BASEURL=${MISP_BASEURL:-https://10.15.50.10:8003}
      - POSTFIX_RELAY_HOST=${POSTFIX_RELAY_HOST:-relay.fqdn}
      - TIMEZONE=${TIMEZONE:-UTC}
    entrypoint: "wait-for-it.sh -t 0 -h ${MYSQL_HOST:-misp_db} -p 3306 -- /run.sh"

  db:
    container_name: misp_db
    image: mysql/mysql-server:5.7
    hostname: ${MYSQL_HOST:-misp_db}
    restart: unless-stopped
    volumes:
      - ${DATA_DIR:-./data}/db:/var/lib/mysql
    environment:
      - MYSQL_DATABASE=${MYSQL_DATABASE:-misp}
      - MYSQL_USER=${MYSQL_USER:-misp}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD:-misp}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-misp}

volumes:
  web:
  db:

A continuación ejecutar los comandos que indica en su web, este paso puede tardar unos 5 - 10 minutos dependiendo del hardware del equipo (en mi caso tardo unos 10 minutos).

docker-compose -f docker-compose.yml build

Una vez haya finalizado, ejecutar el comando para que levante los dockers.

docker-compose -f docker-compose.yml up

Se encenderán dos contenedores docker (misp_web y misp_db) con un consumo de 300mb de ram cada uno.

Pasadas unas horas el container de mysql ha pasado a consumir casi 900mb

Acceda a la web de gestión de MISP, usando la IP de la máquina que contiene el docker y especificando el puerto de conexión.

https://IP_SERVIDOR:8003

Acceda con las credenciales por defecto

  • Usuario: admin@admin.test
  • Contraseña: admin

En el primer inicio le solicitará el cambio de dicha contraseña.