CoffeeITWorks.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 目录)
示例剧本
---
- name: burp2 服务器
become: yes
become_method: sudo
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) 安装成功
修改 inventory/test
中的 IP 地址
运行 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 部署和维护角色。
该角色构建在 defaults/main.yml 中指定的 burp 版本。
还将其配置为以集中方式进行操作和维护。
请查看 FEATURES.md
安装此角色
在系统上安装角色:
ansible-galaxy install coffeeitworks.burp2_server
更多信息请访问:https://github.com/CoffeeITWorks/ansible-generic-help#installing-roles
要求
准备变量
我们有一个 inventory 和一个 playbook 来调用角色,但在运行 playbook 之前,我们必须自定义 变量。
在此处,我们将变量文件组织到 group_vars
目录中:
mkdir -p group_vars/burp2_servers
在其中可以添加一个文件,文件名为组或主机的名称,以添加此角色的特定选项。
示例文件 group_vars/burp2_servers/burp2_server_vars.yml
另请检查 defaults/main.yml
中的所有变量,您可以使用您的 host/group_vars 覆盖任何默认变量。
角色变量:完整的模块列表
模块
配置 Burp UI Agent
Burp-ui agent 已移动到另一个角色: https://github.com/CoffeeITWorks/ansible_burpui_agent
强烈建议使用 python3 的 burpui-agent,如果您知道如何在 CentOS 上添加 python3/pip3,请与我联系以更新此信息。
配置 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
# 默认可选变量以更改:
# 这些不需要更改,但显示我们在 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
此选项 将设置 /etc/burp/burp.conf
为 burp-ui-agent
使用时,以提高 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"}
您只需为每个客户端创建文件,例如:
client1 文件内容:
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 变量
。
一个简单的示例:
# 另见 files/incexc,该库中的这些文件会复制到 /etc/burp/clientconfdir/incexc
# 此模板在:/etc/burp/clientconfdir/incexc/name 中创建每个模板
profiles_templates:
- name: profile_lnxsrv
content:
- "#hard_quota 不允许备份总备份超过 xxGb 的客户端"
- "#hard_quota Do not allow to backup clients with more than xxGb in the whole backup"
- "hard_quota=65Gb"
- ""
- "#soft_quota 向总备份超过 xxGb 的客户发送警告"
- "#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"
添加您自己的 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
控制服务。
使用监督者控制服务
要重新启动已安装的服务/守护进程,您应使用:
sudo supervisorctl restart buiagent/burp-server/burp-restore (取决于您想要重新启动的服务)
您还可以使用 supervisorctl shell:
sudo supervisorctl
然后交互式使用所有选项。
日志:
supervisord 还允许适当的 stdout 和 stderror 日志重定向,因此所有日志位于 /var/logs/supervisor
下。
日志还会自动通过 logrotate 轮换。
升级操作系统
请注意,当使用此角色编译的 burp 版本时,升级 Linux 发行版后,强烈建议运行 recompilation 和 burp 安装。
示例仅运行一次:
ansible-playbook -i production burp-servers.yml -l client -e "burp_force_reinstall=yes"
变量 burp_force_reinstall: yes
将为您完成此操作。
许可证
MIT
作者信息
此角色由 Diego Daguerre 创建,Pablo Estigarribia(pablodav at gmail)合作完成。
目前主要开发者为 Pablo Estigarribia。
Burp 备份和恢复
测试主分支
现在只需修改这些以进行组/主机变量:
burpsrcext: "zip"
burp_version: "master"
性能改进
- 编译优化。
现在这个角色使用一些更好的配置进行编译,以提高性能改进,您还可以更改变量 burp_configure_line
,也可使用自己的配置标志。
请参见 https://github.com/CoffeeITWorks/ansible_burp2_server/issues/24.
Deajan 的备份脚本工具
- 添加 @deajan 的备份脚本工具。
backup_script_tool 作为可选安装添加,您可以使用变量 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 的 playbook。
并运行它
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