[Übersicht] napp-it cs, Web-GUI für fast jeden ZFS Server oder Servergruppen

Der K(r)ampf mit der Benutzerverwaltung

Ich bin gerade dabei eine Benutzerverwaltung einzubauen mit der man auch eine größere Anzahl Nutzer für einen Fileserver verwalten kann. Schwerpunk ist Free-BSD 14, Linux (Proxmox), Illumos/Solaris und Windows. OSX und TrueNas werden mit der Benutzer/Shareverwaltung nicht unterstützt.

user.png


geplante Funktionen (noch nicht alles fertig):
Zweifenster Ansicht, links Accounts, rechts Gruppen
Direktanwahl eines (AD) Servers

Lokale oder AD Accounts
Listen von Benutzer und Gruppen mit Vorauswahl "alle oder non-system", bei Gruppen dazu eine Auswahl der Gruppe, dazu eine Filteroption
Anlegen/Löschen von Benutzer oder Gruppen
Hinzufügen/ Entfernen von Gruppenmitgliedern mit Mehrfachauswahl

Probleme
Windows: Nutzer oder Gruppen werden mit einer SID indentifiziert
Die ist entweder "well known" wie lokale Admins oder weltweit eindeutig.

Gruppennamen können sowas lustiges sein wie
Zugriffssteuerungs-Unterstützungsoperatoren

Die heißt natürlich in jeder Sprache anders,

Linux/Unix
Nutzer haben eine uid/gid wie 101.
Das kann natürlich auf jedem Rechner was anderes sein

Illumos/ Solaris
Ist ein Unix System mit uid und gid.
Der SMB Server nutzt allerdings ausschließlich WZugriffssteuerungs-Unterstützungsoperatoren rmindows SID als Dateireferenz.
Bei lokalen Nutzern wird die aus der uid abgeleitet, mit Active Directory liefert die der AD Server. Für lokale SMB Gruppen gibts eine eigene Gruppenverwaltung.

aktueller Stand.
Anzeige/Filter der Eigenschaften
User > Check user zeigt alle ermittelten Eigenschaften (ich ermittle die vor/bei jedem Menü unter User)
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ich werde mich stärker auf Windows mit Xampp konzentrieren. Damit hat man eine portable Lösung (kopieren und läuft) die neben ZFS und Windows SMB (ist was Performance und ACL Rechte angeht, SAMBA Lösungen überlegen, ein (virtueller) Windows Server als SMB Filer für ZFS als Hauptanwendung) bringt aber neben Apache noch Filezilla ftp, MariaDB, MercuryMail PHP, Perl, PHPMyAdmin und Tomcat. Alles ohne Installation. Kopieren und man hat einen umfassenden Server. Wenn man Daten ausserhalb des Xampp Ordners hat, ist ein Update lediglich ein Drüberkopieren einer neueren Version. Nappit hält seinerseits jede Version in einem eigenen Unterordner so dass auch Update/Downgrade eh kein Problem ist.
Jetzt bin ich erst über diesen Faden gestolpert.....wirklich sehr interessant leider Windows only für napp-it-cs :cry:
Grundsätzlich verstehe ich die Argumente für eine portable Lösung und für XAMPP ...aber ginge das nicht auch mit einem Docker-Container? :unsure:
...und auch mit unraid als ZFS-Server (da ist ja auch openZFS "drin") ?? :rolleyes2::unsure:
 
Viele Wege führen nach Rom.

Für die web-Management GUI wird lediglich ein cgi fähiger Webserver und Perl benötigt. Unter Linux/Unix genügte ein 50k singlefile mini_httpd als Webserver, Perl ist da eh immer dabei. Der Frontend Teil von napp-it cs würde damit direkt laufen, es wären lediglich Pfade und Settings (https) anzupassen. Das wäre auch Copy and Run (so wie mein normales napp-it.)

Im Moment snd meine Vorgaben:
- Als Management Station wird Windows eingesetzt (das steht eh überall herum).
- keine Installation (Copy and run).
- ZFS auf Windows und auf managed Servern ist optional auch wenn die meisten Menüs ZFS betreffen (Menü User ist universell)

- beliebige managebare Server oder Serverfarmen (X86,Arm) unter BSD, Linux, Illumos, OSX, Solaris und Windows incl. low RAM/low power Systeme wie Raspberry ab 1GB RAM
Haupt Zielplattformen sind Free-BSD 14, Illumos/OmniOS und Proxmox sowie "Rasperry artige Serverfarmen"

Windows habe ich quasi gesetzt, was es eher komplizierter macht. Unter Linux/Unix hätte ich mir viel Arbeit erspart (siehe mein normales napp-it das unter Linux/Proxmox nach wie vor direkt per wget installiert werden kann). Den Frontend Webserver auf Linux/Illumos ald zusammen mit dem Serverpart bringe ich eventtuell später. Dann genügt ein x-beliebiger Browser fürs Management.

Das Remote-Management von Unraid, Qnap und Co solte bereits funktionierenn.
 
Update:
Das aktuelle napp-it cs besteht jetzt aus drei Komponenten (bisher nur 1. und 2.)

1. Das web-gui Frontend unter Windows
Damit kann man per Browser und http/https den oder die Server managen.

2. Das Server Backend cs_server.
Das sind zwei Perl Scripte die auf jedem Server laufen sollten, auf dem Perl installiert ist.
Diese Scripte laufen mit Admin Rechten damit sie zfs und zpool aufrufen können. Die Backend Scripte werden über eine Socketverbindung auf Port 63000 vom Frontend angesprochen. Die Verbindung erfordert eine Authorisierung und kann auf die IP des Frontend Rechners begrenzt werden Übertragen werden Konsole Befehle und die entsprechenden Antworten unverschlüsselt.

3. Https Server um Befehle und Antworten per "Callback" verschlüsselt zu übertragen. Dabei wird ein Befehle wie zfs list verschlüsselt als Datei auf einen https Server hochgeladen. Das kann der Apache Server von napp-it cs sein auch mit selbst signiertem Zertifikat oder auch ein anderer https Server mit einem gültigem sicherem Zertifikat. Für das Hochladen und Herunterladen der Befehle und Antworten wird curl benötigt. Das ist meist dabei (auch in Windows 10/11) oder muss installiert werden, z.B. in Free-BSD 14 mit pkg install curl. Auf dem https Server wird das Modul /cgi-bin/cs/cs-connect.pl benötigt. Es sollte auf jedem cgi fähigen Webserver laufen. Unter Linux/Unix muss die erste Zeile des Scripts angepasst werden (Pfad zu Perl, /usr/bin/perl). Man kann damit recht elegant das Problem umgehen, dass eine web-gui im Lan meist nur unsicheres https mit selbstsigniertem Zertifikat nutzt. Der Nachteil eines externen https Servers ist eine etwas höhere Latenz in der Web-Gui. Mit Command Caching werde ich versuchen das erträglich zu halten.

Callback wird generell genutzt, falls die Antwort auf einen Befehl umfangreich ist da eine Socketverbindung damit Probleme hat. Um Callback zu aktivieren, in napp-it cs unter About > Setting die IP des Servers eintragen z.B. www.university.org. Im Serverscript kann man auch einen https Server angeben um ausschließlich verschlüsselte Übertragung zu erzwingen.

aktuelle Infos: https://www.napp-it.de/downloads/napp-it-cs.html
 
  • Danke
Reaktionen: you
Proxmox als SMB Server
Ohne Storage VM mit napp-it cs als Ergänzung zur Proxmox GUI

Es ist noch nicht alles fertig, aber man kann es ausprobieren :

1. Vorbereitung
-napp-it cs web-gui unter Windows herunterladen und starten
-napp-it cs server unter Proxmox herunterladen und starten
-SAMBA auf Proxmox installieren (apt install samba)

2. napp-it cs im Browser aufrufen
http(s)://localhost

-Den Proxmox Server unter ZFS Servergroup eintragen und dann in der Serverliste auswählen
-Pool anlegen, Dateisystem erstellen und unter SMB
In der Zeile des Dateisystems auf "off" klicken um die SMB Freigabe zu aktivieren (z.B. z1/data)
Bei den Folder permissions everyone=modify anwählen, damit Gast lesen und schreiben darf

samba.png


Das wars schon.
Die Freigabe "data" ist ohne Anmeldung verfügbar.
Das geht genauso unter Free-BSD, Illumos, OmniOS oder Windows.
- nicht unter TrueNAS oder OSX. Da muss man Shares in der jeweiligen GUI aktivieren.

Will man keine anonyme Gast-Anmeldung sondern sich mit Name und Passwort anmelden,
so muss man Nutzer anlegen. Das geht nicht in der Proxmox GUI sondern im Menü "User"

user.png


In Proxmox legt man im der ersten Tabelle einen Nutzer an. Dazu unter den bereits angelegten Nutzern einen neuen Nutzer eintragen, optional mit vollem Namen/Bemerkung. Man kann auch angeben ob man eine spezielle uid will, keine Shell oder Homedir und zu welcher Gruppe der Nutzer gehören soll. Bei mehreren Nutzern kann man die Rechte am Einfachsten über Gruppen festlegen.

Will man weitere Gruppen, so kann man in der rechten oberen Tabelle weitere Gruppen anlegen.
Die beiden unteren Tabellen sind für Illumos/Solaris/Windows und SID als Rechte Referenz anstatt uid/gid.

Damit man sich an einem Share anmelden muss, im SAMBA Freigabedialog die Zeile guest ok = yes auskommentieren
und die Zeile vaild users=@staff aktivieren (statt staff kann man auch andere Gruppen angeben).

Wenn gewünscht kann man weitere Share angeben eintragen,
Die globale SAMBA smb.conf liegt in /etc/samba/smb.conf

Damit eigene Änderungen in der smb.conf wirksam werden, muss man SAMBA neu starten
systemctl restart samba

Unter OmniOS/OpenIndiana/Solaris entfällt das Editieren der smb.conf.
Da nutzt man den ins OS/ZFS eingebauten SMB Server - viel einfacher zu konfigurieren/ einschalten und tut einfach.
 
Zuletzt bearbeitet:
Napp-it cs ist noch nicht ganz fertig aber jetzt fürs erste "feature complete".
Die aktuelle beta hat jetzt

- Alerts und Reports (SSL/TLS)
- User Management (create/delete)
- Verschlüsselte Dateisysteme

Durch die Client/Server Architektur ergeben sich für verschlüsselte Dateisysteme interessante Optionen:
- Anlegen von Dateisystemen optional mit einem einfachen Passwort aus dem ein sha256hex hash erzeugt wird.
- Das Passwort wird in drei Teile aufgespittet
- Das Passwort (komplett und part 1-3) wird zunächst nur auf dem Rechner mit der web-gui gespeichert, nicht lolkal auf den ZFS Servern.
Diese Passwortdateien (vor allem .komplettkey) sicher aufbewahren/ wegsichern und die Teile 1-3 zwischen ZFS Server und den Webservern aufteilen.

Zum Öffnen eines Dateisystems gibt es folgende Optionen
- Bereitstellen der Keydateien, entweder komplett oder part1-3 aufgeteilt lokal, w1 und w2
Üblicherweise sollte ein Teil auf dem ZFS Server liegen und die beiden anderen Teile auf einem oder zwei https Webservern
Entweder braucht man dann beide Webbserver um alle drei Teile zusammenzusetzen oder die Webserver w1 und w2 haben beide je Teil 2 und 3 des Keys.
Ein unlock request auf einem ZFS Server sorgt dann dafür, dass der versucht von den Webservern alle fehlenden Teile des Keys zu laden.
Das erlaubt dezentrales ZFS Management. Der Zugriff auf die Webserver erfordert einen auth key und der Zugriff kann auf ip begrenzt werden. Als webserver kann man die weg-gui selber nehmen oder öffentliche https Server mit gültigem Zertifikat,
- oder man gibt das Passwort ein aus dem der Key erzeugt wurde oder den Key

Soweit zum Konzept. Jetzt gehts ans Testen um die letzten Bugs zu beheben damit alles rund läuft.
Und dann Dokumentation.

enc.png


Handbuch ist auch in Bearbeitung
www.napp-it.org/doc/downloads/napp-it_cs.pdf
 
Zuletzt bearbeitet:
Ich habe einen neuen Release Candidate rc2 hochgeladen.
- bessere Performance
- Mehrfachstart von Jobs z.B. Replikation geblockt
- diverse bugfixes

Ich werde zwar nicht alle Features von der Solaris Version portieren, aber bereits jetzt macht es mir Spass damit zu arbeiten, auch mit Free-BSD oder Proxmox. Man kann auch Replikationen der Solaris Version fortführen wenn man Jobs mit gleicher Source/Destination/Jobid anlegt.
 
Ich beabsichtige für Windows ein Menü mit Informationen und Einstellungen zu Windows Storage Pools, Storage Spaces und virtual disks, ähnlich wie bei ZFS Pools, Dateisysteme und Volumes. Nach über 15 Jahren intensiver Beschäftigung mit Storage und ZFS bin ich aber doch entsetzt wie unsäglich umständlich bis schwer verständlich Windows Software Raid im Vergleich zu ZFS Software Raid umsetzt, auch wenn Ähnlichkeiten bestehen wie dass man aus Platten einen Pool baut, darauf virtual disks anlegt und darauf Dateisystem Partitionen wie ntfs oder hoffentlich bald das viel modernere ReFS bei jedem Windows 11 und nicht nur bei den Enterprise Editions.

Wie schreibt Google so schön dazu:
You can use Storage Spaces to group two or more drives together in a storage pool and then use capacity from that pool to create virtual drives called storage spaces. Das versteht man erst nach ausreichendem Genuß von jetzt erlaubtem Haschisch.

Es geht ja schon los bei der Frage wie man ein einfaches Raid 1 oder Parity Raid anlegt aus Platten. Im Startmenü findet man nichts außer man geht auf Start > Suchen. Da Infos meist auf Englisch wind, sucht man vergeblich nach Storage Spaces bis man dann entdeckt dass das im deutschen Windows "Speicherplatz verwalten" heißt. Da kann man dann das Raid-1 oder 5 anlegen. Ist was die Einstellungen angeht auch beim zweiten Blick nicht ganz einsichtig was da bei den Kapazitäten und Einstellungen gemeint ist. Nagut, Speicherpool mit Parity Raid aus 3 Platten angelegt.

Geht man dann in die Plattenverwaltung sieht man den Speicherpool und eine "freie" Platte, die Paritätsplatte halt auf offline. Nagut, jetzt eine virtual disk auf dem Storage Pool angelegt, man will ja nicht nur Storage Pools sondern Storage Spaces, so heißt ja das Dingens, auch wenn die Zuordnung Platten -> Pools -> Spaces/virtual Disks -> Partitionen einem Windows Entwickler wohl nach zuviel Genuss berauschender Substanzen eingefallen ist.

Hat man dann Speicherplatz unter einem Laufwerk am Laufen ist man dann verdutzt, wie schlecht die Performance ist. Unter ZFS weiß man dass ZFS recsize bzw. volblocksize einen Einfluß auf Performance und Speichereffektivität hat. Es verwundert also nicht dass man auch unter Windows Einstellungen wie Allocation Unit Size, Interleave Size oder Colums (Anzahl der physischen Platten) findet, jedoch mit nicht sonderlich guten Defaults.

Ich bin dann auf folgende Seite gestoßen: https://wasteofserver.com/storage-spaces-with-parity-very-slow-writes-solved/
Fand ich sehr hilfreich und den Empfehlungen folgend hat sich die Performance bei mir tatsächlich fast verdoppelt.

Sollte man auch lesen:
 
Zuletzt bearbeitet:
Aktuelle napp-it cs dev 21.Jun

Support für Windows Storage Spaces mit Menüs
Pools > Windows Storage Pool > Create, Expand
Filesystem > Windows Storage Spaces > Create, Destroy

vd.png
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh