Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cs:sw:03-3rd-party:nodered:securing-nodered-hidden [2020/06/12 12:53]
avsetula [Admin API]
cs:sw:03-3rd-party:nodered:securing-nodered-hidden [2021/08/06 07:06] (current)
avsetula
Line 6: Line 6:
 ---- ----
  
-Jelikož se budeme ​PLC připojovat pomocí **SSH** protokolu, je nutné [[cs:​files:​software:​tools:​advanced-ip-scan-hidden|znát IP adresu ​PLC]] a mít na PC nainstalovaného SSH klienta. Mezi nejoblíbenější pro OS Windows patří software **PuTTy**. Pokud jej v PC nemáte, či tento SW vůbec neznáte, postupujte dle [[cs:​files:​software:​tools:​putty-hidden|tohoto návodu]].+Jelikož se budete ​jednotce ​připojovat pomocí **SSH** protokolu, je nutné [[cs:​files:​software:​tools:​advanced-ip-scan-hidden|znát IP adresu ​jednotky]] a mít na PC nainstalovaného SSH klienta ​na PC. Mezi nejoblíbenější pro OS Windows patří software **PuTTy**. Pokud jej v PC nemáte, či tento SW vůbec neznáte, postupujte dle [[cs:​files:​software:​tools:​putty-hidden|tohoto návodu]].
  
-Jakmile jste ipojeni ​přihlášení,​ máte před sebou terminálové okno s přístupem do jednotkyNásledující příkaz zkopírujte a vložte do terminálu, vkládání do PuTTy se provádí za pomoci právého tlačítka myši.+<WRAP center round info 95%> 
 +Pro enos souborů mezi PC jednotkou Unipi můžete použít SW [[https://​winscp.net/​eng/​download.php|WinSCP]]. Přihlašovací údaje jsou stejné jako pro SSH. 
 +</​WRAP>​
  
-<​code>​ +Dále již postupujte dle [[https://​nodered.org/​docs/​user-guide/runtime/securing-node-red|tohoto návodu]] na oficiálních stránkách NodeRED.
-sudo npm install -g --unsafe-perm node-red-admin +
-</​code>​ +
- +
-Po dokončení instalace ''​node-red-admin''​ balíčku, si již můžete vygenerovat šifrovanou podobu Vašeho hesla, které budete následně vkládat do konfiguračního souboru ''​settings.js''​. Pro vygenerování hesla zadejte příkaz: +
- +
-<​code>​ +
-node-red-admin hash-pw +
-</​code>​ +
- +
-Nyní budete vyzváni k napsání hesla, psané znaky se nebudou nijak zobrazovat a není možné si heslo následně překontrolovat,​ jelikož výstup z programu je již šifrované heslo. Dbejte na to, aby jste heslo zadali bezchybně. +
- +
-Heslo si zkopírujte,​ budete jej dále používat. +
- +
- +
-===== Admin API ===== +
-Toto rozhraní je velmi důležité zabezpečit,​ jelikož zde máte logiku vašeho programu a lze přes něj ovládat celé PLC bez omezení. Existuje však varianta uživatele "Pouze pro čtení",​ takovýto uživatel se může připojit, sledovat, ale nemá oprávnění zasahovat do programu, ani měnit hodnoty. Ve výchozím nastavení je požadavek k autorizaci vypnut. +
- +
-Pro zapnutí autorizace je třeba přejít do skryté složky ''​.node-red''​. Zadejte příkaz: +
- +
-<​code>​ +
-cd ~/​.node-red +
-</​code>​ +
- +
-Nyní jste se přepnuli do skryté složky Node-RED. Nyní spusťtě terminálový program **Midnight Commander**,​ zadejte do terminálu:​ +
- +
-<​code>​ +
-mc +
-</​code>​ +
- +
-Tím se Vám otevře modré okno Midnight Commanderu, zde pomocí šipek vyberte soubor ''​settings.js''​a klávesou **F4** ho otevřete pro úpravy. +
- +
-V tomto souboru vyhledejte položku ''​adminAuth'',​ ve výchozím stavu je zakomentována pomocí značky ''​⁄⁄'',​ vše od této značky až po zalomení řádku je v kódu ignorováno. Proto je nutné tyto značky u adminAuth odebrat. Nyní kód vypadá takto +
- +
-<​code>​ +
-    // 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$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",​ +
-    //        permissions:​ "​*"​ +
-    //    }] +
-    //}, +
-</​code>​ +
- +
-Po odkomentování takto:  +
- +
-<​code>​ +
-    // 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$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",​ +
-            permissions:​ "​*"​ +
-        }] +
-    }, +
-</​code>​ +
- +
-Pokud by jste nyní soubor uložili, odpojili a znovu připojili nápájení,​ popř. restartovali PLC, bude již Admin API pro vstup požadovat heslo. Výchozí jméno je: ''​admin''​ a heslo: ''​password''​. Můžete si ale všimnout, že vaše heslo generované v úvodu článku má stejný formát jako výchozí heslo uživatele, pokud jej tedy nahradíte, nastavíte tím své heslo k danému uživatelskému účtu. +
- +
-V případě, že chcete nastavit více uživatelů,​ tak do hranatých závorek ''​users:​ []''​ vložte další blok ze složených závorek a oddělte je čárkou: +
- +
-<​code>​ +
-    // Securing Node-RED +
-    // ----------------- +
-    // To password protect the Node-RED editor and admin API, the following +
-    // property can be usedSee http://​nodered.org/​docs/​security.html for details. +
-    adminAuth: { +
-        type: "​credentials",​ +
-        users: [ +
-            { +
-                username: "​admin",​ +
-                password: "​$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",​ +
-                permissions:​ "​*"​ +
-            }, +
-            { +
-                username: "​user_rd",​ +
-                password: "​$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",​ +
-                permissions:​ "​read"​ +
-            } +
-        ] +
-    }, +
-</​code>​ +
- +
-Všimněte si, že druhý uživatel má oprávnění pouze pro čtení, můžete tedy nastavovat dva druhy oprávnění:​ +
-  * čtení/​zápis -> ''​*''​ +
-  * jen čtení -> ''​read''​ +
-===== Dashboard =====+