... | ... | @@ -25,15 +25,15 @@ your own client using the [[RPC API]]._ |
|
|
* [Security considerations](#security)
|
|
|
* [Help output](#help)
|
|
|
|
|
|
## <a id="setup" href="#setup">Setup</a>
|
|
|
## <a name="setup" href="#setup">Setup</a>
|
|
|
|
|
|
### <a id="setup-simple" href="#setup-simple">Simple</a>
|
|
|
### <a name="setup-simple" href="#setup-simple">Simple</a>
|
|
|
|
|
|
Starting a Dispatcher can be as simple as running: `arachni_rpcd`
|
|
|
|
|
|
This will bind on `localhost:7331` by default.
|
|
|
|
|
|
### <a id="setup-grid" href="#setup-grid">Grid</a>
|
|
|
### <a name="setup-grid" href="#setup-grid">Grid</a>
|
|
|
|
|
|
A grid is a network of interconnected Dispatchers which can be quite useful when
|
|
|
dealing with large workloads.
|
... | ... | @@ -46,7 +46,7 @@ In order to connect Dispatchers into a Grid you'll need to: |
|
|
|
|
|
After that, they will build and maintain their network themselves.
|
|
|
|
|
|
#### <a id="setup-grid-load-balancing" href="#setup-grid-load-balancing">Load balancing</a>
|
|
|
#### <a name="setup-grid-load-balancing" href="#setup-grid-load-balancing">Load balancing</a>
|
|
|
|
|
|
Load balancing is the default operation of the Grid; nomatter which member receives
|
|
|
the [dispatch](http://rubydoc.info/github/Arachni/arachni/Arachni/RPC/Server/Dispatcher#dispatch-instance_method) call, the Instance will be provided by the least burdened member.
|
... | ... | @@ -58,7 +58,7 @@ To (un)favor certain Dispatchers you can use the `--weight` option, the given fl |
|
|
be multiplied against the load-balancing score of a Dispatcher and that product will serve
|
|
|
as the new score -- lower is better.
|
|
|
|
|
|
##### <a id="setup-grid-load-balancing-example" href="#setup-grid-load-balancing-example">Example</a>
|
|
|
##### <a name="setup-grid-load-balancing-example" href="#setup-grid-load-balancing-example">Example</a>
|
|
|
|
|
|
Starting the first Dispatcher:
|
|
|
|
... | ... | @@ -73,7 +73,7 @@ Lather, rinse, repeat: |
|
|
arachni_rpcd --nickname="My third Dispatcher" --address=192.168.0.3 --neighbour=192.168.0.2:7331
|
|
|
arachni_rpcd --nickname="My fourth Dispatcher" --address=192.168.0.4 --neighbour=192.168.0.3:7331
|
|
|
|
|
|
#### <a id="setup-grid-line-aggregation" href="#setup-grid-line-aggregation">Line aggregation</a>
|
|
|
#### <a name="setup-grid-line-aggregation" href="#setup-grid-line-aggregation">Line aggregation</a>
|
|
|
|
|
|
In addition to the default Grid setup requirements, line-aggregation also requires a bandwidth pipe
|
|
|
identifier used to distinguish between the different paths to the target web application.
|
... | ... | @@ -83,22 +83,22 @@ workload in a way that will aggregate the collective bandwidth. |
|
|
Line aggregation only takes effect when performing multi-Instance scans and the `:grid_mode`
|
|
|
option has been explicitely set to `:aggregate` (see [Instance#scan](http://rubydoc.info/github/Arachni/arachni/Arachni/RPC/Server/Instance#scan-instance_method)).
|
|
|
|
|
|
##### <a id="setup-grid-line-aggregation-example" href="#setup-grid-line-aggregation-example">Example</a>
|
|
|
##### <a name="setup-grid-line-aggregation-example" href="#setup-grid-line-aggregation-example">Example</a>
|
|
|
|
|
|
Starting the first Dispatcher:
|
|
|
|
|
|
arachni_rpcd --pipe-id="Pipe 1" --nickname="My Dispatcher" --address=192.168.0.1
|
|
|
arachni_rpcd --pipe-name="Pipe 1" --nickname="My Dispatcher" --address=192.168.0.1
|
|
|
|
|
|
Adding more in order to form a Grid:
|
|
|
|
|
|
arachni_rpcd --pipe-id="Pipe 2" --nickname="My second Dispatcher" --address=192.168.0.2 --neighbour=192.168.0.1:7331
|
|
|
arachni_rpcd --pipe-name="Pipe 2" --nickname="My second Dispatcher" --address=192.168.0.2 --neighbour=192.168.0.1:7331
|
|
|
|
|
|
Lather, rinse, repeat:
|
|
|
|
|
|
arachni_rpcd --pipe-id="Pipe 3" --nickname="My third Dispatcher" --address=192.168.0.3 --neighbour=192.168.0.2:7331
|
|
|
arachni_rpcd --pipe-id="Pipe 4" --nickname="My fourth Dispatcher" --address=192.168.0.4 --neighbour=192.168.0.3:7331
|
|
|
arachni_rpcd --pipe-name="Pipe 3" --nickname="My third Dispatcher" --address=192.168.0.3 --neighbour=192.168.0.2:7331
|
|
|
arachni_rpcd --pipe-name="Pipe 4" --nickname="My fourth Dispatcher" --address=192.168.0.4 --neighbour=192.168.0.3:7331
|
|
|
|
|
|
### <a id="security" href="#security">Security considerations</a>
|
|
|
### <a name="security" href="#security">Security considerations</a>
|
|
|
|
|
|
**This is very important, you should read it thoroughly.**
|
|
|
|
... | ... | @@ -122,7 +122,7 @@ Sufficient authN/authZ can be achieved by either: |
|
|
* Configuring the relevant SSL options for both the clients and dispatch servers.
|
|
|
* Rolling your own network security scheme via a VPN or something similar.
|
|
|
|
|
|
### <a id="help" href="#help">Help output</a>
|
|
|
### <a name="help" href="#help">Help output</a>
|
|
|
|
|
|
|
|
|
The help output of the RPC server if fairly straightforward:
|
... | ... | |