CoffeeITWorks.ansible_burp2_server
Rozpoczęcie
Sprawdź dokumentację dodaną w:
https://github.com/CoffeeITWorks/ansible-generic-help#getting-started
Pełna lista ról: https://github.com/grke/burp/wiki/Automated-deploy-and-maintenance
Testy
Szybki start
Zainstaluj ansible na swoim komputerze kontrolnym (zobacz sekcję rozpoczęcie) Zainstaluj python-minimal (dla Ubuntu 16.04+) na zdalnej maszynie (lub lokalnie, jeśli używasz ansible lokalnie)
Skopiuj przykładowy inwentarz i pliki: https://github.com/CoffeeITWorks/ansible-generic-help/tree/master/example1 (Możesz pobrać repozytorium i skopiować katalog example1)
Zobacz także Quickstart.md
Przykładowy playbook
---
- name: serwery burp2
become: yes
become_method: sudo
# environment: "{{ proxy_env }}" # przykład użycia za proxy
hosts: burp2_servers
# Zdefiniuj listę serwerów i dodaj tagi, aby móc filtrować wywołania tagów:
roles:
- role: coffeeitworks.burp2_server
tags:
- "burp2_server_all"
- "burp2_server"
Zainstaluj tę rolę, przykład:
ansible-galaxy install -r requirements.yml
- pobieranie roli 'burp2_server' od CoffeeITWorks
- pobieranie roli z https://github.com/CoffeeITWorks/ansible_burp2_server/archive/master.tar.gz
- rozpakowywanie coffeeitworks.burp2_server do /home/pablo/.ansible/roles/coffeeitworks.burp2_server
- coffeeitworks.burp2_server (master) został zainstalowany pomyślnie
Zmień adres IP w inventory/test
Uruchom ansible-playbook:
ansible-playbook -i inventory/ roles.burp2_servers.yml -v -u pablo --ask-pass
Później będziesz mógł dostosować niektóre zmienne, dodając własne wartości w zmiennych group_vars
lub host_vars
.
Wymagania
Zainstaluj tę rolę, jeśli chcesz jej używać z centos > 8
- src: https://github.com/robertdebock/ansible-role-powertools
name: ansible-role-powertools
Nazwa roli
ansible burp2_server do wdrożenia i konserwacji.
Ta rola buduje burp w określonej wersji w pliku defaults/main.yml. Również konfiguruje go, aby działał i był utrzymywany w sposób scentralizowany.
Zobacz FEATURES.md
Instalacja tej roli
Zainstaluj rolę w systemie:
ansible-galaxy install coffeeitworks.burp2_server
Sprawdź więcej informacji na: https://github.com/CoffeeITWorks/ansible-generic-help#installing-roles
Wymagania
Przygotowanie zmiennych
Mamy inwentarz i playbook do wywołania ról, ale musimy dostosować zmienne przed uruchomieniem playbooka.
Tutaj zorganizujemy pliki zmiennych w katalogu group_vars
:
mkdir -p group_vars/burp2_servers
Wewnątrz możesz dodać plik o nazwie grupy lub hosta, gdzie chcesz dodać konkretne opcje tej roli.
przykładowy plik group_vars/burp2_servers/burp2_server_vars.yml
Sprawdź także wszystkie zmienne w defaults/main.yml
, możesz nadpisać każdy domyślny za pomocą swoich hostów/zmiennych grupowych.
Zmienne roli: Pełna lista modułów
Moduły
Konfiguracja agenta interfejsu Burp
Agent interfejsu Burp został przeniesiony do innej roli: https://github.com/CoffeeITWorks/ansible_burpui_agent
Zdecydowanie zaleca się używanie burpui-agent z python3, jeśli znasz rolę, aby dodać python3/pip3 w centos, skontaktuj się ze mną, aby zaktualizować te informacje.
Konfiguracja ręcznego usuwania Burp
(W domyśle włączone)
burp_manual_delete_enabled: true
Konfiguracja automatycznej aktualizacji Burp
(W domyśle włączone)
burp_server_autoupgrade_enabled: true
Porty dla operacji
(W domyśle włączone)
Od wersji 2.1.10
- Dodanie możliwości, aby klient łączył się z różnymi portami serwera
w zależności od tego, czy wykonuje backup/odtwarzanie/weryfikację/listowanie/usuwanie. Porty te są oparte na: https://github.com/CoffeeITWorks/ansible_burp2_server/issues/11 Kompatybilne od burp 2.1.10
burp_server_port_per_operation_bool: true
# Domyślne opcjonalne zmienne do zmiany:
# Nie jest konieczne ich zmienianie, ale pokazujemy tutaj
# domyślne, które mamy w defaults/main.yml
burp_server_port_operation_restore: 4975
burp_server_port_operation_verify: 4976
burp_server_port_operation_list: 4977
burp_server_port_operation_delete: 4978
Ta opcja ustawi /etc/burp/burp.conf
dla burp-ui-agent
, gdy używana jest z burp_module_agent: true
, aby poprawić wydajność burp-ui
.
Zobacz również burp_server_ports_per_operation:
w defaults/main.yml
, aby zmienić
max_children na operację.
Aktywacja klientów z repozytorium git
Przykład:
burp_repos:
- { repo: "http://host/group/repo.git", version: "master", dir: "linux_clients"}
Potrzebujesz tylko plików dla klienta, przykład:
zawartość pliku klienta 1:
password = clientpassword dedup_group = trusty . incexc/profile_lnxsrv
Dodawanie klientów z listy
Opcjonalna lista klientów do dodania przy konkretnej wykonaniu
burp2_add_manual_clients:
- name: client_name
profile: nazwa profilu do użycia (opcjonalnie), domyślnie: profile_lnxsrv (te pliki są w katalogu incexc/).
password: client_password (opcjonalnie), domyślnie: zmienna burp_client_password
- name: second_client
Możesz użyć tego jako stałej listy lub dynamicznie określić ją podczas wykonania polecenia ansible-playbook
:
http://docs.ansible.com/ansible/playbooks_variables.html#passing-variables-on-the-command-line
Przykład użycia zmiennych w formacie json w linii poleceń:
--extra-vars '{ "burp2_add_manual_clients": [ { "name": "test_manual" }, { "name": "test_manual2", "profile": "profile_win6x" } ] }'
Spowoduje to utworzenie plików:
ansible@ubuntuburp2:~$ cat /etc/burp/clientconfdir/test_manual2
# Zarządzane przez Ansible
password = password
# Więcej plików konfiguracyjnych może być odczytanych, używając składni jak poniżej
# (bez wiodącego '# ').
. incexc/profile_win6x
ansible@ubuntuburp2:~$ cat /etc/burp/clientconfdir/test_manual
# Zarządzane przez Ansible
password = password
# Więcej plików konfiguracyjnych może być odczytanych, używając składni jak poniżej
# (bez wiodącego '# ').
. incexc/profile_lnxsrv
Skonfiguruj własne profile
Sprawdź plik defaults/main.yml
, aby skopiować treść i utworzyć własne profile z zmienną profiles_templates
.
Mały przykład:
# Zobacz także pliki/incexc, te w tym repozytorium są kopiowane do /etc/burp/clientconfdir/incexc
# Ten szablon tworzy każdy szablon w: /etc/burp/clientconfdir/incexc/name
profiles_templates:
- name: profile_lnxsrv
content:
- "#hard_quota Nie pozwalaj na kopie zapasowe klientów z więcej niż xxGb w całkowitej kopii zapasowej"
- "#hard_quota Do not allow to backup clients with more than xxGb in the whole backup"
- "hard_quota=65Gb"
- ""
- "#soft_quota wysyłaj WARNING do klientów kopii zapasowej z więcej niż xxGb w całkowitej kopii zapasowej"
- "#soft_quota send WARNING to backups clients with more than xxGb in the whole backup"
- "soft_quota=50Gb"
- ""
- ". lnxsrv_global_inclusions"
- ". lnxsrv_global_exclusions"
- ". compressed_exclusions"
- ". audio_compressed_exclusions"
- ". generic_excluded_extensions"
- ""
- "cross_all_filesystems=1"
- "dedup_group = lnxsrv"
Dodaj własne linie do burp-server.conf
burp_server_custom_lines:
- "someextra=line"
Zobacz https://burp.grke.org/docs/manpage.html
Usuwanie klientów z listy
Teraz jest funkcja umożliwiająca usunięcie klienta z listy, zmienna używana to:
burp_remove_clients:
- name: client_to_remove
- name: other_client_to_remove
Możesz użyć tej zmiennej w statycznym pliku zmiennych, jak: group_vars
, lub w czasie rzeczywistym. Przykład:
ansible-playbook --extra-vars '{ "burp_remove_clients": [ { "name": "test_manual" }, { "name": "test_manual2" } ] }' -i inventory roles.burp_servers.yml -u user -k
Zależności
Usługi
Możesz wybierać między [systemd, supervisor, systemd_unprivileged] używając zmiennej:
burp_sv_type: systemd
Wszystkie instalacje systemd usługę o nazwie 'burp-server'. Możesz użyć systemctl start/stop burp-server
, aby kontrolować usługę.
Aby kontrolować usługę za pomocą supervisor, użyj następującego
Aby ponownie uruchomić zainstalowane usługi/demony, powinieneś użyć:
sudo supervisorctl restart buiagent/burp-server/burp-restore (w zależności od usługi, którą chcesz ponownie uruchomić)
możesz także użyć powłoki supervisorctl:
sudo supervisorctl
A następnie interaktywnie korzystać ze wszystkich opcji.
Logi:
Supervisor pozwala również na odpowiednie przekierowanie stdout i stderror do logów, więc wszystkie logi są pod /var/logs/supervisor
.
Logi są także rotowane automatycznie przez logrotate.
Aktualizacja systemu operacyjnego
Pamiętaj, gdy używasz skompilowanej wersji burp z tą rolą, po aktualizacji dystrybucji linuxa bardzo zaleca się ponowne skompilowanie i instalację burp.
Przykład uruchomienia tego raz:
ansible-playbook -i production burp-servers.yml -l client -e "burp_force_reinstall=yes"
Zmienna burp_force_reinstall: yes
zrobi to za Ciebie.
Licencja
MIT
Informacje o autorze
Ta rola została stworzona przez Diego Daguerre przy współpracy z Pablo Estigarribia (pablodav at gmail) Aktualnie głównym deweloperem jest Pablo Estigarribia.
Backup i przywracanie Burp
Strona główna: http://burp.grke.org/
Testowanie gałęzi głównej
Teraz wystarczy zmodyfikować grupy/zmienne hosta:
burpsrcext: "zip"
burp_version: "master"
Udoskonalenia wydajności
- optymalizacje kompilacji.
Obecnie ta rola kompiluje z lepszymi konfiguracjami dla poprawy wydajności, możesz także zmienić zmienną burp_configure_line
swoim własnym flagami konfiguracyjnymi.
Zobacz https://github.com/CoffeeITWorks/ansible_burp2_server/issues/24.
Narzędzie skryptu kopii zapasowej od deajana
- Dodaj narzędzie skryptu kopii zapasowej od @deajan
narzędzie skryptu kopii zapasowej jest dodawane jako opcjonalna instalacja, możesz użyć zmiennej install_backup_tool_script: true
, aby je zainstalować, sprawdź domyślne zmienne w defaults/main.yml w celu uzyskania dodatkowych opcji.
https://github.com/CoffeeITWorks/ansible_burp2_server/issues/26
Zobacz https://github.com/grke/burp/wiki/Utils#backup-tool-script
Aktualizacje
Aby zaktualizować poprzednią wersję lub również przeprowadzić aktualizację z instalacji apt/yum/dnf/zypper do tej roli, możesz uruchomić playbook w: resources/upgrade.yml
I uruchomić go
ansible-playbook -i inventory upgrade.yml -u username -k
Współpracownicy
Umieść tutaj swoje imię.
Deweloperzy
Jak przetestować tę rolę?
Przygotowałem skrypt oraz testy molekularne, wystarczy zainstalować docker na swoim systemie i go uruchomić, a następnie uruchomić skrypt: Wyłącz selinux, aby umożliwić komendy setattr podczas używania przywracania (wyłącz i uruchom ponownie, permissive też nie działa)
sudo systemctl start docker
./run_local_molecule_basic.sh
Gdy testy się zakończą, oczyść utworzone instancje (po restartowaniu również użyj destroy):
./run_local_molecule_destroy.sh
Ponieważ używa obrazów docker, nie musisz nic instalować.
Dla osób zajmujących się burp i deweloperów istnieje również osobna rola do przeprowadzania testów na dowolnym serwerze burp: https://github.com/CoffeeITWorks/ansible_burp2_tests
ansible-galaxy install CoffeeITWorks.ansible_burp2_server