/deterrers

Uni Osnabrück - Greenbone User WebUI

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

DETERRERS

This is the repository for the automateD nETwork pERimeter thREat pRevention System (DETERRERS) project.

It started as the master's thesis of nwintering and is now maintained as an open source project.

Test Setup

To test the user interface of DETERRERS, perform the following steps below. This will start a DETERRERS instance without a real data backend, vulnerability scanner or perimeter firewall. All changes are mocked locally.

Requirements:

  • Docker + Docker Compose

Step-by-step Tutorial:

  1. Fill out the .env.dev-configuration-file:

    1.1 Add the domain name to DJANGO_ALLOWED_HOSTS and DOMAIN_NAME.

  2. Build and create the docker containers by running

     docker compose -f docker-compose.dev.yml create --build
    

    inside deterrers/project/.

  3. Start containers by running

     docker compose -f docker-compose.dev.yml start
    

    inside deterrers/project/.

  4. DETERRERS is now running on port 80. You should be able to log in with the credentials (DJANGO_SUPERUSER_USERNAME, DJANGO_SUPERUSER_PASSWORD) from the configuration file.

  5. You can interact freely with DETERRERS by adding any valid IP address.

  6. Stop containers by running

     docker compose -f docker-compose.dev.yml down --remove-orphans
    

    inside deterrers/project/.

Deployment

A deployment is currently only possible in conjunction with the following components and API endpoints:

Data Backend: BlueCat IP Address Manager with the REST API version 1

Vulnerability Scanner: Greenbone GMP version 22.4

Perimeter Firewall: Palo Alto with REST and XML API version v10.1

User/Access Management: LDAP directory

Configuration

  • access credentials for external endpoints (IPAM, Vulnerability Scanner, perimeter FW, LDAP) are set in .env-files
  • general settings/"contracts" are defined as Enums in project/application/main/core/contracts.py
  • interface-specific settings (e.g. Greenbone GMP configurations UUIDs or AddressGroup-names of the Palo Alto FW) are defined with the respective API-wrappers

Development

Linter:

  • flake8