juju4.misp
MISP Ansible Rolle
Ansible Rolle zur Einrichtung von MISP, der Malware Information Sharing Platform & Threat Sharing
Alternativen
- Docker: https://blog.rootshell.be/2016/03/03/running-misp-in-a-docker-container/
- RPM: https://github.com/amuehlem/MISP-RPM
- https://github.com/xme/misp-docker
- Ansible Rolle: https://github.com/MISP/MISP/pull/1413
- Ansible Rolle: https://github.com/MISP/MISP/pull/1495
Anforderungen & Abhängigkeiten
Ansible
Getestet mit den folgenden Versionen:
- 2.0
- 2.2
- 2.3
- 2.4
- 2.5
Betriebssysteme
Getestet auf Ubuntu 20.04, 22.04 und CentOS 8-Stream
Beispiel-Playbook
Fügen Sie einfach diese Rolle in Ihre Liste ein. Zum Beispiel:
- hosts: all
roles:
- juju4.MISP
Standard-Admin-Zugangsdaten (admin@admin.test / admin)
Variablen
Derzeit nichts Spezielles.
Kontinuierliche Integration
Diese Rolle hat einen grundlegenden Travis-Test (für GitHub), einen umfangreicheren mit Kitchen und auch eine Vagrant-Datei (test/vagrant). Die Standard-Kitchen-Konfiguration (.kitchen.yml) basiert auf LXD, während (.kitchen.vagrant.yml) auf Vagrant/VirtualBox basiert.
Sobald Sie sichergestellt haben, dass alle benötigten Rollen vorhanden sind, können Sie testen mit:
$ gem install kitchen-ansible kitchen-lxd_cli kitchen-sync kitchen-vagrant
$ cd /path/to/roles/juju4.MISP
$ kitchen verify
$ kitchen login
$ KITCHEN_YAML=".kitchen.vagrant.yml" kitchen verify
oder
$ cd /path/to/roles/juju4.MISP/test/vagrant
$ vagrant up
$ vagrant ssh
Die Rolle hat auch eine Packer-Konfiguration, die es ermöglicht, Bilder für VirtualBox, VMware, eventuell DigitalOcean, LXC und andere zu erstellen. Beim Erstellen wird empfohlen, dies außerhalb des Rollenverzeichnisses zu tun, da das gesamte Verzeichnis während des Buildvorgangs in die Box hochgeladen wird und es derzeit nicht möglich ist, das Packer-Verzeichnis davon auszuschließen (https://github.com/mitchellh/packer/issues/1811)
$ cd /path/to/packer-build
$ cp -Rd /path/to/juju4.MISP/packer .
## Aktualisieren Sie packer-*.json mit Ihrem aktuellen absoluten Ansible-Rollenpfad für die Hauptrolle
## Sie können zusätzliche Rollenabhängigkeiten in setup-roles.sh hinzufügen
$ cd packer
$ packer build packer-*.json
$ packer build -only=virtualbox-iso packer-*.json
## wenn Sie zusätzliche Log-Dateien aktivieren möchten
$ PACKER_LOG_PATH="packerlog.txt" PACKER_LOG=1 packer build packer-*.json
## für DigitalOcean-Bauten müssen Sie das TOKEN in der Umgebung exportieren.
## Aktualisieren Sie die JSON-Konfiguration in Ihrer Einrichtung und Region.
$ export DO_TOKEN=xxx
$ packer build -only=digitalocean packer-*.json
## für Azure
$ . ~/.azure/credentials
$ packer build azure-packer-centos7.json
$ packer build -var-file=variables.json azure-packer-centos7.json
Fehlersuche & Bekannte Probleme
Fehlersuche
$ tail /var/log/apache2/misp.*
$ tail /var/www/MISP/app/tmp/logs/*.log
$ cd /var/www/MISP/app/Console && ./cake CakeResque.CakeResque tail
Bekannte Fehler
In /var/www/MISP/app/tmp/logs/error.log Fehler: [MissingTableException] Die Tabelle logs für das Modell Log wurde in der Datenquelle default nicht gefunden. Überprüfen Sie, ob die MISP-Datenbank in MySQL existiert und gefüllt ist.
MISP curl_tests.sh ist so konzipiert, dass es einmal ausgeführt wird, im Gegensatz zu kitchen verify. Wenn es wiederholt wird, schlägt dieser Test fehl.
Wenn Sie privilegiertes Docker verwenden und einen Host mit MySQL haben, könnten Sie folgendes Problem haben:
mysqld[29176]: /usr/sbin/mysqld: Fehler beim Laden von gemeinsamen Bibliotheken: libaio.so.1: kann gemeinsames Objekt nicht ermitteln: Berechtigung verweigert
https://github.com/docker/docker/issues/7512
Docker und Redis können ebenfalls Probleme haben, und es könnte notwendig sein, die systemd-Konfiguration unter Xenial zu bearbeiten. Siehe Aufgabe 'Docker Redis Workaround ???'
CI schlägt manchmal fehl mit
Serialization failure: 1213 Deadlock found when trying to get lock; versuchen Sie, die Transaktion neu zu starten
. Sie scheint mit Issue 5004 - Offen in Zusammenhang zu stehen.Ubuntu 22.04 scheint nicht unterstützt zu werden, da php8.1 und app/composer.json php >=7.2.0,<8.0.0 erfordert.
Fehler: Datenbankverbindung „Mysql“ fehlt oder konnte nicht erstellt werden.
kann verursacht werden, wenn mehrere PHP-Versionen vorhanden sind und die falsche Version von der CLI aufgerufen wird.PHP Fatal error: Uncaught TypeError: Return value of Symfony\\Component\\Process\\Process::close() must be of the type int, null returned in phar:///usr/local/bin/composer/vendor/symfony/process/Process.php:1466
(RHEL/RockyLinux8 und 9): Ursache noch nicht identifiziert, möglicherweise container-/dockerbezogen, da es nur in molecule/docker und nicht bei bare github-gehosteten Bildern fehlschlägt.
FAQ
Die Verwendung von Rollenabhängigkeiten wie geerlinguy.{mysql,nginx,apache} ist nicht erforderlich, ermöglicht jedoch eine genauere Feinabstimmung.
Um GPG-Probleme (gemäß Servereinstellungen: Diagnosen) zu debuggen, verweisen Sie auf https://github.com/MISP/MISP/issues/413 Die Zieldatei wurde geändert und befindet sich jetzt in MISP/app/Model/Server.php
Die Rolle stellt MISP als HTTP bereit. Es sind andere Rollen verfügbar, um Zertifikate wie Let's Encrypt zu verwalten (z. B.: thefinn93.letsencrypt). Das neue Ansible v2.2 Let's Encrypt-Modul ermöglicht die Erstellung von Zertifikaten, jedoch keine Erneuerung der Aufgabe ohne ein erneutes Ausführen der Rolle.
Der LIEF-Bau kann lange dauern (30-60 Minuten) auf CentOS 7. Deaktivieren, wenn nicht benötigt.
Referenzen zu RedHat Selinux:
TODO
- Die Rolle verwaltet kein Upgrade (Arbeit in der Entwicklung/git pull zwischen Minor-Releases)
- Monitoring, es sei denn, Sie verwenden Serverspec
- Härtung: Apache- & Nginx-Härtung erfolgt in separaten Rollen (harden-webserver) +Viper https://asciinema.org/a/28808 https://asciinema.org/a/28845
Lizenz
BSD 2-Klausel
MISP - Malware Information Sharing Platform & Threat Sharing
ansible-galaxy install juju4.misp