MQTT
Links de interés
Broker en Raspbian o Debian
Instalación
En una consola:
sudo apt install mosquitto
Configuración
-
Vamos a trabajar en tres etapas, a medida que se lleven a cabo se va a ir agregando la configuración a tal fin. Luego queda definir que tipo de instalación se va a llevar a cabo.
-
Sin ningún tipo de seguridad
- Con usuario y contraseña
- Usando TLS
- Combinando métodos anteriores.
Configuración en común
Crear el archivo /etc/mosquitto/conf.d/mosimpa.conf y agregar:
log_timestamp true
Configuración sin ningún tipo de seguridad
Pros
- Simple de hacer andar
- No requiere ningún tipo de algoritmo extra en el dispositivo concentrador.
Contras
- Cualquier dispositivo en la red puede enviar datos, incluyendo malignamente.
- Cualquier dispositivo en la red puede espiar los datos.
Configuración
Agregar a /etc/mosquitto/conf.d/mosimpa.conf:
allow_anonymous true
Configuración con usuario y contraseña
Pros
- Simple de hacer andar.
- El usuario y contraseña puede o no ser compartido.
- Se puede utilizar para restringir el acceso a tópicos.
Contras
- El usuario y contraseña viajan en texto plano por la red, por ende es posible obtenerlos sniffeando los paquetes de la red.
- Cualquier dispositivo en la red puede espiar los datos.
Configuración
Agregar a /etc/mosquitto/conf.d/mosimpa.conf:
allow_anonymous false
password_file /etc/mosquitto/pwfile
Y luego crear los usuarios con sus contraseñas siguiendo las siguientes instrucciones.
Configuración usando TLS
Pros
- Toda la información que se trafica en la red es encriptada, ya que es a nivel TCP/IP. Se puede pensar en un túnel encriptado.
Contras
- Requiere mas capacidades de los dispositivos.
Configuración
A hacer si se piensa llevar a cabo esta metodología.
Configuración con combinación de varios métodos
Es posible pensar en dos redes: una red en particular para los dispositivos sensores y otra para aquellos externos como visualizadores externos (tablets, celulares y monitores externos).
La red de los dispositivos sensores puede ser exclusiva para ellos y utilizar la metodología anónima o con usuario y password.
Por otro lado la red de visualizadores/consumidores puede usar certificados o un juego de usuario/password que solo permita la visualización de ciertos datos. Esto posiblemente requeriría un cliente que pase datos de un tópico a otro.
IDEA: es posible hacer una GUI para automatizar el proceso y utilizar moquitto_passwd -U