*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
- County Name: DE
- State: Mainsail
- Locality Name: Mainsail
- Organisation: Mainsail
- Oraganizational UNit Name: Mainsail
- Common name: Mainsail
- 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
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
- Ö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!
4. Passwortschutz Moonraker vorbereiten
Füge folgendes in deiner moonraker.conf ein
[authorizations]
force_logins: true
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!