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
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
- Agregar la capacidad para que el cliente se conecte a diferentes puertos de servidor según si está realizando respaldo/restauración/validación/listado/eliminación. Estos puertos se basan en: https://github.com/CoffeeITWorks/ansible_burp2_server/issues/11 Compatible desde burp 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.
ansible-galaxy install CoffeeITWorks.ansible_burp2_server