15 49.0138 8.38624 1 0 4000 1 https://www.alexmedina.net 300 true 0

Poner un proxy inverso en node-red para ocultar los puertos

1 Comment

Exponer puertos a internet es una mala practica que puede acarrear ataques innecesarios. Tenemos la ocasión perfecta para utilizar un proxy inverso, ocultar los puertos y darle un aspecto de url normal. Utilizaremos apache2 (en este caso corriendo en un Ubuntu).

En este caso será para ocultar el puerto por defecto de nodered que es el 1880 y lo transformaremos en una elegante url con un aspecto /nodered

Nota: existen aplicaciones como traefik que se encargan de gestionar esto.

Primero activamos los módulos de Apache que necesitamos:

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_wstunnel

Cambiamos en el settings.js de nodered la opción httpRoot:

// The following property can be used in place of 'httpAdminRoot' and 'httpNodeRoot',
// to apply the same root to both parts.
httpRoot: '/nodered',

Modificar el archivo /etc/apache2/sites-enabled/000-default.conf

nano /etc/apache2/sites-enabled/000-default.conf

Después añade estas líneas, la primera para el websocket, y la segunda para la aplicación:

ProxyPass                     "/nodered/comms"           "ws://localhost:1880/nodered/comms"
ProxyPassReverse      "/nodered/comms"            "ws://localhost:1880/nodered/comms"
ProxyPass                   /nodered           http://localhost:1880/nodered
ProxyPassReverse    /nodered            http://localhost:1880/nodered

Y ahora nuestra aplicación será accesible desde http://domain.com/nodered

Lógicamente esto sirve para cualquier aplicación que queramos exponer a internet.

Previous Post
Hacer consultas en MongoDB… pensando como en SQL
Next Post
Generar un certificado SSL autofirmado para nodered (o cualquier aplicación)

1 Comment

  • 19 septiembre, 2022 at 8:32 pm

    Hola estoy usando AWS-Ubuntu administrado por VESTA; he seguido los pasos pero no he conseguido que funcione.

    Podría haber una diferencia al estar usando VESTA

    Reply

Leave a Reply

SOBRE MÍ

Afortunado de trabajar en lo que me gusta, aprendiendo cada día cosas nuevas y ayudando a crear proyectos.
Conocimientos en diversas tecnologías y experiencia demostrable.
¿Nos ponemos manos a la obra?

Mis Apuntes