Mosquitto: Autenticación y Autorización

Una vez instalado Mosquitto cualquiera que pueda acceder al puerto 1883 de nuestra Raspberry podrá publicar y suscribirse a topics y además los mensajes no están cifrados.

Configuramremos el broker MQTT con autentificación para securizar el acceso al mismo, de esta forma podemos tenerlo en un servidor publico pero teniendo zonas privadas.

Uso de contraseñas:

Mosquitto incluye una utilidad que generar un archivo de contraseña llamado mosquitto_passwd. Este comando pedirá una contraseña para el nombre de usuario especificado y después colocamos el resultado en /etc/mosquitto/passwd. 

Ejecutar este comando y poner la contraseña.

sudo mosquitto_passwd -c /etc/mosquitto/passwd NombreUsuario

Modificamos el fichero de configuración:

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

Y escribir en el fichero:

# donde esta el fichero de claves 
password_file /etc/mosquitto/passwd 
# deshabilitará todas las conexiones anonimas
allow_anonymous false

Después de modificar este archivo, reiniciamos mosquitto

sudo systemctl restart mosquitto

En la otra ventana abierta, rechaza la conexión:

pi@raspberrypi:~ $ mosquitto_sub -v -t "Boque/Subbloque" 
!Connection error: Connection Refused: not authorised.

En el directorio /etc/mosquitto/conf.d se guardan los ficheros de configuración adicionales. 

Para publicar y suscribirse con usuario y contraseña usar:

mosquitto_pub -d -t “test” -m “hola_mundo” -u “Nombreusuario” -P “password" 
mosquitto_sub -d -t “test” -u “Nombreusuario” -P “password”