Installazione server MQTT (Mosquitto) su CentOS 7

In questo breve tutorial andremo a descrivere come installare il server di messaggistica Mosquitto ( server MQTT) su macchina virtuale CentOS 7.

Consideriamo di partire da una macchina virtuale CentOS 7 (per l’installazione seguire questo articolo) ed aggiorniamola

yum update

aggiungiamo  il repository epel

yum install epel-release vim

installiamo il software Mosquitto

yum install mosquitto

avviamo il server MQTT

systemctl start mosquitto

abilitiamo l’avvio allo startup

systemctl enable mosquitto

Adesso rendiamo sicuro il server MQTT vincolando la comunicazione tra Subscribers, Publishers e Broker ad un determinato utente, nel nostro caso mqtt

mosquitto_passwd -c /etc/mosquitto/passwd mqtt

modifichiamo il file di configurazione di Mosquitto per evitare di far scambiare in maniera anonima messaggi, impostando la metodologia di scambio tramite autenticazione, in particolare

vim /etc/mosquitto/mosquitto.conf

allow_anonymous false

password_file /etc/mosquitto/passwd

riavviamo il demone di Mosquitto

systemctl enable mosquitto

Adesso simuliamo uno scambio di messaggi tra Subscribers e Publishers, apriamo due terminali che si connettono al server MQTT, nel primo eseguiamo il seguente comando (simulando il Subscriber)

mosquitto_sub -h localhost -t primo_test -u "mqtt" -P "password_scelta"

mentre nell’altro terminale simuliamo il Publisher, ed  effettuiamo un test di connessione

mosquitto_pub -h localhost -t "primo_test" -m "Primo Messaggio" -u "mqtt" -P "password_scelta"

avremo che il Broker (server MQTT) permetterà lo scambio di messaggi, ed avremo dal lato Subscribers il seguente risultato

[root@localhost log]# mosquitto_sub -h localhost -t primo_test -u “mqtt” -P “password_scelta”
Primo Messaggio

nel caso avessi tentato di utilizzare per lo scambio di messaggi un utente non aggiunto all’interno del nostro elenco ( è possibile verificarli nel file passwd ), ad esempio

mosquitto_sub -h localhost -t "secondo_test" -u  "mqtt2" - P "altra_password"

avremo avuto il seguente errore

Connection Refused: not authorised.

Potrebbero interessarti anche...

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi