Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/netbox-community/netbox-acls
A NetBox plugin for Access Lists based off of the NetBox Plugin Demo
https://github.com/netbox-community/netbox-acls
hacktoberfest netbox-plugin
Last synced: 5 days ago
JSON representation
A NetBox plugin for Access Lists based off of the NetBox Plugin Demo
- Host: GitHub
- URL: https://github.com/netbox-community/netbox-acls
- Owner: netbox-community
- License: apache-2.0
- Created: 2022-06-30T20:41:02.000Z (over 2 years ago)
- Default Branch: dev
- Last Pushed: 2024-11-22T21:56:12.000Z (21 days ago)
- Last Synced: 2024-12-08T05:43:50.630Z (6 days ago)
- Topics: hacktoberfest, netbox-plugin
- Language: Python
- Homepage: https://pypi.org/project/netbox-acls/
- Size: 2.95 MB
- Stars: 90
- Watchers: 9
- Forks: 27
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-netbox - netbox-community/netbox-acls - NetBox Access Lists Plugin (Plugins)
README
# NetBox Access Lists Plugin
A [Netbox](https://github.com/netbox-community/netbox) plugin for Access List management.
## Features
This plugin provides the following models:
- Access Lists
- Access List to Interface Assignment
- Access List Rules (abstract model basis for other rules)
- Access List Standard Rules
- Access List Extended Rules## Origin
Based on the NetBox plugin tutorial by [jeremystretch](https://github.com/jeremystretch):
- [demo repository](https://github.com/netbox-community/netbox-plugin-demo)
- [tutorial](https://github.com/netbox-community/netbox-plugin-tutorial)All credit should go to Jeremy. Thanks, Jeremy!
This project just looks to build on top of this framework and model presented.
## Contributing
This project is currently maintained jointly by:
- [Abhimanyu Saharan](https://github.com/abhi1693)
- [Ryan Merolle](https://github.com/ryanmerolle)See the [CONTRIBUTING](CONTRIBUTING.md) for more information.
## Compatibility
Each Plugin Version listed below has been tested with its corresponding NetBox Version.
| NetBox Version | Plugin Version |
|:-------------------:|:--------------:|
| 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 adding to a NetBox Docker setup see
[the general instructions for using netbox-docker with plugins](https://github.com/netbox-community/netbox-docker/wiki/Using-Netbox-Plugins).You can install with pip:
```bash
pip install netbox-acls
```or by adding to your `local_requirements.txt` or `plugin_requirements.txt` (netbox-docker):
```bash
netbox-acls
```## Configuration
Enable the plugin in `/opt/netbox/netbox/netbox/configuration.py`,
or if you use netbox-docker, your `/configuration/plugins.py` file :```python
PLUGINS = [
"netbox_acls"
]PLUGINS_CONFIG = {
"netbox_acls": {
"top_level_menu": True # If set to True the plugin will add a top level menu item for the plugin. If set to False the plugin will add a menu item under the Plugins menu item. Default is set to True.
},
}
```To add the required `netbox-acls` tables to your NetBox database, run the `migrate` manager subcommand in the NetBox virtual environment:
```
cd /opt/netbox
sudo ./venv/bin/python3 netbox/manage.py migrate
```## Developing
### VSCode + Docker + Dev Containers
To develop this plugin further one can use the included .devcontainer configuration. This configuration creates a docker container which includes a fully working netbox installation. Currently it should work when using WSL 2. For this to work make sure you have Docker Desktop installed and the WSL 2 integrations activated.
1. In the WSL terminal, enter `code` to run Visual studio code.
2. Install the devcontainer extension "ms-vscode-remote.remote-containers"
3. Press Ctrl+Shift+P and use the "Dev Container: Clone Repository in Container Volume" function to clone this repository. This will take a while depending on your computer
4. If you'd like the netbox instance to be prepopulated with example data from [netbox-initializers](https://github.com/tobiasge/netbox-initializers) run `make initializers`
5. Start the netbox instance using `make all`Your netbox instance will be served under 0.0.0.0:8000, so it should now be available under localhost:8000.
## Screenshots
Access List - List View
![Access List - List View](docs/img/access_lists.png)Access List (Type Extended) - Individual View
![Access List Type Extended - Individual View](docs/img/access_list_type_extended.png)Access List (Type Standard) - Individual View
![Access List Type Standard - Individual View](docs/img/access_list_type_standard.png)Extended Access List Rules - List View
![Extended Access List Rules - List View](docs/img/acl_extended_rules.png)Standard Access List Rules - List View
![Standard Access List Rules - List View](docs/img/acl_standard_rules.png)Access List Interface Assignments- List View
![Access List Interface Assignments- List View](docs/img/acl_interface_assignments.png)Host (device, virtual_chassis, virtual_machine) Access Lists - New Card
![Host Access Lists - New Card](docs/img/acl_host_view.png)Host Interface (vminterface interface) Access Lists - New Card
![Host Interface Access Lists - New Card](docs/img/access_list_type_standard.png)