Outils pour utilisateurs

Outils du site


tutoriel:oliv:x64-installer-nodered-openbsd

Installer Node-Red sur OpenBSD

Un connecteur pour l'IoT

Objectifs

Ce tutoriel couvre l'installation de Node-RED sur OpenBSD, pour un fonctionnement suivant :

  1. Node-RED en mode daemon via l'utilisateur _nodered
  2. Un répertoire sur un disque en miroir : /data/nodered
  3. Accès en https uniquement
  4. Des utilisateurs authentifiés

Pré requis

Créer le répertoire :

# mkdir -p /data/nodered/.ssl

Ajouter l'utilisateur système :

# groupadd -v -g 777 _node-red 
# useradd -v -c "Node Red daemon" -d /data/nodered -g 777 -s /sbin/nologin -u 777 _node-red
# chmod 755 /etc/rc.d/node-red

Installer Node-Red

  • NodeJs
  • Node-Red
  • Node-Red-Admin (management des utilisateurs applicatifs)
# pkg_add node
# npm install -g --unsafe-perm node-red
# npm install -g node-red-admin

Démarrons Node-Red pour créer l'arborescence applicative dans /data/node-red

doas -u _node-red /usr/local/bin/node-red --title "Node-Red : Home Automation" --userDir /data/node-red

Nous pouvons arreter Node-Red via Ctrl C

Démarrer Node-Red au boot

/etc/rc.local

if [ -x /usr/local/bin/node-red ]; then
echo 'Starting Node-Red' && doas -u _node-red /usr/local/bin/node-red --title "Home Automation" --userDir /data/nodered
fi

Tester

Ouvrir votre navigateur url: xxx.xxx.xxx.xxx:1880

Securiser Node-Red

1. Activer un compte admin applicatif

Créer un mot de passe chiffré :

$ node-red-admin hash-pw
Password: <Entrer un mot de passe>
$2a$08$gxCsv3bGcPOvlarJiZw.QOqNfQKak7.vzltgRIAbGScbvGdOfE3HO

Décommenter l'objet utilisateur adminAuth dans /data/nodered/settings.js

    // Securing Node-RED
    // -----------------
    // To password protect the Node-RED editor and admin API, the following
    // property can be used. See http://nodered.org/docs/security.html for details.
    adminAuth: {
        type: "credentials",
        users: [{
            username: "admin",
            password: "$2a$08$gxCsv3bGcPOvlarJiZw.QOqNfQKak7.vzltgRIAbGScbvGdOfE3HO",
            permissions: "*"
        }]
    },

2. fournir un accès utilisateur au dashboard

Créer un mot de passe chiffré :

$ node-red-admin hash-pw
Password: <Entrer un mot de passe>
$2a$08$Fa6lO1rVaMPZYsxivz/PVOJoMly4/.Qi9EqMhReMMOLzutmVcC8Ty

Décommenter le node httpd dans /data/nodered/settings.js

(...)
    // To password protect the node-defined HTTP endpoints (httpNodeRoot), or
    // the static content (httpStatic), the following properties can be used.
    // The pass field is a bcrypt hash of the password.
    // See http://nodered.org/docs/security.html#generating-the-password-hash
    httpNodeAuth: {user:"dashUser",pass:"$2a$08$Fa6lO1rVaMPZYsxivz/PVOJoMly4/.Qi9EqMhReMMOLzutmVcC8Ty"},
    //httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
(...)

3. Fournir un accès uniquement en https

Créer un certificat SSL auto signé :

# cd /data/nodered/.ssl/
# openssl genrsa -out node.key 2048
# openssl req -new -sha256 -key node.key -out node.csr
# openssl x509 -req -in node.csr -signkey node.key -out node.crt
# chmod 400 * 

Décommenter dans /data/nodered/settings.js

(...)
    // The `https` setting requires the `fs` module. Uncomment the following
    // to make it available:
    var fs = require("fs");
(...)
    // The following property can be used to enable HTTPS
    // See http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener
    // for details on its contents.
    // See the comment at the top of this file on how to load the `fs` module used by
    // this setting.
    // 
    https: {
        key: fs.readFileSync(__dirname +'/.ssl/node.key'),
        cert: fs.readFileSync(__dirname +'/.ssl/node.crt')
        
    // The following property can be used to cause insecure HTTP connections to
    // be redirected to HTTPS.
    requireHttps: true,

Contribut(rice|eur)s :

oliv pengouinpdt
tutoriel/oliv/x64-installer-nodered-openbsd.txt · Dernière modification: 2020/04/18 10:41 de oliv