Youtube : Mainsail und Fluidd per Login schützen

Mainsail und Fluidd mit Passwort schützen

Hallo.
Hier schauen wir uns an, wie wir unsere Webanwendung Mainsail oder Fluidd mit einem Login schützen können.
Wir empfehlen euch Fluidd für diesen Einsatzzweck zu Nutzen

Videoguide Mainsail oder Fluidd schützen

 

Hinweis:
Hattet ihr fluidd installiert und wollt dann wieder auf Mainsail, dann solltet ihr über kiauh Klipper, Moonraker, Mainsail und die Mainsail.conf löschen. Zusätzlich löscht aus dem ~/printer_data/config die moonraker.conf


Damit ein passwortgeschützer Login nicht durch Network-Sniffing über das http Protokoll abgegriffen werden kann, solltest du https (verschlüsselter Datenverkehr) aktivieren.

Backup eurer Konfig und Database
cp -r ~/printer_data ~/backup_printer_data
Benötigte Anwendungen installieren
sudo apt install apache2-utils
https Zertifikat anlegen
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048  -keyout /etc/nginx/mainsail.key  -out /etc/nginx/mainsail.crt

-days = Wie viel Tage gültig -> Hier 10 Jahre
-keyout = Hier wird der Ablageort und Name des Keys festgelegt "mainsail.key"
-out = Hier wird der Ablageort und Name der crt Datei festgelegt "mainsail.crt"


Welche Daten sind wichtig im Konfigurationsmenü der Zertifikatserstellung

  1. County Name: DE
  2. State: Mainsail
  3. Locality Name: Mainsail
  4. Organisation: Mainsail
  5. Oraganizational UNit Name: Mainsail
  6. Common name: Mainsail
  7. Email Adress:
http auf https umleiten

Konfig sichern:

sudo cp /etc/nginx/sites-available/mainsail /etc/nginx/sites-available/backup.mainsail

Konfig bearbeiten:

sudo nano /etc/nginx/sites-available/mainsail

So soll es aussehen:

server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

server {
#    auth_basic           "user login";
#    auth_basic_user_file /etc/nginx/.htpasswd;
    listen 443 ssl default_server;
    ssl_certificate      /etc/nginx/mainsail.crt;
    ssl_certificate_key  /etc/nginx/mainsail.key;

    access_log /var/log/nginx/fluidd-access.log;
    error_log /var/log/nginx/fluidd-error.log;

Nginx neustarten:

sudo systemctl restart nginx 

Wichtiger Letzer Schritt: Passt euere Verbindung im Slicer an!

Für den SuperSlicer habe ich leider keine Lösung, wie ihr https erreichen könnt

Orca Slicer Beispiel

Vor die IP gehört jetzt ein https://

image.png

Fluidd mit Passwort schützen:

1. Fluidd installieren

Installation über Kiauh:

https://book.cryd.de/books/klipper/page/kiauh-installieren


Installieren -> Fluidd

2. SSL aktivieren

Konfig sichern:

sudo cp /etc/nginx/sites-available/fluidd /etc/nginx/sites-available/backup.fluidd

Konfig bearbeiten:

sudo nano /etc/nginx/sites-available/fluidd

So soll es aussehen:

server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl default_server;
    ssl_certificate      /etc/nginx/mainsail.crt;
    ssl_certificate_key  /etc/nginx/mainsail.key;

    access_log /var/log/nginx/fluidd-access.log;
    error_log /var/log/nginx/fluidd-error.log;

Nginx neustarten:

sudo systemctl restart nginx 
3. Nutzer anlegen und Schutz aktivieren
  1. Öffne die Einstellungen von Fluid und lege einen Nutzer an.
    Siehe Bild

Tipp: Wähle als Login nicht die Login Daten deines Pi's. Sprich nicht den ssh Zugang und auch nicht das root Passwort!

image.png

image.png

4. Passwortschutz Moonraker vorbereiten

Füge folgendes in deiner moonraker.conf ein

[authorizations]
force_logins: true
5. Geschützes Login Fenster

image.png

6. Ggf. Browser Cache leeren

Hast du Probleme beim Login, lösche deinen Browsercache über die Einstellungen deines Browsers.

Oder nutze die Tastenkombination STRG+F5

7. Passwort vergessen

Loggt euch per FTP oder SSH ein und ändert in der moonraker.conf diese Zeile so ab.

Danach einemal Cache leeren und ihr kommt wieder auf die Oberfläche und könnte euren Nutzer löschen und wieder anlegen.

#force_logins: true

Mainsail mit Passwort schützen

Webserver Authentifizierung hinzufügen

Öffnet Putty und verbindet euch:

sudo nano /etc/nginx/sites-available/mainsail

Jetzt fügt ihr folgendes unter "server" hinzu:

    #Nutzer Authentifizierung
    auth_basic "User Login";
    auth_basic_user_file /etc/nginx/.htpasswd;

Verlasst den Editor mit STRG+X -> Y zum Bestätigen -> Enter zum Übernehmen des Namens

Nutzer anlegen
sudo htpasswd -c /etc/nginx/.htpasswd robin

robin = Nutzername, den ihr verwenden wollt

Wenn dieser Befehl nicht funktioniert, dann müsst ihr oben die benötigten Anwendungen installieren.

Ohne Nutzer und Passwort kommt ihr nicht auf die Weböberfläche. Daher ist der nächste Schritt wichtig!


Revision #41
Created 27 August 2023 17:49:17 by Robin
Updated 28 August 2023 14:46:21 by Robin