juju4.misp

Estado de Acciones - Master Estado de Acciones - Devel

Rol de Ansible para MISP

Rol de Ansible para configurar MISP, Plataforma de Compartición de Información sobre Malware y Amenazas.

Alternativas

Requisitos y Dependencias

Ansible

Se probó en las siguientes versiones:

  • 2.0
  • 2.2
  • 2.3
  • 2.4
  • 2.5

Sistemas Operativos

Probado en Ubuntu 20.04, 22.04 y CentOS 8-Stream.

Ejemplo de Playbook

Solo incluye este rol en tu lista. Por ejemplo:

- hosts: all
  roles:
    - juju4.MISP

Credenciales de administrador predeterminadas (admin@admin.test / admin)

Variables

Nada específico por ahora.

Integración Continua

Este rol tiene una prueba básica de travis (para github), más avanzada con kitchen y también un Vagrantfile (test/vagrant). La configuración predeterminada de kitchen (.kitchen.yml) es basada en lxd, mientras que (.kitchen.vagrant.yml) es basada en vagrant/virtualbox.

Una vez que asegures que todos los roles necesarios están presentes, puedes probar con:

$ gem install kitchen-ansible kitchen-lxd_cli kitchen-sync kitchen-vagrant
$ cd /ruta/a/roles/juju4.MISP
$ kitchen verify
$ kitchen login
$ KITCHEN_YAML=".kitchen.vagrant.yml" kitchen verify

o

$ cd /ruta/a/roles/juju4.MISP/test/vagrant
$ vagrant up
$ vagrant ssh

El rol también tiene una configuración de packer que permite crear imágenes para virtualbox, vmware, eventualmente digitalocean, lxc y otros. Al construirlo, se recomienda hacerlo fuera del directorio de roles, ya que todo el directorio se sube a la caja durante la construcción y actualmente no es posible excluir el directorio de packer de ello (https://github.com/mitchellh/packer/issues/1811)

$ cd /ruta/a/packer-build
$ cp -Rd /ruta/a/juju4.MISP/packer .
## actualiza packer-*.json con tu ruta absoluta actual del rol ansible para el rol principal
## puedes agregar dependencias de roles adicionales dentro de setup-roles.sh
$ cd packer
$ packer build packer-*.json
$ packer build -only=virtualbox-iso packer-*.json
## si quieres habilitar registro adicional
$ PACKER_LOG_PATH="packerlog.txt" PACKER_LOG=1 packer build packer-*.json
## para la construcción en digitalocean, necesitas exportar TOKEN en el entorno.
## actualiza la configuración json en tu configuración y región.
$ export DO_TOKEN=xxx
$ packer build -only=digitalocean packer-*.json
## para Azure
$ . ~/.azure/credentials
$ packer build azure-packer-centos7.json
$ packer build -var-file=variables.json azure-packer-centos7.json

Solución de Problemas y Problemas Conocidos

Solución de problemas

$ tail /var/log/apache2/misp.*
$ tail /var/www/MISP/app/tmp/logs/*.log
$ cd /var/www/MISP/app/Console && ./cake CakeResque.CakeResque tail

Errores conocidos

  • en /var/www/MISP/app/tmp/logs/error.log Error: [MissingTableException] La tabla logs para el modelo Log no fue encontrada en la fuente de datos por defecto. verifica que la base de datos de misp exista en mysql y esté llena.

  • El script curl_tests.sh de MISP está hecho para ejecutarse una vez, a diferencia de kitchen verify. Si se repite, esta prueba fallará.

  • si utilizas docker privilegiado y un host con mysql, podrías tener el siguiente problema

mysqld[29176]: /usr/sbin/mysqld: error al cargar bibliotecas compartidas: libaio.so.1: no se puede acceder al objeto compartido: Permiso denegado

https://github.com/docker/docker/issues/7512

  • Docker y Redis también pueden tener problemas y puede ser necesario editar la configuración de systemd en xenial. ver tarea 'docker redis workaround ???'

  • CI falla a veces con Fallos en la serialización: 1213 Se encontró un bloqueo muerto al intentar obtener el bloqueo; intenta reiniciar la transacción. Parece estar relacionado con Issue 5004 - Abierto

  • Ubuntu 22.04 parece no ser compatible ya que php8.1 y app/composer.json requieren php >=7.2.0,<8.0.0

  • Error: La conexión a la base de datos "Mysql" falta, o no se pudo crear. puede ser causado si hay múltiples versiones de php y se llama la versión incorrecta desde la interfaz de línea de comandos.

  • Error fatal de PHP: Error de tipo no capturado: El valor de retorno de Symfony\\Component\\Process\\Process::close() debe ser del tipo int, nulo devuelto en phar:///usr/local/bin/composer/vendor/symfony/process/Process.php:1466 (rhel/rockylinux8 y 9): no se identificó la causa raíz, posiblemente relacionado con contenedores/docker ya que solo falla en molécula/docker y no en imágenes alojadas en github.

Preguntas Frecuentes (FAQ)

TODO

  • el rol no está gestionando actualizaciones (Trabajo en progreso/git pull entre versiones menores)
  • monitoreo a menos que se utilice serverspec
  • endurecimiento: el endurecimiento de apache & nginx se realiza en roles separados (harden-webserver) +Viper https://asciinema.org/a/28808 https://asciinema.org/a/28845

Licencia

BSD 2-cláusulas

Acerca del proyecto

MISP - Malware Information Sharing Platform & Threat Sharing

Instalar
ansible-galaxy install juju4.misp
Licencia
bsd-2-clause
Descargas
1.1k
Propietario