ansible_burp2_server
Начало работы
Проверьте документацию по адресу:
https://github.com/CoffeeITWorks/ansible-generic-help#getting-started
Полный список ролей: https://github.com/grke/burp/wiki/Automated-deploy-and-maintenance
Тесты
Быстрый старт
Установите 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-galaxy install CoffeeITWorks/ansible_burp2_server