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

Molecule

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  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

O projekcie

ansible role to deploy and maintain burp backup

Zainstaluj
ansible-galaxy install CoffeeITWorks.ansible_burp2_server
Licencja
mit
Pobrania
2.2k
Właściciel
IT Works group