NetBox é um aplicativo da web de código aberto projetado para ajudar a gerenciar e documentar redes de computadores. Concebido inicialmente pela equipe de engenharia de rede da DigitalOcean, o NetBox foi desenvolvido especificamente para atender às necessidades dos engenheiros de rede e infraestrutura. Abrange os seguintes aspectos de gerenciamento de rede:
- Gerenciamento de endereço IP (IPAM) – redes e endereços IP, VRFs e VLANs
- Racks de equipamentos – organizados por grupo e local
- Dispositivos – Tipos de dispositivos e onde estão instalados
- Conexões – Rede, console e conexões de energia entre dispositivos
- Virtualização – máquinas virtuais e clusters
- Circuitos de dados – circuitos e provedores de comunicações de longa distância
- Segredos – armazenamento criptografado de credenciais confidenciais
O que o NetBox não é
Embora o NetBox se esforce para cobrir muitas áreas de gerenciamento de rede, o escopo de seu conjunto de recursos é necessariamente limitado. Isso garante que o desenvolvimento se concentre na funcionalidade central e que o aumento do escopo seja razoavelmente contido. Para esse fim, pode ser útil fornecer alguns exemplos de funcionalidade que o NetBox não oferece:
- Monitoramento de rede
- Servidor dns
- Servidor RADIUS
- Gerenciamento de configurações
- Gestão de instalações
Dito isso, o NetBox pode ser usado com grande efeito para preencher ferramentas externas com os dados de que precisam para executar essas funções.
Pré-requisitos
Para seguir este tutorial, você precisará de:
- Um servidor Debian 10 e um firewall configurado com
ufw
. - Nginx configurado seguindo o tutorial de como instalar o NGINX no nosso blog
- Um bloco de servidor do Nginx com o Let’s Encrypt configurado, o que pode ser feito seguindo o tutorial de como instalar o NGINX no nosso blog.
agora vamos para o que interessa, e é por a mão na massa !
Instale os pacotes que serão necessários para o NETBOX.
$
apt install vim net-tools wget redis-server supervisor\
postgresql-contrib postgresql libpq-dev gcc\
python-minimal python3 python3-pip python3-venv\
python3-dev build-essential libxml2-dev libxslt1-dev\
libffi-dev libssl-dev zlib1g-dev graphviz\
nginx redis python3-setuptools
logue-se com o usuário postgres, para poder criar o banco de dados.
$ su - postgres
Entre no terminal de comandos do postgres
$ psql
$ CREATE DATABASE netboxdb;
$ CREATE USER netboxuser WITH PASSWORD 'senha';
$ GRANT ALL PRIVILEGES ON DATABASE netboxdb TO netboxuser;
$ /q
Verifique ser o serviço redis esta respondendo.
Deve retornar : PONG
Retorne ao usuario root
Atualize o pip
$ pip3 install --upgrade pip
Agora vamos baixar o projeto NetBox. Verifique em https://github.com/netbox-community/netbox/releases .
Entre no diretório tmp em seguida iremos farer o download, extrair, mover os mesmo para o diretório correto bem como ajustamos usuário e permissões de diretório.
$ cd /tmp
$ wget https://github.com/netbox-community/netbox/archive/refs/tags/v2.10.6.tar.gz
$ tar vxf v2.10.6.tar.gz
$ mv netbox*/ /opt/netbox
$ cd /opt/netbox/
$ adduser --system --group netbox
$ chown --recursive netbox /opt/netbox/netbox/media/
Execute o comando abaixo para gerar a SECRET KEY que iremos usar em seguida.
$ /opt/netbox/netbox/generate_secret_key.py |
Copie o arquivo de configuração exemplo para ajustar com suas infomações
$ cp /opt/netbox/netbox/netbox/configuration.example.py /opt/netbox/netbox/netbox/configuration.py
$ nano /opt/netbox/netbox/netbox/configuration.py
Localize as linhas marcadas em laranja como exemplo abaixo e altere os valores.
ALLOWED_HOSTS = ['localhost','netbox.jbits.com.br']
DATABASE = {
'NAME': 'netboxdb', # Database name
'USER': 'netboxuser', # PostgreSQL username
'PASSWORD': 'senha', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age
}
# Gerado com o comando /opt/netbox/netbox/generate_secret_key.py
SECRET_KEY = 'T7TE07O$j^Jqf9(*20q8M5kG4%NBIci#gEEn0$wuw*qodT7Lfo'
LOGIN_REQUIRED = True
Instale os pacotes do py .
$ pip3 install -r /opt/netbox/requirements.txt
agora vamos partir finamente para a instalação do tão sonhado NETBOX
$ cd /opt/netbox/netbox/
$ python3 manage.py migrate
Crie seu usuário para o acesso web:
$ python3 manage.py createsuperuser
Username (leave blank to use 'root'): netbox
Email address: contato@jbits.com.br
Password: sua_senha
Password (again): sua_senha
Superuser created successfully
python3 manage.py collectstatic |
952 static files copied to '/opt/netbox/netbox/static'.
Vamos preparar nosso serviço web
$ pip3 install gunicorn
$ cat <<EOF | tee /opt/netbox/gunicorn_config.py
command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = '127.0.0.1:8001'
workers = 3
user = 'www-data'
EOF
$ cat <<EOF | tee /etc/supervisor/conf.d/netbox.conf
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data
EOF
$ systemctl restart supervisor
Remova o arquivo defautl do servidor web (nginx), e agora iremos criar um novo, estou usando um domínio, caso esteja utilizando com IP privado apenas coloque um underline ou sei próprio IP.
$ rm /etc/nginx/sites-enabled/default
$ vim /etc/nginx/sites-available/netbox.conf
Ajuste o diretório do seu certificado.
server {
listen 443 ssl;
server_name netbox.jbits.com.br;
ssl_certificate /etc/letsencrypt/live/netbox.jbits.com.br/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/netbox.jbits.com.br/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_pass http://localhost:8001;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name netbox.jbits.com.br;
return 301 https://$host$request_uri;
}
Verifique se seu arquivo de configuração do nginx está correto:
$ nginx -t
Crie o atalho do arquivo de configuração dentro do diretório enabled para que o mesmo seja carregado ao restart o nginx.
$ ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/
$ systemctl restart nginx
Agora acesse seu domínios “https://netbox.jbits.com.br/” ou “https://ip/” e entre com sua senha criada anteriormente.


NETBOX INSTALADO COM SUCESSO ! 😉
Fontes:
https://netbox.readthedocs.io/en/stable/installation
https://nginx.org/en/download.html
https://www.postgresql.org/download/linux/debian/
https://www.php.net/downloads