ansible_burp2_server

Начало работы

Проверьте документацию по адресу:

https://github.com/CoffeeITWorks/ansible-generic-help#getting-started

Полный список ролей: https://github.com/grke/burp/wiki/Automated-deploy-and-maintenance

Тесты

Molecule

Быстрый старт

Установите ansible на вашем управляющем сервере (Смотрите раздел "Начало работы"). Установите python-minimal (для Ubuntu 16.04+) на удалённом сервере (или локально, если вы используете ansible локально).

Скопируйте пример инвентаря и файлов: https://github.com/CoffeeITWorks/ansible-generic-help/tree/master/example1 (Вы можете скачать репозиторий и скопировать папку example1)

Смотрите также Quickstart.md

Пример плейбука

---

- name: серверы burp2
  become: yes
  become_method: sudo
  # environment: "{{ proxy_env }}"  # пример для использования за прокси
  hosts: burp2_servers
  # Определите список серверов и добавьте теги, чтобы вы могли фильтровать вызовы по тегу:
  roles:
    - role: coffeeitworks.burp2_server
      tags:
        - "burp2_server_all"
- "burp2_server"

Установите эту роль, пример:

ansible-galaxy install -r requirements.yml
- скачивание роли 'burp2_server', созданной CoffeeITWorks
- скачивание роли с https://github.com/CoffeeITWorks/ansible_burp2_server/archive/master.tar.gz
- извлечение coffeeitworks.burp2_server в /home/pablo/.ansible/roles/coffeeitworks.burp2_server
- coffeeitworks.burp2_server (master) была успешно установлена

Измените IP-адрес в inventory/test

Запустите ansible-playbook:

ansible-playbook -i inventory/ roles.burp2_servers.yml -v -u pablo --ask-pass

Позже вы сможете настроить некоторые переменные, добавив свои значения в переменные group_vars или host_vars.

Требования

Установите эту роль, если хотите использовать её с centos > 8

- src: https://github.com/robertdebock/ansible-role-powertools
  name: ansible-role-powertools

Имя роли

Роль развертывания и обслуживания ansible burp2_server.

Эта роль строит версию burp, указанную в defaults/main.yml. Также настраивает её для стабильной работы и централизованного управления.

Смотрите FEATURES.md

Установка этой роли


Установите роль в системе:

ansible-galaxy install coffeeitworks.burp2_server

Дополнительная информация: https://github.com/CoffeeITWorks/ansible-generic-help#installing-roles

Требования

Подготовка переменных


У нас есть инвентарь и плейбук для вызова ролей, но перед запуском плейбука мы должны настроить переменные.

Здесь мы организуем файлы переменных в директории group_vars:

mkdir -p group_vars/burp2_servers

Внутри вы можете добавить файл с именем группы или хоста, куда хотите добавить конкретные параметры этой роли.

пример файла group_vars/burp2_servers/burp2_server_vars.yml

Также проверьте все переменные в defaults/main.yml, вы можете переопределить любые значения по умолчанию, используя ваши переменные host/group_vars.

Переменные роли: Полный список модулей

Модули


Настройка агента Burp UI

Агент burp-ui был перенесён в другую роль: https://github.com/CoffeeITWorks/ansible_burpui_agent

Рекомендуется использовать burpui-агент с python3, если вы знаете роль для установки python3/pip3 на centos, пожалуйста, свяжитесь со мной, чтобы обновить эту информацию.

Настройка ручного удаления Burp

(Включено по умолчанию)


 burp_manual_delete_enabled: true

Настройка автоматического обновления Burp

(Включено по умолчанию)


 burp_server_autoupgrade_enabled: true

Порт для каждой операции

(Включено по умолчанию)


С версии 2.1.10

  • Добавлена возможность клиенту подключаться к различным портам серверов в зависимости от того, выполняется ли резервное копирование/восстановление/проверка/список/удаление. Эти порты основаны на: https://github.com/CoffeeITWorks/ansible_burp2_server/issues/11 Совместимо начиная с burp 2.1.10
burp_server_port_per_operation_bool: true

# Значения по умолчанию, которые можно изменить:
# Эти значения не обязательно изменять, но показаны здесь по умолчанию
burp_server_port_operation_restore: 4975
burp_server_port_operation_verify: 4976
burp_server_port_operation_list: 4977
burp_server_port_operation_delete: 4978

Эта опция настроит /etc/burp/burp.conf для burp-ui-agent, когда используется с burp_module_agent: true, чтобы улучшить производительность burp-ui.

Также проверьте burp_server_ports_per_operation: в defaults/main.yml, чтобы изменить max_children для каждой операции.

Активация клиентов из git-репозитория


Пример:

 burp_repos:
  - { repo: "http://host/group/repo.git", version: "master", dir: "linux_clients"}

Вам нужны файлы для каждого клиента, пример:

  • содержимое файла клиента1:

    password = clientpassword dedup_group = trusty . incexc/profile_lnxsrv

Добавление клиентов из списка


Опциональный список клиентов для добавления при конкретном выполнении

burp2_add_manual_clients:
  - name: client_name
    profile: имя профиля для использования (необязательно), по умолчанию: profile_lnxsrv (эти файлы находятся в директории incexc/).
    password: client_password (необязательно), по умолчанию: переменная burp_client_password
  - name: second_client

Вы можете использовать это как фиксированный список или динамически указывать его во время выполнения команды ansible-playbook:

http://docs.ansible.com/ansible/playbooks_variables.html#passing-variables-on-the-command-line

Пример использования переменной в формате json в командной строке:

--extra-vars '{ "burp2_add_manual_clients": [ { "name": "test_manual" }, { "name": "test_manual2", "profile": "profile_win6x" } ] }'

Это создаст файлы:


ansible@ubuntuburp2:~$ cat /etc/burp/clientconfdir/test_manual2
# Управляется Ansible

password = password

# Дополнительные конфигурационные файлы могут быть прочитаны, используя следующий синтаксис
# (без начального '# ').
. incexc/profile_win6x
ansible@ubuntuburp2:~$ cat /etc/burp/clientconfdir/test_manual
# Управляется Ansible

password = password

# Дополнительные конфигурационные файлы могут быть прочитаны, используя следующий синтаксис
# (без начального '# ').
. incexc/profile_lnxsrv

Настройте свои профили


Проверьте файл defaults/main.yml, чтобы скопировать содержимое и создать свои собственные профили с переменной profiles_templates.

Небольшой пример:

# Смотрите также файлы/incexc, те, что в этом репозитории, копируются в /etc/burp/clientconfdir/incexc
# Этот шаблон создаёт каждый шаблон в: /etc/burp/clientconfdir/incexc/name
profiles_templates:

  - name: profile_lnxsrv
    content:
      - "#hard_quota Не разрешать резервные копии клиентам с более чем xxGb в общей резервной копии"
      - "#hard_quota Не разрешать резервным копиям клиентов с более чем xxGb в общей резервной копии"
      - "hard_quota=65Gb"
      - ""
      - "#soft_quota отправлять WARNING резервным копиям клиентов с более чем xxGb в общей резервной копии"
      - "#soft_quota отправлять WARNING резервным копиям клиентов с более чем xxGb в общей резервной копии"
      - "soft_quota=50Gb"
      - ""
      - ". lnxsrv_global_inclusions"
      - ". lnxsrv_global_exclusions"
      - ". compressed_exclusions"
      - ". audio_compressed_exclusions"
      - ". generic_excluded_extensions"
      - ""
      - "cross_all_filesystems=1"
      - "dedup_group = lnxsrv"

Добавьте свои собственные строки в burp-server.conf


    burp_server_custom_lines:
    - "someextra=line"

Смотрите https://burp.grke.org/docs/manpage.html

Удаление клиентов из списка


Теперь есть возможность удалить клиента из списка, используемая переменная:

burp_remove_clients:
  - name: client_to_remove
  - name: other_client_to_remove

Вы можете использовать эту переменную в статическом файле, например: group_vars, или во время выполнения. Пример:

ansible-playbook --extra-vars '{ "burp_remove_clients": [ { "name": "test_manual" }, { "name": "test_manual2" } ] }' -i inventory roles.burp_servers.yml -u user -k

Зависимости

Сервисы


Вы можете выбрать между [systemd, supervisor, systemd_unprivileged], используя переменную:

burp_sv_type: systemd

Все установки systemd создают сервис с именем 'burp-server'. И вы можете использовать systemctl start/stop burp-server, чтобы управлять сервисом.

Для управления сервисом с помощью supervisor, используйте следующее

Чтобы перезапустить установленные службы/демоны, вам следует использовать:

sudo supervisorctl restart buiagent/burp-server/burp-restore  (в зависимости от сервиса, который вы хотите перезапустить)

вы также можете использовать оболочку supervisorctl:

sudo supervisorctl

А затем интерактивно использовать все опции.

Логи:

Кроме того, supervisord позволяет корректно перенаправлять stdout и stderror в логи, поэтому все логи находятся в /var/logs/supervisor.

Логи также автоматически вращаются с помощью logrotate.

Обновление вашей ОС

Обратите внимание, что при использовании скомпилированной версии burp с этой ролью, после обновления вашего дистрибутива Linux настоятельно рекомендуется выполнить повторную компиляцию и установку burp.

Пример для выполнения одноразово:

ansible-playbook -i production burp-servers.yml -l client -e "burp_force_reinstall=yes"

Переменная burp_force_reinstall: yes сделает это за вас.

Лицензия

MIT

Информация об авторах

Эта роль была создана Диего Дагерре при сотрудничестве с Пабло Эстигабриа (pablodav at gmail). В настоящее время основным разработчиком является Пабло Эстигабриа.

Резервное копирование и восстановление Burp

Главная страница: http://burp.grke.org/

Тестирование основной ветки

Теперь есть только необходимость изменить следующие переменные для групп/хостов:

burpsrcext: "zip"
burp_version: "master"

Улучшения производительности

  • Оптимизация компиляции.

Теперь эта роль компилируется с лучшими настройками для улучшения производительности, вы также можете изменить переменную burp_configure_line с вашими собственными флагами настройки. Смотрите https://github.com/CoffeeITWorks/ansible_burp2_server/issues/24.

Инструмент скрипта резервного копирования от deajan

  • Добавлен инструмент скрипта резервного копирования от @deajan.

Инструмент скрипта резервного копирования добавляется как опциональная установка, вы можете использовать переменную install_backup_tool_script: true, чтобы установить его, смотрите переменные defaults/main.yml для получения дополнительных параметров. https://github.com/CoffeeITWorks/ansible_burp2_server/issues/26

Смотрите https://github.com/grke/burp/wiki/Utils#backup-tool-script

Обновления

Чтобы обновить предыдущую версию или также перейти с apt/yum/dnf/zypper установки на эту роль, вы можете запустить плейбук, расположенный в: resources/upgrade.yml.

И выполните его

ansible-playbook -i inventory upgrade.yml -u username -k

Сотрудники

Поместите здесь ваше имя.

Разработчики

Как протестировать эту роль?

Я подготовил скрипт и молекулярные тесты, просто установите docker в вашей системе и запустите его, затем выполните скрипт: Отключите selinux, чтобы разрешить команды setattr при восстановлении (выключите и перезагрузите, пермиссивный режим также не работает).

sudo systemctl start docker
./run_local_molecule_basic.sh

После завершения тестов очистите созданные экземпляры с помощью (после перезагрузки также используйте destroy):

./run_local_molecule_destroy.sh

Поскольку используются образы docker, вам не нужно ничего устанавливать.

Для мейнтейнеров и разработчиков burp также есть отдельная роль для выполнения тестов на любом сервере burp: https://github.com/CoffeeITWorks/ansible_burp2_tests

О проекте

ansible role to deploy and maintain burp backup

Установить
ansible-galaxy install CoffeeITWorks/ansible_burp2_server
Лицензия
mit
Загрузки
2216
Владелец
IT Works group