Guida MikroTik
Utenti, RADIUS, IoT e containerIntermedio

PPP AAA: autenticazione e accounting via RADIUS

Delega l'autenticazione PPPoE a un server RADIUS esterno o al User Manager locale. Configura accounting e aggiornamenti intermedi per tracciare le sessioni.

Con pochi clienti, i segreti locali (/ppp/secret) bastano. Ma in un WISP con decine o centinaia di utenti, è essenziale centralizzare l'autenticazione su un server RADIUS: velocizza gli aggiornamenti dei profili, semplifica la gestione e abilita l'accounting dettagliato.

1. Abilitare RADIUS per PPP

Configurazione minima /ppp/aaa
# Attiva autenticazione e accounting RADIUS per PPP
/ppp/aaa set \
  use-radius=yes \
  accounting=yes \
  interim-update=5m

# Aggiungere il server RADIUS (deve essere già configurato in /radius)
/radius add \
  service=ppp \
  address=10.0.0.10 \
  secret=S3gr3t0WISP \
  authentication-port=1812 \
  accounting-port=1813 \
  timeout=3000 \
  src-address=10.0.0.1

# Verificare lo stato del server RADIUS
/radius/monitor 0
Il parametro interim-update=5m fa sì che RouterOS invii un pacchetto Accounting-Request (Interim-Update) ogni 5 minuti. Questo permette al server RADIUS di tracciare il consumo in tempo reale — indispensabile per piani con limite mensile di traffico.

2. Attributi RADIUS per PPP

Il server RADIUS può restituire attributi nell'Access-Accept che sovrascrivono i valori del profilo locale. Questa è la tecnica per assegnare banda e IP direttamente dal RADIUS, senza modificare RouterOS.

  • Framed-IP-Address (tipo 8): assegna un IP statico alla sessione, ha priorità sul pool del profilo
  • Framed-Pool (tipo 88): indica il nome del pool IP da cui prelevare l'indirizzo
  • Mikrotik-Rate-Limit (vendor 14988, tipo 8): formato rx/tx es. 10M/30M, override del rate-limit del profilo
  • Session-Timeout (tipo 27): durata massima della sessione in secondi
  • Idle-Timeout (tipo 28): secondi di inattività prima della disconnessione
  • Port-Limit (tipo 62): numero massimo di sessioni simultanee per quell'utente
  • Filter-Id (tipo 11): nome di una chain firewall da applicare alla sessione

3. Fallback locale

Con use-radius=yes, RouterOS tenta prima il RADIUS. Se il server non risponde entro il timeout, prova con i segreti locali (/ppp/secret). Questo garantisce continuità di servizio anche in caso di guasto del RADIUS.

Monitorare le statistiche RADIUS
# Output: pending, requests, accepts, rejects, resends, timeouts
/radius/monitor 0

# Vedere le sessioni PPPoE attive con profilo applicato
/ppp/active/print detail
Se il contatore bad-replies sale, il shared secret è sbagliato oppure c'è un disallineamento nei metodi di autenticazione (CHAP vs MS-CHAPv2). Con PAP il server accetta ma il router rifiuta se il metodo non corrisponde.

4. Sospendere un cliente moroso via CoA/Disconnect

Il vero vantaggio del RADIUS per un WISP è poter sospendere e riattivare un cliente senza toccare il router: si modifica lo stato sul RADIUS (o sul gestionale che lo pilota) e si invia un Disconnect-Message (DM) o un CoA (Change of Authorization) sulla porta UDP 3799. Il cliente cade e, al ri-collegamento, viene rifiutato (sospeso) o riceve un profilo limitato.

Accettare DM/CoA sul router (porta 3799)
# Abilitare la ricezione di pacchetti CoA/Disconnect dal RADIUS
/radius/incoming set accept=yes port=3799

# Il server RADIUS invierà un Disconnect-Request indicando l'utente
# (Acct-Session-Id o User-Name). RouterOS termina la sessione PPPoE.
# Verificare che la porta 3799/udp sia raggiungibile dal RADIUS:
/ip/firewall/filter/print where comment~"radius"
Flusso tipico WISP Manager: cliente non paga → il gestionale marca la subscription "sospesa" sul RADIUS → invia Disconnect verso il router → il cliente cade. Quando paga, lo stato torna attivo e la sessione successiva viene accettata. Questo evita di disabilitare i /ppp/secret a mano su ogni router.

5. Esempio completo: WISP con RADIUS centralizzato

Configurazione PPP+RADIUS pronta per la produzione
# 1) Server RADIUS (autenticazione + accounting + CoA)
/radius add \
  service=ppp \
  address=10.0.0.10 \
  secret=S3gr3t0WISP \
  authentication-port=1812 \
  accounting-port=1813 \
  timeout=3000 \
  src-address=10.0.0.1
/radius/incoming set accept=yes port=3799

# 2) Abilitare RADIUS su PPP con accounting frequente
/ppp/aaa set use-radius=yes accounting=yes interim-update=5m

# 3) Profilo di default minimale (banda e IP arrivano dal RADIUS)
/ppp/profile set default-encryption \
  local-address=10.10.0.1 \
  dns-server=8.8.8.8,1.1.1.1 \
  only-one=yes

# 4) Server PPPoE che usa quel profilo di default
/interface/pppoe-server/server add \
  interface=ether2 service-name=internet \
  default-profile=default-encryption \
  authentication=mschap2 enabled=yes
PPP AAAppp aaa use-radiusaccountinginterim-updateRADIUS PPPautenticazione centralizzataMikrotik-Rate-LimitFramed-IP-Address

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