How Can We Help?

Print

Come installare un broker MQTT cloud su un VPS (Virtual Private Server)

 

Questa esercitazione è utile per configurare un broker MQTT cloud su un VPS (Virtual Private Server) per testare e distribuire i progetti MQTT.

Con questo tipo di broker MQTT si è indipendenti, la sua disponibilità è del 99,99% e il suo costo è molto accessibile.
Il costo di un VPS va da 1€ a 4€ al mese. Noi utilizziamo quelli di Ionos. (e selezionare Server > Hosting VPS)

È inoltre possibile scegliere un Broker MQTT pronto all’uso su Internet o un‘applicazione Android come MQTT Broker (per i test).

Testate il nostro broker MQTT

Prima di iniziare, potete testare il nostro broker MQTT con un uptime del 99,99% (disponibilità)

  • Installate sul vostro PC Widnows un client MQTT: MQTT Explorer
  • Impostare una nuova connessione
  • Host = aceautomation.ddns.net o 101b7a0.online-server.cloud
  • Porta = 1883
  • Nome utente = aceautomation
  • Password = (Contattateci per ottenerla – Questo server MQTT è un broker di prova per i nostri clienti, non per uso permanente)
  • Connettiti!

Selezionare il VPS giusto dal provider di vostra scelta

Il costo di un VPS è di circa 1€ – 4€ /mese. Potete aprire un account con Ionos e selezionare il cloud hosting VPS.

  • Linux (Debian o simile)
  • CPU: 1 vCore o più, RAM: 0,5 Go o più, SSD: 10 Go o più

Politiche del firewall

Tramite la Dashboard del VPS, aggiungere la porta TCP 1883 per il broker MQTT

Le altre porte sono presenti per impostazione predefinita. La porta TCP 22 è necessaria per l’accesso SSH. Le altre non sono utilizzate.

Connettersi al server VPS tramite SSH

Per connettersi è possibile utilizzare PuTTY come client SSH.
Inserite il vostro nome host o IP e 22 come porta e connettetevi.
Il login (root o admin ?) e la password sono quelli forniti dal vostro provider VPS.

Installare il broker MQTT

Installiamo il broker MQTT di Mosquitto.

Inserite i comandi:
sudo apt update
sudo apt install -y mosquitto

Il servizio broker MQTT si avvierà automaticamente al termine dell’installazione.

Stato dell’installazione di Mosquitto Broker

Digitare i comandi: sudo systemctl status mosquitto per verificare l’installazione di Mosquitto MQTT: assicurarsi che il pacchetto sia“Caricato: …” e“Attivo: …”

Opzionale: Testare localmente il broker Mosquitto

Se si desidera, è possibile installare anche il client mosquitto. Questo può essere utile per testare il broker MQTT sul server stesso.

  • Digitare i comandi: sudo apt-get install mosquitto-clients e confermare l’installazione
  • Aprire una seconda interfaccia a riga di comando (CLI) utilizzando PuTTY
    • sottoscrivere un argomento di prova chiamato “mymqtttesttopic” digitando: mosquitto_sub -h localhost -t mymqtttesttopic
    • Quindi, pubblicare un messaggio dall’altro terminale: mosquitto_pub -h localhost -t mymqtttesttopic -m "Inviato dal mio broker MQTT"

    • Se l’installazione funziona correttamente, il terminale di sottoscrizione riceverà il messaggio:

Arrestare, eseguire e riavviare Mosquitto

Il servizio broker MQTT si è avviato automaticamente al termine dell’installazione, ma è utile conoscere questi comandi, soprattutto dopo aver modificato il file di configurazione di Mosquitto:

Arrestare il servizio MQTT Server: sudo systemctl stop mosquitto
Avviare il servizio Server MQTT: sudo systemctl start mosquitto
Riavviare il servizio server MQTT: sudo systemctl restart mosquitto

Proteggere il server MQTT

Il server MQTT legge le informazioni di configurazione dal seguente percorso: /etc/mosquitto/conf.d

Creare un file default.conf nella directory:

sudo nano /etc/mosquitto/conf.d/default.conf

Siete nell’editor di testo. Forse vi chiederà la vostra password per l’utente SSH

Incollate le informazioni qui sotto per disabilitare le connessioni anonime e permettere a Mosquitto di leggere credenziali valide dal file /etc/mosquitto/passwd:

allow_anonymous false
file_password /etc/mosquitto/passwd
ascoltatore 1883

  • [Ctrl] [X]
  • [Y]
  • [Invio] per salvare il file in /etc/mosquitto/conf.d/default.conf

Aggiungere una password al broker MQTT

Sostituire USER con il proprio nome utente in questo comando ed eseguirlo:

sudo mosquitto_passwd -c /etc/mosquitto/passwd USER

Verrà richiesta due volte la nuova password

Riavviare il servizio mosquitto per caricare le nuove modifiche:

sudo systemctl restart mosquitto

Collegare un client MQTT

È possibile utilizzare MQTT Explorer come client MQTT

Host = indirizzo IP o nome host DNS
Porta = 1883
Nome utente = USER scelto nella sezione precedente
Password = PASSWORD, anch’essa scelta nella sezione precedente

Aggiungere più utenti senza che possano vedere gli argomenti degli altri

Per ogni utente

Aggiungere l‘utente2:


sudo mosquitto_passwd /etc/mosquitto/passwd user2

Creare il file ACL (Access Control List). Questo file definisce ciò che ogni utente può fare


sudo nano /etc/mosquitto/acl_file

Aggiungere queste righe:

utente user2
argomento lettura scrittura user2/#

Questo permette a ciascun utente di leggere e scrivere solo sugli argomenti che iniziano con il proprio nome utente.

  • [Ctrl] [X]
  • [Y]
  • [Invio] per salvare il file in /etc/mosquitto/acl_file
Modificare la configurazione di Mosquitto

Modificare il file di configurazione principale:

sudo nano /etc/mosquitto/mosquitto.conf

Aggiungere o modificare queste righe:

allow_anonymous false
password_file /etc/mosquitto/passwd_file
acl_file /etc/mosquitto/acl_file

Questo indica a Mosquitto di usare la password e i file ACL e di non consentire l’accesso anonimo.

Riavviare il servizio MQTT Server:

sudo systemctl restart mosquitto