Servidor MQTT en casa (en red privada)

1,255 views
Skip to first unread message

Oscar Sanz

unread,
Feb 8, 2021, 11:34:49 AM2/8/21
to embeb...@googlegroups.com
Estimados,

Quisiera saber si alguno ha tenido experiencia con hacer funcionar un servidor MQTT dentro de su propia red privada.
Instalé un broker MQTT en mi servidor Linux en casa pero no funciona, presumiblemente porque Fibertel me debe estar filtrando el puerto 1883 que es el que usa MQTT.
Dentro de mi red privada funciona perfecto.

Llame a Fibertel y según ellos están todos los puertos abiertos (cosa que dudo, pero bueno).
Y el control que se tiene sobre el equipo que ellos me instalaron es mínimo.
De todas maneras yo lo tengo configurado como bridge y uso un router propio dentro de mi red privada donde obviamente tengo habilitado el puerto en cuestiòn.

Cualquier comentario es bienvenido.

Saludos y gracias.

                               
________________________________________________________




Ing. Oscar Sanz
os...@ieee.org
Móvil: +54 (9 11) 50416702
Skype: Cyberiano
Twitter:@Cyb3rian0





Adrian Pardini

unread,
Feb 8, 2021, 11:48:24 AM2/8/21
to embeb...@googlegroups.com
On Mon, 8 Feb 2021 at 13:34, Oscar Sanz <os...@ieee.org> wrote:
>
> Estimados,
>
> Quisiera saber si alguno ha tenido experiencia con hacer funcionar un servidor MQTT dentro de su propia red privada.
> Instalé un broker MQTT en mi servidor Linux en casa pero no funciona, presumiblemente porque Fibertel me debe estar filtrando el puerto 1883 que es el que usa MQTT.
> Dentro de mi red privada funciona perfecto.
>
> Llame a Fibertel y según ellos están todos los puertos abiertos (cosa que dudo, pero bueno).
> Y el control que se tiene sobre el equipo que ellos me instalaron es mínimo.
> De todas maneras yo lo tengo configurado como bridge y uso un router propio dentro de mi red privada donde obviamente tengo habilitado el puerto en cuestiòn.
>
> Cualquier comentario es bienvenido.
>
> Saludos y gracias.
>

Hola Oscar, hace un tiempo tuve problemas similares.
Qué pruebas hiciste para determinar dónde es que se están
filtrando/dropeando las conexiones?

Al final terminé instalando todo en un vps y conectándome ahí.

Salute

--
Adrián Pardini

Hellowen

unread,
Feb 8, 2021, 11:50:52 AM2/8/21
to embeb...@googlegroups.com
Yo hace unos años estuve jugando con ssh y algunas cosas con fibertel. Yo usaba una herramienta web como esta:
no me acuerdo si exacto esa, para saber si los puertos estaban abiertos. En mi caso se solucionó habilitando, creo recordar, UPnP y DMZ en mi router. Yo tenía un router que era directamente un bridge y usaba Dinamyc DNS para acceder.

Lo más dificl me era verificar si andaba desde afuera, porque desde la propia red no podía y para eso me conectaba por ssh a otra red y desde esa red mirababa para adentro de mi casa.

--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/CAJ6rfkNZPZjwfsAJ2ct9UJgv6tk2D-_CS0PPD56xLGaLWR3TRw%40mail.gmail.com.


--
Saludos
Martin

Oscar Sanz

unread,
Feb 8, 2021, 11:52:14 AM2/8/21
to embeb...@googlegroups.com
Hola Adrián.

No hice ninguna prueba sofisticada la verdad, sólo que en igualdad de condiciones, dentro de mi red funciona OK y transmitiendo desde afuera no llegan los mensajes.
Y efectivamente enseguida pensé en un VPS porque presiento que lidiando con el internet provider no voy a llegar a nada y necesito resolverlo más o menos rápido.

Saludos !



                               
________________________________________________________




Ing. Oscar Sanz
os...@ieee.org
Móvil: +54 (9 11) 50416702
Skype: Cyberiano
Twitter:@Cyb3rian0






--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.

Hellowen

unread,
Feb 8, 2021, 11:52:40 AM2/8/21
to embeb...@googlegroups.com
Me acordé otra cosa que me pasaba era que la redirección de puertos la tenía que hacer a un IP, el DHCP me volvía loco y tuve que configurar el servidor con IP fija para que me arranque.
--
Saludos
Martin

Adrian Pardini

unread,
Feb 8, 2021, 12:01:00 PM2/8/21
to embeb...@googlegroups.com
On Mon, 8 Feb 2021 at 13:52, Oscar Sanz <os...@ieee.org> wrote:
>
> Hola Adrián.
>
> No hice ninguna prueba sofisticada la verdad, sólo que en igualdad de condiciones, dentro de mi red funciona OK y transmitiendo desde afuera no llegan los mensajes.
> Y efectivamente enseguida pensé en un VPS porque presiento que lidiando con el internet provider no voy a llegar a nada y necesito resolverlo más o menos rápido.
>

Una pena que este tipo de cosas nos gane por cansancio. Supuestamente
los servicios corporativos de internet deberían ayudar pero en mi caso
no valía la pena la diferencia de costo.
También podés correr los servicios en tu casa y exponerlos al mundo
con una vpn a tu vps. Pero posiblemente complique más las cosas si
querés resolverlo rápido. (damos por sentado que ya tenés lista la
parte de seguridad en todo esto).

Éxito

--
Adrián Pardini

Oscar Sanz

unread,
Feb 8, 2021, 12:02:28 PM2/8/21
to embeb...@googlegroups.com
OK !
Gracias Hellowen por toda la data. Sí, también uso el servidor con IP fija.
Voy a hacer algunas pruebas más a ver que pasa. 

Saludos !

Gonzalo Nahuel Vaca

unread,
Feb 8, 2021, 4:29:22 PM2/8/21
to embeb...@googlegroups.com
Pregunta por las dudas, ¿configuraste el forwarding de tu router?

Alejandro Fernandez Herrero

unread,
Feb 8, 2021, 5:23:44 PM2/8/21
to embeb...@googlegroups.com
Hola
Se me ocurren dos cosas
1- en el firewall poner una regla de port forwarding  con un puerto bajo (para que fibertel no te lo filtre) y redirigirlo a la LAN interna
2- verificar si ingresa un paquete al puerto 1883 por medio de Wireshark.
Saludos.



El lun, 8 feb 2021 a las 13:34, Oscar Sanz (<os...@ieee.org>) escribió:

Carlos Pantelides

unread,
Feb 8, 2021, 5:28:24 PM2/8/21
to Embebidos32
Cuando tenía Telecentro, el cablemodem estaba conectado a mi router y podía hacer lo que quisiera.

Ahora, con Fibertel, el cablemodem que proveen trae un router, un AP y un switch. Esto se puede administrar vía web y ofrece un modo bridge/bypass. Lo que no he logrado dilucidar es qué significa. ¿me conecta cablemodem al switch? eso no tiene sentido. ¿A un sólo puerto?, ¿qué pasa con el wifi?

Si alguien ha sabido contestar estas preguntas, estaremos muy encaminados a hallar la respuesta a la pregunta de Oscar.

Carlos Pantelides

unread,
Feb 8, 2021, 5:42:33 PM2/8/21
to Embebidos32
ahí releí un poco mejor, "tengo en modo bridge",

¿Es el que tiene un switch de 4 bocas y wifi 2.4Gh y 5Gh?

Entiendo que perdiste los wifis, ¿queda un solo puerto activo?

Ahí tiene que estar todo, lo que dice Alejandro es correcto pero por las dudas " redirigirlo a [una IP de] la LAN interna"

Si es para pruebas, Plan B: sacá cuenta gratis de amazon, ponés un EC2 con una vpn/ip tunnel o, no recuerdo si es parte de lo gratis, aws ofrece algo parecido ya armado. Supongo que google, azure, ibm, red hat deben ofrecer cosas parecidas. Es bastante más trabajo pero muy buena práctica, yo la tengo en mi backlog infinito...

Diego Luna

unread,
Feb 8, 2021, 6:01:17 PM2/8/21
to embeb...@googlegroups.com
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/771e1426-1275-4126-bf0c-bbd69299764fn%40googlegroups.com.

Si,  si lo ponés en modo bridge, perdés WiFi y se conecta un solo puerto al puerto wan de tu propio router/switch/AP. Pero en general es la única forma de tener control  total sobre el NAT/Forwarding. Saludos, Diego.

OpenPGP_0xBC0894D7228C7BA3.asc
OpenPGP_signature

Carlos Pantelides

unread,
Feb 8, 2021, 6:03:57 PM2/8/21
to Embebidos32
Ok, gracias Diego

Has recibido este mensaje porque estás suscrito a un tema del grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/embebidos32/74Fz9zjdiF0/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a embebidos32...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/4fa9d0cc-10fb-5013-4f12-d9f4b99f7e54%40gmail.com.

Pato Dema

unread,
Feb 8, 2021, 6:17:01 PM2/8/21
to embeb...@googlegroups.com
Oscar buenas tardes, revisa que tengas hecho el port forwarding desde Internet hacia la IP privada donde tenes el servidor en el puerto que corresponde.
Por defecto los puertos salientes estan todos habilitados pero entrantes tenes que habilitarlos desde la configuración del cablemodem. Por lo menos en mi caso es asi con una cablemodem SAGENCOM y una conexión domiciliaria con IP dinámica.

Saludos

Patricio

Juan Ignacio Meza

unread,
Feb 8, 2021, 6:42:35 PM2/8/21
to embeb...@googlegroups.com
Buenas, yo tengo un router de fibertel en modo bridge, uno de los puertos ethernet de este esta conectado contra una interface fisica en un router mikrotik en la cual tengo la ip publica ej: 186.24.38.5/24

Solo tuve que hacer el forward del puerto 1883 desde la publica a el host dentro de la red privada.

El unico problema que tuve sucedio cuando intente acceder mediante la ip publica desde mi propia red publica que tenia salida por fibertel. Desde afuera con otro enlace podia acceder normalmente al servicio.

Podrias ejecutar el servicio en modo  para saber si los paquetes llegan al servidor, quiza existe algun problema de seguimiento de conexion....

Diego Luna

unread,
Feb 8, 2021, 6:55:19 PM2/8/21
to embeb...@googlegroups.com
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/CAGj%2B_xa7S%2BP-EujBPAe-A_uvZwwjC6%2BjWoxQDJG3V_R77HXrgw%40mail.gmail.com.

Otra forma muy simple de testear si realmente se tiene conectividad a un puerto específico es usar telnet, primero probaría en la red interna para ver que la conexión se realiza correctamente, sería "telnet <ip interna server> 1883", debería conectarse, luego desde una red externa para probar lo mismo sería "telnet <ip externa> 1883", o usando el dominio del dns dinámico. Saludos, Diego.

OpenPGP_0xBC0894D7228C7BA3.asc
OpenPGP_signature

Carlos Ignacio Mancón

unread,
Feb 9, 2021, 6:13:46 AM2/9/21
to Embebidos32
Buen día estimados,

Si buscan en internet "Cómo cambiar el nombre y contraseña de wifi de Fibertel", evitando las páginas del ISP,  probablemente encuentren las posibles credenciales de sus módems/routers de fibertel y los pueden configurar como deseen.

Saludos!

Santiago Corrao

unread,
Feb 9, 2021, 8:51:27 AM2/9/21
to embeb...@googlegroups.com
Hola Oscar, ¿que modelo de módem tenes? 

Oscar Sanz

unread,
Feb 9, 2021, 3:34:39 PM2/9/21
to embeb...@googlegroups.com
Antes que nada a aprovecho para agradecer a todos sus respuestas. Todavía no terminé de procesarlas a todas.

Mi módem es un Sagencom CS 50001 

Carlos Pantelides

unread,
Feb 9, 2021, 7:15:44 PM2/9/21
to Embebidos32
Recuerden antes de divulgar modelos y direcciones hacer hardening de los equipos: reemplazo de credenciales por defecto, usar claves fuertes, desactivar administración vía wan, actualizar firmware si hay vulnerabilidades o, si no se puede cumplir, reconsiderar divulgar.

De paso aviso que contacté a quienes pude de esta cadena antes, para que pudieran tomar medidas si lo necesitaban con tiempo

Has recibido este mensaje porque estás suscrito a un tema del grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/embebidos32/74Fz9zjdiF0/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a embebidos32...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/CAJ6rfkNH91n%2BEFt9Jp3BxMC%3DFsvruxnQ-5ekqU_o8hpyKwKo-w%40mail.gmail.com.
Message has been deleted

FernandoAló

unread,
Feb 11, 2021, 2:22:22 PM2/11/21
to Embebidos32
Bueno, borré el mensaje anterior por recomendación de Carlos Pantelides, si bien nunca apeció mi IP pública, si aparecían las mac-adress y las ip internas de los equipos, ahora trastribo el mensaje,  con los datos tapados. Gracias Carlos por tu recomendación.

Oscar, te cuento mi experiencia, no llegué a hacer nada de eso en producción, pero si en etapa de desarrollo, me tocó hacer un servidor de pruebas para unos equipos GPS/GPRS que mandaban mensajes UDP. Los ISP no siempre son partidarios de darte acceso total al router, en caso de que no quieran darte acceso total, lo que tenés que hacer es pedirles que lo configuren en modo bridge (lo pueden hacer de manera remota), en ese caso el equipo deja pasar todo lo que viene, luego del router del ISP agregás vos un router propio (en su momento un buen TP-Link me sobraba). 
Luego, ya sea un router propio o el del ISP, tenés que hacer un forwarding del puerto que te interesa. Cuando llega una comunicación que no inició dentro de tu red, el router la recibe, pero no sabe a quien mandarsela, entonces en general, la descarta, pero si añadis una regla de forwarding, ahí se la envía a quien vos especifiques, te paso una captura de como está un router (telecentro sagencom FAST 3890 v2)

sagencom.png

entonces en ese caso, si entra algo por el puerto 2551 (por ejemplo) lo va a reenviar a la IP 192.168.xx.x y te va a llegar a esa PC.

Hasta ahí barbado. Ahora respecto a la IP de la máquina, en general en el mismo router podes reservar una IP para una determinada mac address, es decir, que cada vez que se conecte la mac-address tal, que le de la ip tal, entonces te olvidas de configurar la PC tanto en linux como en windows le va a dar siempre la misma IP.

en este caso, figura en la parte de DPCH así:

sagencom_ips.png

Respecto a las pruebas, para mi, la forma más fácil es con el celular (obviamente con datos, no con wifi), en el celu te podés bajar una app muy muy básica UDP Sender pero que sobra para verificar que podés entrar desde afuera y algo equivalente en la PC, en windows en su momento usé Socket Test 3 y en linux usé un servidor muy básico hecho en C (te paso el código si lo necesitas). Para probar específicamente mqtt usé MQTT Dash, y funcionó bien también, en ese caso tenía mosquitto en la pc.  Por otro lado, probé la web yougetsignal.com que recomendaron más arriba, que pintaba que estaba muy bueno, pero me figuran los puertos cerrados, sin embargo me puedo conectar sin problemas desde afuera, así que no se si es lo mejor. 

Bueno, espero sirva la info.

Saludos.

Ing. Fernando Aló

Carlos Pantelides

unread,
Feb 11, 2021, 2:40:05 PM2/11/21
to Embebidos32
Excelente Fernando  muchas gracias, de paso me he enterado (quizás lo había olvidado) que vía groups uno puede borrar sus propios mensajes sin necesidad de pedir al admin.

Nuevamente en esta conversación se ha filtrado información sensible que puede ser aprovechada por algún atacante.

Se trata en esta oportunidad de:

Puertos abiertos

En una imagen se pueden ver los puertos abiertos y unas etiquetas que me sugieren la función de los equipos.

Direcciones MAC

En la otra, las direcciones MAC. ¿qué importa si son internas? Pues ocurre que la mitad izquierda es el identificador de la marca de la placa y hay bases de datos que incluso llegan a determinar qué equipo, por ejemplo si es una RPI, un router, un celular, la marca, si es placa wifi o ethernet, depende... y cuando no está en la base de datos podés suponer que es un VM.

Esto se combina con la información anterior para los puertos expuestos a internet

Más

Si venías siguiendo la conversación, esto se puede combinar con la marca y modelo de router y se pudo haber adicionado la dirección pública (no ocurrió, la que había era de fantasía)

Pero la pregunta es, ¿por qué y cómo podría alguien atacarme?

Cómo

Aún sin tener la IP, se puede mandar un mail a la persona o a todo el grupo con algo interesante que contenga un link a un sistema que tome nota de la IP de origen, que probablemente sea la de interés para el atacante. Bien puede ser en el caso de MQTT, "tengo este servidor si querés probar"

Por qué

Yo lo haría para divertirme o practicar, al menos la parte de exploración, si no fuera por que a la gente no le gusta que le hagan estas cosas, igual podría hacerlo desde un nodo gratuito de aws/azure/googleXXX. Además se parece demasiado a trabajar y eso le quita la diversión

Otras personas podrían estar buscando armar una botnet o tener una curiosidad menos restringida que la mía.

O quizás trabajás en un lugar importante y sos sólo un medio para llegar hasta ahí.

En esta lista hay 5000 personas, con un 0.1% de malicia ya tenés 5 personas interesadas. Además, esta lista es pública, puede estar siendo monitorizada por una cantidad indefinida de personas.

El riesgo no es muy alto, es más una cuestión de disciplina e imagen, puede ocurrir que un potencial cliente o empleador exigente lo considere en sus decisiones

¿Cómo lidiar con el error?

  • Vía web eliminar el mensaje, luego reenviarlo correctamente. Igual hay a quienes les ha llegado por mail o no han visto aún la lista desde la página.
  • Cambiar los puertos, refrescar la IP
  • Hardening de los equipos (esto habría que hacerlo de todos modos..)
    • Cambiar credenciales por defecto
    • Poner credenciales fuertes y/o usar certificados
    • Actualizar firmware
    • Poner un WAF o firewall configurado para lo que estés protegiendo
    • etc..
Cuando ves que fue otra persona, consultale antes de avisar públicamente para darle oportunidad de protegerse. Aunque yo pido permiso, "la ley de la selva de la ciberseguridad" contempla que cuando otro mete la pata se le avisa pero si no responde, pasado un tiempo se hace público el asunto para el beneficio común.


¿Cómo hago para compartir información en la lista de modo útil y menos inseguro?


image.png


Ojo que alguien que se dedica quizás puede determinar marca e incluso modelos de dispositivos por la información de la imagen, por ejemplo que soporta 32 entradas



Ok, ya tengo para este tipo de información un cierto criterio para elegir si exponerla o no, pero, no me dedico a la seguridad de la información, ¿cómo hago para no volver a meter la pata? Es una interminable cadena de "si" y relaciones tenues entre

La manera es ponerse en el lugar del otro y pensar si la información que se expone nos hace únicos, no es sencilla de obtener por otros medios, podría formar parte de una cadena de dependencias y para acceder a un recurso protegido.

Todo esto basado en que hay que saber lo más posible de tecnología.

También hay que enmarcar esto en una evaluación de qué se gana y que se pierde y decidir en función de eso si vale la pena el esfuerzo.








--

marcom...@gmail.com

unread,
Feb 11, 2021, 3:15:48 PM2/11/21
to Embebidos32
Hola estimado, te comento desde nuestra experiencia, posiblemente esta información también te pueda ayudar con respecto a mqtt.

Podrías intentar conectar un software simulador de mqtt por ejemplo mqtt explorer, lo instalas en tu pc y lo conectas a un broker en la nube, recuerda que tienes dos puertos para seleccionar con seguridad (8883) y sin seguridad (1883).
Para probar puedes usar una plataforma que tenemos en la web, solo pones tu correo y creas el usuario, luego creas una variable de testing y te entregara un topic, este topic lo pones en el mqtt explorer y listo, comienza a simular tus datos.

Así podrás saber si esta bloqueado el puerto o no.

El link del broker y plataforma iot es: https://idealcloudiot.idealcontrol.cl/

Aquí te dejo link con tutorial para configurar y descargar el mqtt explorer.

Saludos amigo y por supuesto nos cuentas como te va.

Carlos Pantelides

unread,
Feb 16, 2021, 3:34:24 PM2/16/21
to Embebidos32
Perdón que no pueda aportar más al tema, estoy con unas dificultades logísticas, uno de estos días.... Mientras, he emprolijado y completado el aspecto de cuidar no perder información, está en https://seguridad-agile.blogspot.com/2021/02/consejos-para-compartir-informacion.html

Saludos

Oscar Sanz

unread,
Mar 7, 2021, 11:15:20 AM3/7/21
to embeb...@googlegroups.com
Estimados todos.

Para darle cierre a este tema y nuevamente agradeciendo todos lso comentarios y sugerencias, quiero comentarles cómo terminó esto.

Debo decir que finalmente el problema que pensé que existía ... no era tal.

Lo que hice finalmente fue contratar un VPS porque dado que sobre este servidor voy a montar servicios que deben tener un alto grado de disponibilidad, no es buena idea que esto corra sobre un servidor en mi casa.
Pero el puerto 1883 siempre estuvo abierto y habilitado en el Linux de mi servidor.
Sólo que si el servicio no está corriendo en el momento, cualquier test de puerto abierto/cerrado que corra sobre la IP del servidor va a dar como cerrado.   

Al menos esa fue mi experiencia y lo que "resolvió" el problema en este caso.

Saludos a todos.
Reply all
Reply to author
Forward
0 new messages