Umbrel: Setzen des Passworts für Thunderhub (Deu)

lcodes

2021/06/21

Categories: Tutorial Tags: lightning,umbrel,thunderhub,password

Wie man das Passwort bei Thunderhub setzen kann

Leider ist es nicht möglich, ein Passwort für Thunderhub durch das Webinterface von Umbrel zu vergeben. Es wird von Seiten Umbrel, ein Standard-Kennwort vergeben, dieses lautet: “moneyprintergobrrr”. Sollte also ein Angreifer die Adresse und den Port von Thunderhub erreichen können und das Standard-Passwort ist aktiv, können Kanäle geöffnet, geschlossen und Beträge verschoben werden. Es geht soweit, dass man im Grunde die Bitcoin Wallet plündern könnte. Ich gehe davon aus, dass Umbrel dies in Zukunft beheben wird. Solange das nicht der Fall ist, zeige ich dir wie du dir selber helfen kannst.

  1. Verbinde dich zu deiner neuen Umbrel Node. Dein Passwort ist das Kennwort was du für den Login im Web-Interface benutzt. Beim eingeben des Passworts musst du darauf achten, das Linux keine Sterne oder Punkte anzeigt wenn du Buchstaben eingibst. Die Eingaben kommen aber trotzdem an.
  2. Linux:

    ssh umbrel@<internal ip/external ip/tor-name>
    

So sieht Umbrel auf der Kommandozeile aus.

umbrel@umbrel:~ $ ls
umbrel
umbrel@umbrel:~ $ cd umbrel/
umbrel@umbrel:~/umbrel $ ls
LICENSE.md  README.md  SECURITY.md  app-data  apps  bin  bitcoin  db  docker-compose.yml  electrs  events  info.json  karen  lnd  logs  nginx  scripts  statuses  templates  tor
umbrel@umbrel:~/umbrel $ id
uid=1000(umbrel) gid=1000(umbrel) groups=1000(umbrel),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),105(input),109(netdev),996(docker),997(gpio),998(i2c),999(spi)
  1. Ok, als erstes gehen wir mal in den TH-Ordner und in das Daten Verzeichnis:

    umbrel@umbrel:~/umbrel $ cd app-data/thunderhub/data/
    umbrel@umbrel:~/umbrel/app-data/thunderhub/data $ nano thubConfig.yaml 
    

    Nano ist ein einfacher Texteditor. Natürlich kannst du auch gerne einen anderen Editor nutzen, wie z.B. VI/M, Emacs oder für die Pro’s sed. Beispiel-Ausgabe von meiner thubConfig.yaml:

    masterPassword: thunderhub-$2b$12$UUIWQCLKOIQWTF123uNMASDGWPDAPDJ
    accounts:
    - name: Umbrel
    serverUrl: '{YML_ENV_1}'
    certificatePath: /lnd/tls.cert
    macaroonPath: /lnd/data/chain/bitcoin/mainnet/admin.macaroon
    

    In Zeile Eins (1), siehst du das ge-hash-te Passwort. Dies startet hinter der Zeichenkette “thunderhub-”. Es wird bcrypt als Hashingalgorithmus verwendet. Dieser wurde Ende der 90er von Nils Provos entworfen und darf weiterhin als sicher betrachtet werden. Um ein neues Passwort zu generieren kannst du z.B. diesen Online-Generator verwenden. Oder du nimmst ein einfaches python Skript:

    $ python thundercrypt.py -p sicherespasswort
    masterPassword: thunderhub-$2b$12$dysPVg6cRkoz0Qkq1EjMTu.iCXKOVSEybza8b8z3kxVlgyhLPpEW2
    

    Falls euch die library bcrypt fehlt:

    pip install bcrypt
    

    Gib also einfach dein neues Passwort ein, lass es hashen und ersetze den String nach dem “thunderhub-” mit dem neuen Hash. Drücke CTRL+S und CTRL+X um die Datei zu speichern und Nano zu verlassen. Da die Konfigurationsdatei von TH immer nur beim Starten eingelesen wird, musst du ebenfalls den Docker Container neu starten. Als Alternative kannst du auch einfach Umbrel selber rebooten.

  2. Zuerst prüfen wir die laufenden Container und suchen nach Thunderhub.

    umbrel@umbrel:~/umbrel $ docker ps
    

Ok, das sind ja eine Menge Container.

ad488d7a9ceb   shahanafarooqui/rtl:0.10.1             "/sbin/tini -g -- no…"   3 days ago       Up 3 days       3000/tcp, 0.0.0.0:3001->3001/tcp                                                                ride-the-lightning_web_1
1d8bd7ab81ca   louneskmt/loop:v0.12.1-beta            "/bin/loopd --networ…"   3 days ago       Up 3 days       8081/tcp, 11010/tcp                                                                             ride-the-lightning_loop_1
ef244d3e2483   apotdevin/thunderhub:v0.12.14          "docker-entrypoint.s…"   4 days ago       Up 4 days       0.0.0.0:3000->3000/tcp                                                                          thunderhub_web_1
7902c05d3b86   mempool/frontend:v2.1.2                "/patch/entrypoint.s…"   4 days ago       Up 4 days       80/tcp, 0.0.0.0:3006->3006/tcp                                                                  mempool_web_1
7ace30a30c42   mariadb:10.5.8                         "docker-entrypoint.s…"   4 days ago       Up 4 days       3306/tcp                                                                                        mempool_mariadb_1
a53c3e3b2489   mempool/backend:v2.1.2                 "docker-entrypoint.s…"   4 days ago       Up 4 days       8999/tcp                                                                             

Umbrel packt jeden Service in einen eigenen Container, dass ist aus mehreren Gründen sinnvoll und kann generell als Best Practice angesehen werden. Nichtsdestotrotz, macht es das ganze auf den ersten Blick etwas unübersichtlich. Daher suchen wir jetzt explizit nur nach dem thunderhub container.

umbrel@umbrel:~/umbrel $ docker ps|grep thunderhub
ef244d3e2483   apotdevin/thunderhub:v0.12.14 "docker-entrypoint.s…" 4 days ago Up 4 days 0.0.0.0:3000->3000/tcp thunderhub_web_1

Wir nehmen die ID aus dem ersten Feld (ef244d3e2483) und mit einem einfachen Kommando, lässt sich der Container neu starten.

umbrel@umbrel:~/umbrel $ docker restart ef244d3e2483
ef244d3e2483

Wurde dieser nun wirklich neu gestartet?

ef244d3e2483   apotdevin/thunderhub:v0.12.14 "docker-entrypoint.s…"   4 days ago Up 34 seconds 0.0.0.0:3000->3000/tcp thunderhub_web_1

Wenn alles geklappt hat, kannst du nun dein neues Passwort für Thunderhub nutzen.

Ende

Ich hoffe das Tutorial hat dir geholfen! :)

>> Home