eulabeia

module
v0.0.0-...-3fdd853 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2022 License: AGPL-3.0

README

Greenbone Logo

eulabeia

Eulabeia is a management layer with the task to control a multiple scanner on multiple machines environment easily and more predictable. Therefore it introduces a small set of commands. The orchestration is based on a single director entity and a MQTT broker is responsible for transmission of data and commands.

Eulabeia comes with four roles, two of which are direct eulabeia entities:

  • a director - manages multiple sensors and is the main communication partner of a client
  • sensor(s) - manages (or is) a scanner (currently openvas and in future also notus and more)
  • scanner(s) - a program to scan for vulnerabilities
  • client - is the using party of eulabeia (currently gvmd)

The communication between each entity is done via normalized messages over a MQTTv5.

For a detailed overview about eulabeia please checkout the documentation.

overview participants

Included projects

  • director, the director implementation
  • sensor, the sensor implementation for openvas-scanner
  • libeulabeia, the c library to use eulabeia

Requirements

The minimal requirements to use eulabeia are:

  • go
  • docker
  • make

If you want to build and run eulabeia without container you need:

  • a mqtt broker (e.g. mosquitto)
  • openvas-scanner (currently middleware branch)
  • redis

If you want to build libeulabeia you need:

Installation

If you just want to test eulabeia without installing it on your machine you should use the provided docker images by running make start-smoke-test .

Please follow the requirements instruction before installing eulabeia.

When all requirements are met you can build the sensor and director binaries by executing:

make build

This will create the binaries:

  • bin/eulabeia-director
  • bin/eulabeia-sensor
  • bin/example-client

Before you can use the director or sensor you need to configure it based on your MQTT address and redis socket.

The next step is to start the director (./bin/eulabeia-director) and sensor (./bin/eulabeia-sensor).

To validate the correctness of the setup you can execute the example client: ./bin/example-client.

For a more detailed explanation about the requirements please refer to requirements.md.

Usage

Since eulabeia is not indented to be used as a program but is a rather a service environment and meant to be used via a library or specified workflows by another service / program please refer to:

Support

For any question on the usage of Eulabeia please use the Greenbone Community Portal. If you found a problem with the software, please create an issue on GitHub. If you are a Greenbone customer you may alternatively or additionally forward your issue to the Greenbone Support Portal.

Maintainer

This project is maintained by Greenbone Networks GmbH

Contributing

Your contributions are highly appreciated. Please create a pull request on GitHub. Bigger changes need to be discussed with the development team via the issues section at GitHub first.

License

Copyright (C)2021 Greenbone Networks GmbH

Licensed under the GNU Affero General Public License v3.0 or later.

Directories

Path Synopsis
cmd
example-client
This example will create and modify 1.
This example will create and modify 1.
Package connection contains interfaces for generic message handling
Package connection contains interfaces for generic message handling
mqtt
package mqtt contains the mqtt implementation of connection
package mqtt contains the mqtt implementation of connection
director contains mostly functionality relevant for building a director cmd
director contains mostly functionality relevant for building a director cmd
scan
Package scan implements handler for scans
Package scan implements handler for scans
sensor
Package sensor implements handler for sensors
Package sensor implements handler for sensors
target
Package target implements handler for targets
Package target implements handler for targets
vt
internal
logging
handler
Package handler implements various handler for events and messages
Package handler implements various handler for events and messages
Package models contains various aggregate structs
Package models contains various aggregate structs
Process contains various utils process handling
Process contains various utils process handling
Package sensor contains functionality required to build a sensor Scheduler component of the sensor.
Package sensor contains functionality required to build a sensor Scheduler component of the sensor.
Package storage contains abstract storage implementations
Package storage contains abstract storage implementations

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL