Desplegant NetBox i NetBox-Scanner

Suposo que molts a dia d'avui teniu documentades les vostres infraestructures d'una manera correcta i ordenada, doncs bé, per a la resta, és aquest post. On veurem NetBox, que per al que no el conegui és una solució open source utilitzada per a la gestió d'infraestructura de xarxes i centres de dades. Així com automatitzarem la part IPAM amb NetBox Scanner.

El que s'ha dit, en este post veremos cómo desplegar d'una manera ràpida, On-premise o Self-Hosted, com et gusta millor dir la 😉 solució de NetBox. Una solució MOLT completa que et permetrà documentar des d'un cable, para què es, a on va connectat… fins a les funcions que puguin tenir les teves màquines; un inventari complet de la part física de la teva infraestructura…

Desplegando NetBox

Empezamos i després ens metemos un poquito en barro, para desplegarlo rápidamente, com sempre, nos basaremos en contenedores de Docker que desplegaremos en un periquete, necesitaremos por tanto tener Docker y Docker Compose instalados previamente. Nos descargamos del repositorio NetBox Community:

git clone -b release https://github.com/netbox-community/netbox-docker.git
cd netbox-docker

Creamos el fichero 'docker-compose.override.yml’

services:
  netbox:
    ports:
      - 8080:8080
    container_name: netbox
 restart: unless-stopped networks:
      netbox_default:
  netbox-worker:
    container_name: netbox-worker
 restart: unless-stopped networks:
      netbox_default:
  netbox-housekeeping:
    container_name: netbox-housekeeping
 restart: unless-stopped networks:
      netbox_default:
  postgres:
    container_name: netbox-postgres
 restart: unless-stopped networks:
      netbox_default:
  redis:
    container_name: netbox-redis
 restart: unless-stopped networks:
      netbox_default:
  redis-cache:
    container_name: netbox-redis-cache
 restart: unless-stopped networks:
      netbox_default:
networks:
  netbox_default:
    driver: bridge

Y desplegamos los contenedores, se descargarán y se arrancarán automáticamente, ejecutamos pues:

sudo docker compose up -d

Crearemos un usuario nuevo para administrar NetBox, nos solicitará que demos de alta un username y su password, así como su dirección de correo electrónico, executem:

sudo docker compose exec netbox /opt/netbox/netbox/manage.py createsuperuser

Accedemos con un navegador, mediante HTTP y al puerto que indicamos, que por defecto es el 8080tcp. Nos logueamos con el usuario recién creado.

Y aquí tenemos el monstruo de NetBox, , veis que es MUY MUY completo, podràs alimentarlo en base a tus necessitats, no hay que definir todo, però tu da la possibilitat de definir tus bastidores o armarios racks, dispositius (servidors, switches, routers, modelos, fabricantes…), gestión de cables, conexiones… documentación de redes, VLAN, VRF, gestión de direcciones IP con su IPAM, VPNs, circuitos.. Y un montón de coses más!

Una cosa que os recomiendo, es que le echéis un vistazo a este video de Eduardo Taboada y Eduardo Collado, que son unos cracks (y majísimos) en Tecnocrática, es un video on amb tot lujo de detalle repasan la eina explicando les seves funcionalitats. Ya que serà necessari configurarlo mínimamente, com tenir una organització i, així poder començar a treballar amb la part que més interessat.

Desplegando NetBox-Scanner

Si volem automatitzar la part de l'IPAM, això és que l'inventari de les nostres direccions IP se pugui actualitzar de manera automàtica, dándose de alta noves IPs que es descobreixen… i per tant evitando que tengamos que dar d'alta manualment cada direcció IP de la nostra organització… Pues para ello podremos usar NetBox-Scanner!

El primer, en NetBox hem de crear una etiqueta (o etiqueta) anomenat 'nmap', per a això, anem a “Personalització” > “Tags” i creem un nou.

Losegundo, hem de crear un Token de API per permetre l'accés de NetBox-Scanner a NetBox, par ello, anem a “Admin” > “Tokens de API” i les dades a crear un nou Token de API, seleccionamos el usuario, copiamos el Token i podremos en la descripció indicarle que és el token d'accés per a NetBox Scanner.

Bé, ara sí ha llegado la hora de desplegar NetBox-Scanner, amb un altre contingut de docker!

git clone https://github.com/casperklein/docker-netbox-scanner.git
cd docker-netbox-scanner/

Editamos el fichero 'netbox-scanner.conf'indicando la direción de NetBox y el token:

[NETBOX]
address = http://DIRECCION_IP_NETBOX:8080
token = xxxxxxxxxxxxx

Creamos el fichero 'networks.txt’ con el contenido de los rangos de direcciones IP a escanear, a los que queremos que tire ping:

192.168.1.0/24
192.168.2.0/24
...

Y ya podremos arrancar el contenedor como siempre, amb:

sudo docker compose up -d

Una vez que arranque el contenedor, si volem, podremos escanear inmediatamente, per a això, tan sólo tendremos que ejecutar un script que trae, indicando com argumento el servidor DNS contra el que queramos que resuelva las direcciones IP, exemple:

sudo ./scan.sh --dns 192.168.5.100
  Inici de Netbox-Scanner..
No es pot trobar la imatge 'casperklein/netbox-scanner:latest' locally
latest: S'està extraient de casperklein/netbox-scanner
1aca2419c7eb: Extracció completa
4f4fb700ef54: Extreu el resum complet: sha256:8b4cbd577af9d96b7cd5057d871000e1619b8cc51058e2ea7e42a991292856fc
Estat: S'ha descarregat una imatge més recent per a casperklein/netbox-scanner:últim
Escanejant la xarxa 192.168.5.0/24
Iniciant Nmap 7.93 ( https://nmap.org ) at 2024-11-25 22:59 UTC
Informe d'escaneig Nmap per a FORTIGATE.lab.local (192.168.5.1)
L'host està actiu (0.00034s latència).
Informe d'escaneig Nmap per a 192.168.5.6
L'host està actiu (0.00054s latència).
Informe d'escaneig Nmap per a OS-LAB-01.lab.local (192.168.5.41)
L'host està actiu (0.00036s latència).
Informe d'escaneig Nmap per a remarkable2.lab.local (192.168.5.47)
L'host està actiu (0.15s latència).
Informe d'escaneig Nmap per a sonoff04.lab.local (192.168.5.74)
L'host està actiu (0.17s latència).
Informe d'escaneig Nmap per a telefono-rojo.lab.local (192.168.5.91)
L'host està actiu (0.00079s latència).
Informe d'escaneig Nmap per a OS-ESXi-002.lab.local (192.168.5.92)
L'host està actiu (0.0075s latència).
Informe d'escaneig Nmap per a OS-ESXi-004.lab.local (192.168.5.94)
L'host està actiu (0.00018s latència).
...

I si anem a NetBox a la zona d'IPAM > “Adreces IP” ja veurem que tenim afegides les adreces IP dels rangs recentment escanejats, així com amb la seva resolució DNS correcta.

Per programar les actualitzacions de les adreces a l'IPAM, podrem programar amb cron que s'executi automàticament l'script cada mitja hora, 1 hora, 1 un cop al dia…

# m h dom mon dow command
0 * * * * /home/lab/docker-netbox-scanner/scan.sh --dns 192.168.5.100

Així que…. ¡Pim Pam Toma Lacasitos! Pues hasta aquí por hoy, esto es todo 🥸 , espero que os haya resultat interessant i que podàis aplicarlo en vuestras organizaciones para millorar la gestió diària, sobre todo con estos temas, tener mínimamente documentado i automatitzats aquests processos. Seguiremos amb alguna cosa més interessant en altres llocs d'aquesta magnífica solució. Com sempre, os cuidáis y os portáis bien, la resta, que sea el destino, os mando un abracito!

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!

Regles i alertes amb ElastAlert 2

25 de March de 2025