Ir al contenido

Eclipse Mosquitto: instala un broker y protégelo

Eclipse Mosquitto: tu primer broker

Eclipse Mosquitto es un broker de mensajes de código abierto que implementa MQTT 5.0, 3.1.1 y 3.1. También ofrece una librería en C para clientes MQTT y dos herramientas de línea de comandos muy útiles, mosquitto_pub y mosquitto_sub, que te permiten publicar y suscribirte desde un terminal. Es lo bastante ligero como para ejecutarse en el propio Raspberry PLC, de modo que una máquina puede tener su propio broker local.

1. Instalación

Instala el broker y los clientes en el Raspberry PLC, y los clientes en tu PC (consulta la web de Mosquitto para otros sistemas):

sudo apt install mosquitto mosquitto-clients

El paquete arranca automáticamente un broker en el equipo, así que no necesitas un broker externo para hacer pruebas. Desde la versión 2.0, Mosquitto solo acepta conexiones locales por defecto. Para que otros dispositivos se conecten por la red necesitas un archivo de configuración, y un broker accesible desde la red debe exigir autenticación: un broker abierto permite que cualquiera en la red lea los datos de tu máquina y publique comandos.

2. Configura un listener de red con autenticación

Crea un archivo de contraseñas (te pedirá la contraseña):

sudo mosquitto_passwd -c /etc/mosquitto/passwd plcuser

Crea /etc/mosquitto/conf.d/network.conf con:

listener 1883 0.0.0.0
allow_anonymous false
password_file /etc/mosquitto/passwd

Reinicia el servicio:

sudo systemctl restart mosquitto.service

3. Prueba con publicación y suscripción

Conecta el PC al Raspberry PLC por Ethernet (el PLC usa 10.10.10.20 por defecto; asigna al PC otra dirección de la misma red). En el PC, suscríbete a un topic:

mosquitto_sub -h 10.10.10.20 -u plcuser -P 'your-password' -t "topic"

Desde otro terminal, publica un mensaje:

mosquitto_pub -h 10.10.10.20 -u plcuser -P 'your-password' -t "topic" -m "hello this is a test"

El suscriptor muestra el mensaje, lo que demuestra que la comunicación funciona:

mosquitto_pub publicando un mensaje y mosquitto_sub recibiéndolo

Solución de problemas

  • Connection refused: comprueba que la línea listener está en un archivo dentro de /etc/mosquitto/conf.d/, que el servicio se ha reiniciado sin errores (systemctl status mosquitto) y que el PC y el PLC están en la misma red.
  • Not authorised: comprueba el usuario y la contraseña, y que password_file apunta al archivo que has creado.

Para el tráfico que sale de la red de máquinas, añade TLS (puerto 8883). Descubre el Raspberry PLC en www.industrialshields.com.

Calificación
0 0

No hay comentarios por ahora.

para ser el primero en comentar.

1. Necesitas que otros dispositivos de la red se conecten al broker Mosquitto de tu PLC. ¿Cuál es la configuración segura?