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.
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
containerda mikrotik.com/download (Extra Packages) e installarlo - Dopo
/system/package/installe riavvio, il menu/containersarà disponibile
2. Configurare la rete del container (VETH)
# 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
# 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
/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
# 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
| Container | A cosa serve | RAM circa |
|---|---|---|
| FreeRADIUS | AAA centralizzato per PPPoE/Hotspot in sede | ~50 MB |
| Pi-hole / AdGuard | DNS 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 exporter | Esporre metriche per monitoraggio esterno | ~40 MB |
| Uptime Kuma | Monitor di rete leggero con dashboard | ~120 MB |
| HomeAssistant | Automazione/IoT (solo su hardware capiente) | ~512 MB |
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
latestin produzione - Disco esterno per
root-dire 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
Continua con
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