CoffeeITWorks.ansible_burp2_server
始めに
以下のドキュメントを確認してください:
https://github.com/CoffeeITWorks/ansible-generic-help#getting-started
役割の完全なリスト: https://github.com/grke/burp/wiki/Automated-deploy-and-maintenance
テスト
クイックスタート
コントロールマシンにansibleをインストールする(始めにを参照) リモートマシン(またはローカルでansibleを使用している場合)にpython-minimal(Ubuntu 16.04以上)をインストールする
例のインベントリとファイルをコピーする: https://github.com/CoffeeITWorks/ansible-generic-help/tree/master/example1 (リポジトリをダウンロードして例1ディレクトリをコピーできます)
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) が正常にインストールされました
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をご覧ください。
要件
変数の準備
インベントリとプレイブックがあり、役割を呼び出すために使用しますが、プレイブックを実行する前に変数をカスタマイズする必要があります。
ここでは、変数ファイルをgroup_vars
ディレクトリに整理します:
mkdir -p group_vars/burp2_servers
その中に、特定のオプションを追加するグループまたはホストの名前のファイルを追加できます。
例のファイル group_vars/burp2_servers/burp2_server_vars.yml
defaults/main.yml
のすべての変数も確認し、ホスト/グループの変数でデフォルトをオーバーライドできます。
役割の変数: モジュールの完全なリスト
モジュール
Burp UIエージェントの構成
Burp-uiエージェントは別の役割に移動しました: 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
このオプションは、burp_module_agent: true
を使用してburp-ui-agent
のために/etc/burp/burp.conf
を設定します。
defaults/main.yml
のburp_server_ports_per_operation:
を確認して、操作ごとの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
固定リストまたは動的にスクリプトを実行する際に指定できます:
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 var
を使用します。
小さな例:
# ここでも files/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 クライアントがバックアップ全体でxxGbを超えた場合はWARNINGを送信"
- "#soft_quota 全バックアップでxxGbを超過するクライアントにWARNINGを送信"
- "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
この変数は、static varファイル(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は、標準出力および標準エラーをログにリダイレクトするため、すべてのログは /var/logs/supervisor
にあります。
ログも自動的にlogrotateによってローテーションされます。
OSのアップグレード
この役割を使用してコンパイルされたバージョンのburpを使用している場合、Linuxディストリビューションをアップグレードした後は、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バックアップと復元
メインページ: http://burp.grke.org/
マスターブランチのテスト
現在、これらのグループ/ホスト変数を修正する必要があります:
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
を使用してインストールできます。デフォルト/ 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をインストールして起動し、スクリプトを実行します: 復元時にsetattrコマンドを使用できるようにselinuxを無効にします(無効にして再起動すると、許可モードでは機能しません)。
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