Guida MikroTik
Utenti, RADIUS, IoT e containerAvanzato

Container su RouterOS v7: guida pratica e avvertenze sicurezza

Esegui container Docker/OCI su RouterOS v7 (ARM/ARM64/x86). Configura veth, montaggi, variabili d'ambiente e registry. Comprendi i rischi di sicurezza prima di procedere.

RouterOS v7.4+ supporta l'esecuzione di container OCI/Docker direttamente sul router (architetture ARM, ARM64 e x86). Questo apre scenari potenti — FreeRADIUS, Pi-hole, HomeAssistant, monitoring stack — ma introduce rischi di sicurezza significativi che devono essere compresi prima di procedere.

AVVISO SICUREZZA CRITICO: i container su RouterOS condividono il kernel del router. Un container compromesso o malevolo può ottenere accesso root al sistema operativo, installare backdoor permanenti, intercettare traffico di rete o modificare la configurazione. Abilitare i container SOLO su dispositivi con accesso fisico controllato, non esposti direttamente a Internet, con software proveniente da fonti fidate.

1. Requisiti e installazione pacchetto

  • RouterOS v7.4 beta o superiore
  • Architettura: ARM, ARM64 o x86 — NOT MIPS, SMIPS, TILE, PowerPC
  • Disco esterno consigliato: almeno 100 MB/s lettura/scrittura sequenziale, 10K IOPS random
  • RAM sufficiente per il container (Pi-hole ~100MB, FreeRADIUS ~50MB, HomeAssistant ~512MB)
  • Scaricare il pacchetto container da mikrotik.com/download (Extra Packages) e installarlo
  • Dopo /system/package/install e riavvio, il menu /container sarà disponibile

2. Configurare la rete del container (VETH)

Creare interfaccia virtuale e bridge per container
# Creare l'interfaccia veth (virtual ethernet pair)
/interface/veth/add \
  name=veth1 \
  address=172.17.0.2/24 \
  gateway=172.17.0.1

# Creare bridge dedicato ai container (isolamento dal resto della rete)
/interface/bridge/add name=bridge-container

# Assegnare IP al bridge (gateway per i container)
/ip/address/add \
  address=172.17.0.1/24 \
  interface=bridge-container

# Aggiungere veth1 al bridge
/interface/bridge/port/add \
  bridge=bridge-container \
  interface=veth1

# NAT per permettere ai container di uscire su Internet
/ip/firewall/nat/add \
  chain=srcnat \
  action=masquerade \
  src-address=172.17.0.0/24 \
  comment="Container NAT"

3. Esempio pratico: FreeRADIUS in container

Avviare FreeRADIUS come container per PPP/Hotspot
# Configurare il registry (Docker Hub)
/container/config/set \
  registry-url=https://registry-1.docker.io \
  tmpdir=disk1/tmp

# Variabili d'ambiente per FreeRADIUS
/container/envs/add \
  list=ENV_FREERADIUS \
  key=TZ \
  value="Europe/Rome"

# Montaggi per configurazione persistente
/container/mounts/add \
  list=MOUNT_FREERADIUS \
  src=disk1/freeradius/config \
  dst=/etc/freeradius

# Creare il container (immagine ARM64)
/container/add \
  remote-image=freeradius/freeradius-server:latest \
  interface=veth1 \
  root-dir=disk1/containers/freeradius \
  envlist=ENV_FREERADIUS \
  mounts=MOUNT_FREERADIUS \
  start-on-boot=yes \
  logging=yes \
  name=freeradius

# Attendere il download e avviare
/container/print
/container/start freeradius

# Accedere alla shell del container per configurarlo
/container/shell freeradius
Il download dell'immagine da Docker Hub può richiedere diversi minuti. Monitorare con /container/print — lo stato passa da extracting a stopped quando è pronto. Usare sempre /container/shell per ispezionare il container prima di esporlo alla rete.

4. Comandi di gestione container

Gestione ciclo di vita
# Vedere stato di tutti i container
/container/print

# Avvio, stop, riavvio
/container/start freeradius
/container/stop freeradius
/container/restart freeradius

# Terminazione forzata
/container/kill freeradius

# Aggiornare l'immagine (repull = ri-scarica dal registry)
/container/repull freeradius

# Rimuovere un container
/container/remove freeradius

5. Apps Menu — alternativa semplificata

Il menu Apps (/container/apps) offre un catalogo di applicazioni pre-configurate (Pi-hole, Grafana, HomeAssistant, ecc.) con setup automatico della rete e delle variabili d'ambiente. Consigliato per chi vuole la semplicità senza configurare manualmente veth e bridge.

  • Apps Menu: configurazione automatica, ideale per utenti meno esperti
  • Container Config manuale: controllo totale su rete, storage, variabili — per casi avanzati
  • Entrambi usano il medesimo motore container sottostante
  • RACCOMANDAZIONE: non eseguire container su router che espongono servizi pubblici (PPPoE server, VPN gateway) senza isolare la rete container con firewall dedicato

6. Casi d'uso utili per un WISP

ContainerA cosa serveRAM circa
FreeRADIUSAAA centralizzato per PPPoE/Hotspot in sede~50 MB
Pi-hole / AdGuardDNS con filtro pubblicità/malware per i clienti~100 MB
Agente on-prem (WISP Manager)Connettore che raggiunge gli apparati dietro NAT~30-60 MB
Prometheus node/snmp exporterEsporre metriche per monitoraggio esterno~40 MB
Uptime KumaMonitor di rete leggero con dashboard~120 MB
HomeAssistantAutomazione/IoT (solo su hardware capiente)~512 MB
Container tipici su un router di WISP

Per un WISP italiano il caso più interessante è far girare l'agente on-prem (il connettore di WISP Manager) come container sul router stesso: niente VPS aggiuntiva, le credenziali degli apparati restano in sede, e l'agente esce verso il cloud per ricevere i job di sospensione/riattivazione. Va però valutato il rischio: meglio un mini-PC dedicato quando possibile.

7. Hardening dei container

  • Bridge container DEDICATO e isolato dalla LAN di gestione, con firewall che limita cosa il container può raggiungere
  • Usare solo immagini da fonti fidate e fissare un tag/digest preciso, mai latest in produzione
  • Disco esterno per root-dir e mounts: il flash interno del router si usura e ha poco spazio
  • Disabilitare i container quando non servono; non lasciarli esposti a Internet
  • Monitorare CPU/RAM: un container pesante può degradare il forwarding del router
  • Considerare un dispositivo separato per i carichi critici: il router deve prima di tutto instradare
containerDockerOCIRouterOS containervethFreeRADIUS containerPi-hole containerHomeAssistantsicurezza containerregistro Docker

Configura senza fatica con l'AI

In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.

Prova WispOS