CoffeeITWorks.ansible_burp2_server

Comenzando

Revisa la documentación añadida en:

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

Lista completa de roles: https://github.com/grke/burp/wiki/Automated-deploy-and-maintenance

Pruebas

Molecule

Inicio rápido

Instala ansible en tu máquina de control (ver comenzando). Instala python-minimal (para Ubuntu 16.04+) en la máquina remota (o en local si usas ansible localmente).

Copia el inventario y los archivos de ejemplo: https://github.com/CoffeeITWorks/ansible-generic-help/tree/master/example1 (Puedes descargar el repositorio y copiar el directorio example1).

Consulta también Quickstart.md.

Ejemplo de playbook

---

- name: servidores burp2
  become: yes
  become_method: sudo
  hosts: burp2_servers
  roles:
    - role: coffeeitworks.burp2_server
      tags:
        - "burp2_server_all"
        - "burp2_server"

Instala este rol, ejemplo:

ansible-galaxy install -r requirements.yml
- descargando rol 'burp2_server', propiedad de CoffeeITWorks
- descargando rol desde https://github.com/CoffeeITWorks/ansible_burp2_server/archive/master.tar.gz
- extrayendo coffeeitworks.burp2_server a /home/pablo/.ansible/roles/coffeeitworks.burp2_server
- coffeeitworks.burp2_server (master) se instaló correctamente

Modifica la dirección IP en inventory/test.

Ejecuta ansible-playbook:

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

Más adelante podrás personalizar algunas variables agregando tus propios valores en group_vars o host_vars.

Requisitos

Instala este rol si deseas usarlo con centos > 8

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

Nombre del rol

Rol de desplegar y mantener ansible burp2_server.

Este rol construye la versión de burp especificada en defaults/main.yml. También lo configura para que funcione y se mantenga de manera centralizada.

Consulta FEATURES.md.

Instalando este rol


Instala el rol en el sistema:

ansible-galaxy install coffeeitworks.burp2_server

Consulta más información en: https://github.com/CoffeeITWorks/ansible-generic-help#installing-roles.

Requisitos

Preparando las variables


Tenemos un inventario y un playbook para llamar a los roles, pero debemos personalizar las variables antes de ejecutar el playbook.

Aquí organizaremos los archivos de variables en el directorio group_vars:

mkdir -p group_vars/burp2_servers

Dentro de él puedes agregar un archivo con el nombre del grupo o del host donde deseas agregar opciones específicas de este rol.

Ejemplo de archivo group_vars/burp2_servers/burp2_server_vars.yml.

Consulta también todas las variables en defaults/main.yml, puedes sobrescribir cualquier valor predeterminado usando tus variables de host o grupo.

Variables del rol: Lista completa de módulos

Módulos


Configurar Agente UI de Burp

El agente Burp-ui se movió a otro rol: https://github.com/CoffeeITWorks/ansible_burpui_agent.

Se recomienda mucho usar el agente burpui con python3; si conoces un rol para agregar python3/pip3 en centos, por favor contáctame para actualizar esta información.

Configurar eliminación manual de Burp

(Habilitado por defecto)


 burp_manual_delete_enabled: true

Configurar Autoupgrade de Burp

(Habilitado por defecto)


 burp_server_autoupgrade_enabled: true

Puerto por operación

(Habilitado por defecto)


Desde la versión 2.1.10

burp_server_port_per_operation_bool: true

# Variables opcionales predeterminadas para cambiar:
# Estas no necesitan ser cambiadas, pero se muestran aquí las
# predeterminadas que tenemos en 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

Esta opción configurará /etc/burp/burp.conf para burp-ui-agent cuando se use con burp_module_agent: true para mejorar el rendimiento de burp-ui.

Consulta también burp_server_ports_per_operation: en defaults/main.yml para cambiar max_children por operación.

Activar clientes desde el repositorio git


Ejemplo:

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

Solo necesitas archivos por cliente, ejemplo:

  • Contenido del archivo cliente1:

    password = clientpassword dedup_group = trusty . incexc/profile_lnxsrv

Agregar clientes de una lista


Lista opcional de clientes para agregar en una ejecución específica.

burp2_add_manual_clients:
  - name: client_name
    profile: nombre del perfil a usar (opcional), predeterminado: profile_lnxsrv (estos archivos están en el directorio incexc/).
    password: contraseña_cliente (opcional), predeterminado: variable burp_client_password
  - name: second_client

Puedes usarlo como una lista fija o dinámica especificándola durante la ejecución del comando ansible-playbook:

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

Ejemplo usando una variable json en la línea de comando:

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

Creará los archivos:


ansible@ubuntuburp2:~$ cat /etc/burp/clientconfdir/test_manual2
# Gestionado por Ansible

password = password

# Más archivos de configuración pueden ser leídos, usando sintaxis como la siguiente
# (sin el '# ' inicial).
. incexc/profile_win6x
ansible@ubuntuburp2:~$ cat /etc/burp/clientconfdir/test_manual
# Gestionado por Ansible

password = password

# Más archivos de configuración pueden ser leídos, usando sintaxis como la siguiente
# (sin el '# ' inicial).
. incexc/profile_lnxsrv

Configura tus propios perfiles


Consulta el archivo defaults/main.yml para copiar el contenido y crear tus propios perfiles con la variable profiles_templates.

Un pequeño ejemplo:

# Consulta también archivos/incexc, los de este repositorio se copian a /etc/burp/clientconfdir/incexc.
# Esta plantilla crea cada plantilla en: /etc/burp/clientconfdir/incexc/nombre.
profiles_templates:

  - name: profile_lnxsrv
    content:
      - "#hard_quota No permitir backups a clientes con más de xxGb en el backup total"
      - "#hard_quota No permitir respaldos a clientes con más de xxGb en el respaldo total"
      - "hard_quota=65Gb"
      - ""
      - "#soft_quota enviar advertencia a respaldos de clientes con más de xxGb en el backup total"
      - "#soft_quota enviar advertencia a respaldos de clientes con más de xxGb en el respaldo total"
      - "soft_quota=50Gb"
      - ""
      - ". lnxsrv_global_inclusions"
      - ". lnxsrv_global_exclusions"
      - ". compressed_exclusions"
      - ". audio_compressed_exclusions"
      - ". generic_excluded_extensions"
      - ""
      - "cross_all_filesystems=1"
      - "dedup_group = lnxsrv"

Agrega tus propias líneas a burp-server.conf


    burp_server_custom_lines:
    - "someextra=line"

Consulta https://burp.grke.org/docs/manpage.html.

Eliminar clientes de una lista


Ahora hay una función que permite eliminar un cliente de una lista. La variable utilizada es:

burp_remove_clients:
  - name: client_to_remove
  - name: other_client_to_remove

Puedes utilizar esta variable en un archivo de variable estático como: group_vars, o en tiempo de ejecución. Ejemplo:

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

Dependencias

Servicios


Puedes elegir entre [systemd, supervisor, systemd_unprivileged] usando la variable:

burp_sv_type: systemd

Todas las instalaciones de systemd tendrán el servicio 'burp-server'. Y puedes usar systemctl start/stop burp-server para controlar el servicio.

Para controlar el servicio con supervisor, usa lo siguiente

Para reiniciar servicios/daemons instalados, deberías usar:

sudo supervisorctl restart buiagent/burp-server/burp-restore (depende del servicio que quieras reiniciar)

También puedes usar el shell supervisorctl:

sudo supervisorctl

Y luego usar todas las opciones de forma interactiva.

Registros:

Además, supervisord permite redirigir correctamente stdout y stderror a registros, por lo que todos los registros están bajo /var/logs/supervisor.

Los registros también se rotan automáticamente mediante logrotate.

Actualizando tu sistema operativo

Ten en cuenta que al usar una versión compilada de burp con este rol, después de actualizar tu distribución de linux, se recomienda encarecidamente ejecutar la recompilación e instalación de burp.

Ejemplo para ejecutarlo una vez:

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

La variable burp_force_reinstall: yes lo hará por ti.

Licencia

MIT

Información del autor

Este rol fue creado por Diego Daguerre con la colaboración de Pablo Estigarribia (pablodav en gmail). Actualmente, el desarrollador principal es Pablo Estigarribia.

Respaldo y restauración de Burp

Página principal: http://burp.grke.org/

Pruebas en la rama principal

Ahora solo hay que modificar estas variables de grupo/host:

burpsrcext: "zip"
burp_version: "master"

Mejoras de rendimiento

  • optimizaciones de compilación.

Ahora este rol compila con algunas configuraciones mejores para mejoras de rendimiento. También puedes cambiar la variable burp_configure_line con tus propias opciones de configuración. Consulta https://github.com/CoffeeITWorks/ansible_burp2_server/issues/24.

Herramienta de script de respaldo de deajan

  • Agregar herramienta de script de respaldo de @deajan.

La herramienta de script de respaldo se ha añadido como instalación opcional; puedes usar la variable install_backup_tool_script: true para instalarla. Consulta las variables en defaults/main.yml para más opciones. https://github.com/CoffeeITWorks/ansible_burp2_server/issues/26

Consulta https://github.com/grke/burp/wiki/Utils#backup-tool-script.

Actualizaciones

Para actualizar versiones anteriores o también actualizar desde apt/yum/dnf/zypper a este rol, puedes ejecutar el playbook ubicado en: resources/upgrade.yml.

Y ejecutarlo:

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

Colaboradores

Pon tu nombre aquí.

Desarrolladores

¿Cómo probar este rol?

He preparado un script y pruebas de molécula, solo instala docker en tu sistema y arráncalo, luego ejecuta el script: Desactiva selinux para permitir comandos setattr al usar restaurar (desactiva y reinicia, el modo permisivo tampoco funciona).

sudo systemctl start docker
./run_local_molecule_basic.sh

Una vez completadas las pruebas, limpia las instancias creadas con (después de un reinicio también se usa destroy):

./run_local_molecule_destroy.sh

Como utiliza imágenes de docker, no necesitas instalar nada.

Para mantenedores y desarrolladores de burp, también hay un rol separado para realizar pruebas en cualquier servidor burp: https://github.com/CoffeeITWorks/ansible_burp2_tests.

Acerca del proyecto

ansible role to deploy and maintain burp backup

Instalar
ansible-galaxy install CoffeeITWorks.ansible_burp2_server
Licencia
mit
Descargas
2.2k
Propietario
IT Works group