CoffeeITWorks.ansible_burp2_server
Erste Schritte
Überprüfen Sie die Dokumentation unter:
https://github.com/CoffeeITWorks/ansible-generic-help#getting-started
Vollständige Liste der Rollen: https://github.com/grke/burp/wiki/Automated-deploy-and-maintenance
Tests
Schnellstart
Installieren Sie Ansible auf Ihrem Steuercomputer (siehe Erste Schritte).
Installieren Sie python-minimal (für Ubuntu 16.04+) auf dem Remote-Computer (oder lokal, wenn Sie Ansible lokal verwenden).
Kopieren Sie die Beispieldatei und die Dateien: https://github.com/CoffeeITWorks/ansible-generic-help/tree/master/example1 (Sie können das Repository herunterladen und das Beispielverzeichnis example1 kopieren.)
Siehe auch Quickstart.md
Beispiel-Playbook
---
- name: burp2-Server
become: yes
become_method: sudo
hosts: burp2_servers
roles:
- role: coffeeitworks.burp2_server
tags:
- "burp2_server_all"
- "burp2_server"
Installieren Sie diese Rolle, Beispiel:
ansible-galaxy install -r requirements.yml
- downloading role 'burp2_server', owned by CoffeeITWorks
- downloading role from https://github.com/CoffeeITWorks/ansible_burp2_server/archive/master.tar.gz
- extracting coffeeitworks.burp2_server to /home/pablo/.ansible/roles/coffeeitworks.burp2_server
- coffeeitworks.burp2_server (master) wurde erfolgreich installiert
Ändern Sie die IP-Adresse in inventory/test
.
Führen Sie das Ansible-Playbook aus:
ansible-playbook -i inventory/ roles.burp2_servers.yml -v -u pablo --ask-pass
Später können Sie einige Variablen anpassen, indem Sie Ihre eigenen Werte in group_vars
Variablen oder host_vars
hinzufügen.
Anforderungen
Installieren Sie diese Rolle, wenn Sie sie mit CentOS > 8 verwenden möchten:
- src: https://github.com/robertdebock/ansible-role-powertools
name: ansible-role-powertools
Rollenname
Ansible burp2_server Bereitstellungs- und Wartungsrolle.
Diese Rolle erstellt die burp-Version, die in defaults/main.yml angegeben ist. Sie konfiguriert auch, sodass sie zentral verwaltet wird.
Siehe FEATURES.md
Installation dieser Rolle
Installieren Sie die Rolle im System:
ansible-galaxy install coffeeitworks.burp2_server
Weitere Informationen finden Sie unter: https://github.com/CoffeeITWorks/ansible-generic-help#installing-roles
Anforderungen
Vorbereitung der Variablen
Wir haben ein Inventory und ein Playbook, um die Rollen aufzurufen, müssen aber die Variablen anpassen, bevor wir das Playbook ausführen.
Hier organisieren wir die Variablen in das Verzeichnis group_vars
:
mkdir -p group_vars/burp2_servers
Darin können Sie eine Datei mit dem Namen der Gruppe oder des Hosts hinzufügen, bei dem Sie spezifische Optionen dieser Rolle hinzufügen möchten.
Beispiel-Datei group_vars/burp2_servers/burp2_server_vars.yml
Überprüfen Sie auch alle Variablen in defaults/main.yml
. Sie können jede Standardvariable mit Ihrer host/group_vars überschreiben.
Rollenvariablen: Vollständige Liste der Module
Module
Burp UI Agent konfigurieren
Der Burp-UI-Agent wurde in eine andere Rolle verschoben: https://github.com/CoffeeITWorks/ansible_burpui_agent
Es wird dringend empfohlen, burpui-agent mit Python3 zu verwenden. Wenn Sie eine Rolle kennen, um Python3/pip3 auf CentOS hinzuzufügen, kontaktieren Sie mich bitte, um diese Informationen zu aktualisieren.
Burp manuelles Löschen konfigurieren
(Standardmäßig aktiviert)
burp_manual_delete_enabled: true
Burp Autoupgrade konfigurieren
(Standardmäßig aktiviert)
burp_server_autoupgrade_enabled: true
Port pro Operation
(Standardmäßig aktiviert)
Seit Version 2.1.10
- Fügen Sie die Möglichkeit hinzu, dass der Client sich mit verschiedenen Serverports verbindet, je nachdem, ob er ein Backup / eine Wiederherstellung / Überprüfung / Auflistung / Löschung durchführt. Diese Ports basieren auf: https://github.com/CoffeeITWorks/ansible_burp2_server/issues/11 Kompatibel seit Burp 2.1.10
burp_server_port_per_operation_bool: true
# Standardoptionale Variablen zum Ändern:
# Diese müssen nicht geändert werden, aber hier sind die
# Standardwerte, die wir in defaults/main.yml haben:
burp_server_port_operation_restore: 4975
burp_server_port_operation_verify: 4976
burp_server_port_operation_list: 4977
burp_server_port_operation_delete: 4978
Diese Option richtet /etc/burp/burp.conf
für burp-ui-agent
ein, wenn sie mit burp_module_agent: true
verwendet wird, um die Leistung von burp-ui
zu verbessern.
Überprüfen Sie auch burp_server_ports_per_operation:
in defaults/main.yml
, um die max_children pro Operation zu ändern.
Clients aus dem Git-Repository aktivieren
Beispiel:
burp_repos:
- { repo: "http://host/group/repo.git", version: "master", dir: "linux_clients"}
Sie benötigen nur Dateien pro Client. Beispiel:
- client1 Dateiinhalte:
password = clientpassword
dedup_group = trusty
. incexc/profile_lnxsrv
Clients aus einer Liste hinzufügen
Optionale Liste von Clients, die bei einer spezifischen Ausführung hinzugefügt werden sollen.
burp2_add_manual_clients:
- name: client_name
profile: profile name to use (optional), default: profile_lnxsrv (diese Dateien befinden sich im incexc/-Verzeichnis).
password: client_password (optional), default: burp_client_password var
- name: second_client
Sie können es als feste Liste oder dynamisch angeben, während Sie den ansible-playbook
-Befehl ausführen:
http://docs.ansible.com/ansible/playbooks_variables.html#passing-variables-on-the-command-line
Beispiel unter Verwendung von JSON-ähnlichen Variablen in der Befehlszeile:
--extra-vars '{ "burp2_add_manual_clients": [ { "name": "test_manual" }, { "name": "test_manual2", "profile": "profile_win6x" } ] }'
Es werden die Dateien erstellt:
ansible@ubuntuburp2:~$ cat /etc/burp/clientconfdir/test_manual2
# Ansible managed
password = password
# Zusätzliche Konfigurationsdateien können gelesen werden, mit einer Syntax wie der folgenden
# (ohne das führende '# ').
. incexc/profile_win6x
Eigene Profile konfigurieren
Überprüfen Sie die Datei defaults/main.yml
, um den Inhalt zu kopieren und Ihre eigenen Profile mit der profiles_templates
-Var zu erstellen.
Ein kleines Beispiel:
profiles_templates:
- name: profile_lnxsrv
content:
- "#hard_quota Nicht erlauben Backup von Clients mit mehr als xxGb im gesamten Backup"
- "hard_quota=65Gb"
Fügen Sie Ihre eigenen Zeilen zu burp-server.conf hinzu
burp_server_custom_lines:
- "someextra=line"
Siehe https://burp.grke.org/docs/manpage.html
Clients aus einer Liste entfernen
Es gibt jetzt eine Funktion, mit der Sie einen Client aus einer Liste entfernen können. Die verwendete Variable ist:
burp_remove_clients:
- name: client_to_remove
- name: other_client_to_remove
Sie können diese Variable in einer statischen Var-Datei wie group_vars
oder zur Laufzeit verwenden. Beispiel:
ansible-playbook --extra-vars '{ "burp_remove_clients": [ { "name": "test_manual" }, { "name": "test_manual2" } ] }' -i inventory roles.burp_servers.yml -u user -k
Abhängigkeiten
Dienste
Sie können zwischen [systemd, supervisor, systemd_unprivileged] mit der Variablen wählen:
burp_sv_type: systemd
Alle Systemd-Installationen verwenden den Dienst 'burp-server' Namen. Und Sie können systemctl start/stop burp-server
verwenden, um den Dienst zu steuern.
Um Dienste/Dämonen zu verwalten, verwenden Sie Supervisor:
Um installierte Dienste/Dämonen neu zu starten, sollten Sie Folgendes verwenden:
sudo supervisorctl restart buiagent/burp-server/burp-restore (hängt von dem Dienst ab, den Sie neu starten möchten)
Logs:
Supervisor erlaubt auch eine korrekte Umleitung von stdout und stderror in Logs, sodass alle Logs unter /var/logs/supervisor
sind.
Logs werden auch automatisch von logrotate rotiert.
Aktualisierung Ihrer OS
Bitte beachten Sie, dass es, wenn Sie die kompilierte Version von burp mit dieser Rolle verwenden, nach einem Upgrade Ihrer Linux-Distribution sehr empfohlen wird, die Kompilierung und Installation von burp erneut durchzuführen.
Beispiel, um es einmal auszuführen:
ansible-playbook -i production burp-servers.yml -l client -e "burp_force_reinstall=yes"
Die Variable burp_force_reinstall: yes
wird dies für Sie tun.
Lizenz
MIT
Autoreninformation
Diese Rolle wurde von Diego Daguerre mit der Zusammenarbeit von Pablo Estigarribia (pablodav at gmail) erstellt. Der Hauptentwickler ist derzeit Pablo Estigarribia.
Burp Backup und Wiederherstellung
Hauptseite: http://burp.grke.org/
Testen des Master-Zweigs
Nun müssen nur die Gruppen-/Host-Variablen geändert werden:
burpsrcext: "zip"
burp_version: "master"
Leistungsverbesserungen
- Optimierungen beim Kompilieren.
Diese Rolle wird nun mit einigen besseren Konfigurationen für Leistungsverbesserungen kompiliert, Sie können auch die Variable burp_configure_line
mit Ihren eigenen Konfigurationsflags ändern. Siehe https://github.com/CoffeeITWorks/ansible_burp2_server/issues/24.
Backup-Skript-Tool von deajan
Das Backup-Skript-Tool von @deajan wurde als optionale Installation hinzugefügt. Sie können die Variable install_backup_tool_script: true
setzen, um es zu installieren. Weitere Optionen finden Sie in defaults/main.yml.
https://github.com/CoffeeITWorks/ansible_burp2_server/issues/26
Aktualisierungen
Um aus einer vorherigen Version oder auch von der apt/yum/dnf/zypper-Installation auf diese Rolle zu aktualisieren, können Sie das Playbook in resources/upgrade.yml ausführen.
Führen Sie es aus:
ansible-playbook -i inventory upgrade.yml -u username -k
Mitwirkende
Setzen Sie hier Ihren Namen ein.
Entwickler
Wie testet man diese Rolle?
Ich habe ein Skript und Molekül-Tests vorbereitet. Installieren Sie einfach Docker auf Ihrem System und starten Sie es, und führen Sie dann das Skript aus: Deaktivieren Sie selinux, um die setattr-Befehle beim Wiederherstellen zuzulassen (deaktivieren und neu starten, permissiv funktioniert auch nicht).
sudo systemctl start docker
./run_local_molecule_basic.sh
Sobald die Tests abgeschlossen sind, löschen Sie die erstellten Instanzen mit (nach einem Neustart löschen Sie auch):
./run_local_molecule_destroy.sh
Da es Docker-Images verwendet, brauchen Sie nichts zu installieren.
Für Burp-Wartende und -Entwickler gibt es auch eine separate Rolle, um Tests auf jedem Burp-Server durchzuführen: https://github.com/CoffeeITWorks/ansible_burp2_tests
ansible-galaxy install CoffeeITWorks.ansible_burp2_server