Skip to content

netbox-community/netbox-acls

NetBox Access Lists Plugin

A NetBox plugin for managing Access Lists.

Features

  • Access Lists (Standard and Extended)
  • Standard Rules for Access Lists
  • Extended Rules for Access Lists
  • Interface Assignment for Access Lists

Compatibility

The following table details the tested plugin versions for each NetBox version:

NetBox Version Plugin Version
4.5.x 2.0.0
4.4.x 1.9.1
4.3.x 1.9.1
4.2.x 1.8.1
4.1.x 1.7.0
>= 4.0.2 < 4.1.0 1.6.1
3.7.x 1.5.0
3.6.x 1.4.0
3.5.x 1.3.0
3.4.x 1.2.2
3.3.x 1.1.0
3.2.x 1.0.1

Installing

For Docker Setups

For instructions specific to NetBox Docker setups, see the netbox-docker plugin documentation.

Via pip

Activate your NetBox Python virtual environment and run:

source /opt/netbox/venv/bin/activate

pip install netbox-acls

Important: When using NetBox's upgrade.sh, the virtual environment is deleted and recreated. To ensure that the ACL plugin is reinstalled during an upgrade, add it to your local_requirements.txt (for local installations) or plugin_requirements.txt (for container-based installations).

netbox-acls

Configuration

Enable the plugin by editing the NetBox configuration file. For local installations, update /opt/netbox/netbox/netbox/configuration.py; for Docker setups, modify /configuration/plugins.py:

PLUGINS = [
    "netbox_acls"
]

PLUGINS_CONFIG = {
    "netbox_acls": {
        # Set to True to add a top-level menu item, or False to place it
        # under the Plugins menu. Default is True.
        "top_level_menu": True,
        # Sequence number increment for new ACL rules (e.g., 10, 20, 30...)
        "rule_sequence_step": 10,
    },
}

After configuration, apply the changes by running the database migrations:

source /opt/netbox/venv/bin/activate
cd /opt/netbox
python3 netbox/manage.py migrate

Screenshots

  • Access List (List View) Access List - List View

  • Access List (Standard) (Detail View) Access List Type Standard - Detail View

  • Access List (Extended) (Detail View) Access List Type Extended - Detail View

  • Standard Access List Rules (List View) Standard Access List Rules - List View

  • Extended Access List Rules (List View) Extended Access List Rules - List View

  • Interface Assignments (List View) Access List Interface Assignments - List View

  • Host Access Lists (New Card for Devices, Virtual Chassis, Virtual Machines) Host Access Lists - New Card

  • Host Interface Access Lists (New Card for Device and VM Interfaces) Host Interface Access Lists - New Card

Developing

VSCode + Docker + Dev Containers

You can use the provided .devcontainer configuration to set up a development environment with a fully functional NetBox installation. This configuration works best with WSL 2. For this to work, make sure you have Docker Desktop installed and the WSL 2 integrations activated.

  1. Open a WSL terminal and run code to launch Visual Studio Code.
  2. Install the ms-vscode-remote.remote-containers extension.
  3. Press Ctrl+Shift+P and select Dev Container: Clone Repository in Container Volume to start cloning the repository. The process may take some time.
  4. (Optional) To prepopulate NetBox with example data from netbox-initializers, run: make initializers
  5. Start the NetBox instance: make all

After these steps, NetBox will be available at http://localhost:8000.

Contributing

This project is maintained by the netbox-community. For contribution guidelines, please see the CONTRIBUTING document.

Credits

This plugin is based on the NetBox plugin tutorial by jeremystretch:

All credit should go to Jeremy. Thanks, Jeremy!

This project aims to build upon the framework and model presented there.

About

A NetBox plugin for managing Access Lists (based off of the NetBox Plugin Demo)

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors