Perché la password normale non funziona?

Perché Google non accetta più la password dell’account da applicazioni come un router. Nel 2016 la configurazione falliva con un rifiuto nel log e il motivo era già questo; oggi l’accesso con la sola password è chiuso del tutto.

La soluzione è la password per le app: una password di 16 caratteri generata da Google, valida solo per l’invio, revocabile in qualunque momento senza toccare la password vera. È anche più sicura: se finisce dove non deve, revochi quella e basta.

Schema: MikroTik che invia email tramite smtp.gmail.com porta 587 con TLS verso la casella dell'amministratore
Il router manda le email attraverso Gmail in SMTP con TLS, usando una password per le app.

Passo 1: come creo la password per le app?

Dall’account Google:

  1. Sicurezza → attiva la Verifica in due passaggi (è obbligatoria);
  2. cerca Password per le app nelle impostazioni dell’account;
  3. dai un nome, per esempio “MikroTik ufficio”, e genera la password;
  4. copiala subito: Google la mostra una volta sola.

Consiglio un account Gmail dedicato ai router, non quello personale: le mail di avviso non si mescolano alla posta e una password revocata non tocca nient’altro.

Passo 2: il router raggiunge Gmail?

Il router deve risolvere smtp.gmail.com, quindi servono un’uscita verso internet e un DNS funzionante. Nel mio laboratorio il DNS è 10.0.0.1: usa quello della tua rete.

/ip dns set servers=10.0.0.1
/ping smtp.gmail.com count=3

Se il ping risponde da un indirizzo, nome e connettività sono a posto.

Passo 3: come configuro il MikroTik?

/tool e-mail set server=smtp.gmail.com port=587 tls=starttls certificate-verification=yes \
    from="Router Ufficio <avvisi.router@gmail.com>" \
    user=avvisi.router@gmail.com password="abcdefghijklmnop"
  • port=587 con tls=starttls: la connessione parte in chiaro e passa subito in TLS;
  • certificate-verification=yes: il router controlla che dall’altra parte ci sia davvero Google, con i certificati delle autorità già presenti in RouterOS. Di serie è spento: accendilo, non costa niente;
  • password: la password per le app, senza spazi (Google la mostra divisa in quattro gruppi);
  • from: il mittente che comparirà nella mail.

⚠️ Attenzione: nei vecchi tutorial il server si indica con address=smtp.gmail.com. In RouterOS 7.24.5 quel parametro non esiste più e il router risponde bad parameter address: si usa server=.

Tutti i parametri sono nel manuale MikroTik: E-mail.

Passo 4: come provo l’invio?

Con una mail di prova dal terminale:

/tool e-mail send to="tuo.indirizzo@example.com" subject="Prova dal MikroTik" body="Se leggi questa mail, l'SMTP funziona."

Dal terminale l’invio è immediato: se qualcosa non va, l’errore compare subito sotto il comando. Gli errori che ho visto in laboratorio e cosa vogliono dire:

  • AUTH failed: il router ha raggiunto Gmail, la connessione TLS è a posto, ma utente o password per le app sono sbagliati;
  • error connecting to server: il router non arriva al server, quindi controlla DNS, uscita verso internet e firewall.

Quando l’invio parte da uno script, l’errore finisce invece nel log:

/log print where topics~"e-mail"
/tool e-mail print

Il secondo comando mostra in last-status com’è andato l’ultimo invio.

Passo 5: che cosa ci faccio una volta configurato?

Tutto ciò che deve avvisare qualcuno. Per esempio un backup settimanale mandato per email, con lo scheduler:

/system scheduler add name=backup-settimanale interval=7d on-event={
    /system backup save name=backup-auto password=una-password-robusta
    :delay 5s
    /tool e-mail send to="tuo.indirizzo@example.com" subject=("Backup " . [/system identity get name]) \
        body="Backup settimanale in allegato." file=backup-auto.backup
}

La password sul backup non è un dettaglio: senza, il file non è cifrato, e una mail con allegata la configurazione in chiaro del router è l’ultima cosa che vuoi in una casella di posta.

E poi gli avvisi degli altri howto: il DHCP server non autorizzato e i dispositivi sconosciuti sulla LAN.

Passo 6: cosa controllo prima di metterlo in produzione?

La password per le app resta salvata nella configurazione del router: l’export di RouterOS 7 la nasconde, ma chi entra nel router può usarla. Proteggi l’accesso al router con l’Hardening di base di un router MikroTik, e se il router cambia mano revoca la password per le app dall’account Google.

Provato in laboratorio su PNETLab con CHR RouterOS 7.24.5 (stable): configurazione di /tool e-mail verso smtp.gmail.com con STARTTLS e verifica del certificato, fino all’autenticazione (con credenziali di prova, quindi risposta AUTH failed), e scheduler del backup con allegato. L’invio completo con un account Gmail reale e i passaggi nell’account Google non sono stati provati.

Domande frequenti

Quali sono i parametri SMTP di Gmail per MikroTik?

Server smtp.gmail.com, porta 587, tls=starttls, utente uguale all’indirizzo Gmail e, come password, una password per le app generata dall’account Google. Consigliato anche certificate-verification=yes.

Perché Gmail rifiuta la password dell’account?

Google non accetta più la password dell’account da applicazioni come i router: serve una password per le app, che si può creare solo con la verifica in due passaggi attiva.

Perché il comando /tool e-mail set address= dà errore?

In RouterOS 7 recente il parametro si chiama server: address= dei vecchi tutorial risponde bad parameter address.

Posso usare un altro provider al posto di Gmail?

Sì, /tool e-mail funziona con qualunque server SMTP: cambiano solo indirizzo del server, porta, tipo di TLS e credenziali indicati dal provider.

Come mando un file in allegato dal MikroTik?

Con il parametro file= di /tool e-mail send, indicando il nome di un file presente nella memoria del router, per esempio un backup protetto da password.

Questo howto aggiorna a RouterOS 7 un articolo del 2016 sul mio vecchio blog wirelessguru.it, ormai offline.