Ich benötige Anregungen zur Entwicklung und Umsetzung eines Konzepts für einen Server zur Dateibereitstellung im I-Net

Mitglied: beidermachtvongreyscull

beidermachtvongreyscull (Level 3) - Jetzt verbinden

27.01.2021, aktualisiert 16:11 Uhr, 650 Aufrufe, 4 Kommentare, 2 Danke

Guten Tag Kollegen,

ich habe folgendes Problem:

  • Per Verordnung müssen wir unseren Kommunikationspartnern eine Dateibereitstellungsplattform anbieten.
  • Die Plattform muss zwei Klassen von Dateien vorgangsbezogen anbieten:
    • pro Kommunikationspartner eines Vorgangs (Zugriff nur für den einzelnen Kommunikationspartner)
    • für alle Kommunikationspartner eines Vorgangs (Zugriff für alle, die in den Vorgang involviert sind)
  • Pro Vorgang können mehrere tausend Kommunikationspartner vorkommen
  • Anonymisierung ist erforderlich im Zuge der DSGVO. Die Kommunikationspartner dürfen sich auf dieser Plattform nicht erkennen.

Stand der Dinge

Wir verwenden eine Verwaltungssoftware, die die Vorgänge zentral verwaltet und gewisse Tabellenexporte erlaubt.
Es wäre also möglich, hieraus eine Liste der Kommunikationspartner zu exportieren. Die Datensätze enthielten auch eine eindeutige ID, die zur Anonymisierung herangezogen werden könnte.

Die Verwendung von Plattformen wie OwnCloud, nextCloud u.d.gl. scheidet aus meiner Sicht aus, da das Anlegen der Nutzerkonten vorallem in dieser Stückzahl händisch nicht in guter Zeit zu machen scheint. Selbst wenn es ginge, müssten unsere Mitarbeiter sicherstellen, dass das jeweilige Nutzerkonto auch nur den Vorgängen (1:n-Beziehung ist möglich) zugeordnet ist, die wirklich es betreffen.

Plattformen, die den Upload von einzelnen Dateien ermöglichen (wie z.B. Jirafeau) gefallen mir dahingehend sehr, aber hier verlagert sich die Last und die Fehleranfälligkeit auf die Kommunikationswege mit den Partnern.

Was ich mir vorstellen könnte...

...ist eine Lösung auf Basis einer Kombination aus SAMBA + htpasswd + htgroup + htaccess + Apache + FancyIndexing.

Die Überlegung ist, dass unsere Mitarbeiter eine zentrale Tabelle im CSV-Format pflegen. Jeder Mitarbeiter kann für seine Vorgänge die entsprechenden Exporte machen und bereinigt diese so, dass jeder Datensatz nur noch folgendes enthält:

1. Spalte: Name
2. Spalte: eindeutige ID
3. Spalte: VBA-makrogeneriertes Zufalls-PW
4. Spalte: Vorgangsnummer
5. Spalte: VBA-makrogenerierter Link zum Dateiverzeichnis des jeweiligen Kommunikationspartners auf dem Server

Überlegung zu Spalte 2:
Zur Anonymisierung und korrekten Zuordnung der für einen bestimmten Partner vorgesehenen Dateien, reicht es meiner Ansicht nach aus, wenn das Dateisystem immer nach dem Schema "\\server\vorgangsnr\Partner-ID\" aufgebaut ist.

Überlegung zu Spalte 3 + 5:
Das halte ich für realisierbar, solange das Schema wie oben beschrieben statisch und programmatissch nachvollziehbar bleibt.

Zum Dateibereitstellungsserver:

Intern würde er, wie man an den Links erkennt, mittels Samba unseren Mitarbeitern die Dokumentenzuordnung in die Vorgänge ermöglichen.
Wenn ich die Partner-ID als Präfix im Dateinamen verwende, kann ich das auch noch per Skript (in diesem Fall VBScript) automatisieren.

Nach außen würden die Dateien über Apache angeboten.
Mittels htaccess + htpasswd + htgroup würde ich versuchen, die Struktur entsprechend zu sichern und hier käme die automatische Auswertung der zentralen CSV-Tabelle zum Tragen:

Jedes Mal, wenn ein Mitarbeiter diese Tabelle ändert, kopiert er sie auf den Server in ein bestimmtes Verzeichnis. Ein Bash-Script läuft durch die Datei durch und prüft in der Reihenfolge:

1. Existiert ein Verzeichnis passend zur Vorgangsnummer?
Wenn ja, dann weiter zum nächsten Schritt, sonst erstelle es und generiere passende htaccess-Datei darin.
2. Existiert ein Verzeichnis passend zur Vorgangsnummer und Partner-ID (Unterordner zur Vorgangsnummer)?
Wenn ja, weiter zum nächsten Schritt, sonst prüfe, ob Erstellung laut Tabelle erforderlich, erstelle ggfs. Verzeichnis + htaccess-Datei.
3. Existiert der Nutzer passend zur Vorgangsnummer?
Wenn ja, fertig, sonst erteile Zugriff auf korrespondierendes Vorgangs- und Partnerverzeichnis

Ich könnte mir solch einen Verzeichnisbaum vorstellen:


Zu den einzelnen htaccess-Dateien:
htaccess¹:
In dieser Datei würde ich das FancyIndexing definieren (und hoffen, dass diese Einstellung für die Unterverzeichnisse auch greift und sicherstellen, dass die htaccess-Dateien in den Verzeichnissen ausgeblendet und geschützt sind.

htaccess²:
Pro Vorgang eine htaccess. Sie definiert, welche Gruppe von Nutzern in diesen Ordner rein kann. Dazu könnten die entsprechenden Datensätze der CSV auf Basis der Vorgangsnummer zusammengefasst werden. Die Partner-ID ist der Nutzername. Also müsste bei Nichtvorhandensein des Vorgangsverzeichnisses neben der htaccess eine passende htpasswd per Skript angelegt werden.

htaccess³:
Pro Nutzerverzeichnis unter einem Vorgang wird eine erstellt. Sie erlaubt nur den Zugriff durch den Nutzer, dessen username, der dem Verzeichnisnamen entspricht, da es die Partner-ID ist, der erfolgreich authentifiziert wurde. Auch diese Datei würde per Skript automatisch erstellt werden.


Bevor ich mich jetzt ans Bauen, Testen und Analysieren mache...
...wollte ich mal nach Eurem fachlichen Rat fragen.

Ich möchte so viel wie möglich automatisieren. Speziell die Erstellung der Nutzer und entsprechender Verzeichnisstrukturen.

Ich habe zwar noch eine gewisse Erfahrung mit Apache und htaccess (weil ich so etwas in vereinfachter Form manuell mal gemacht habe), allerdings schon lange nicht mehr auf aktuellem Stand und was Scripting unter Linux angeht, muss ich gestehen, dass ich da überhaupt nicht sicher bin, was machbar ist und was nicht von meinen obigen Überlegungen.

Relativ sattelfest bin ich mit Ubuntu-Server. Der wäre auch meine Präferenz, da ich LAMP-Systeme bisher immer damit aufgebaut habe, die gängigen Befehle, Konfigdateien und Verzeichnisaufbau von daher noch gewohnt bin.

Meine Fragen zu Linux, Apache, htaccess, Linux-Scripting an diejenigen, die darin Erfahrung haben:

Haltet Ihr obiges Konzept überhaupt für umsetzbar?
Mir ist klar, dass bei Änderung an den htaccess-Dateien der Apache-Dienst ggf. reloaden muss. Das ist kein Problem.

Erstellung der benötigten .htaccess-Dateien aus einer Vorlage mit Platzhalter abgeleitet oder besser direkt per Skript?
Ich weiß nicht, was da besser ist, geschweige denn ob das mit Skript überhaupt machbar ist.

Welche Script-Sprache wäre am besten geeignet? Bash, Perl oder gar etwas anderes?
Ich bin in keiner der Sprachen sattelfest und müsste mich einarbeiten. Deswegen frage ich, mit welcher Script-Sprache ich alles erschlagen könnte.

Gibt es die Möglichkeit, mittels .htaccess Verzeichniseinstellungen auf untergeordnete Objekte zu "vererben"?
...so dass ich nur auf oberster Ebene den Rahmen für Darstellung und Sicherheit definiere und nach unten weitergebe.

Könnte man das auch auf Skriptebene weiterspinnen, so dass Änderungen in einem Verzeichnis per E-Mail automatisch kommuniziert werden?
Wenn die zentrale CSV pro Datensatz auch eine E-Mailadresse enthielte, könnte man dann im Falle, dass Verzeichnisänderungen im Vorgangsverzeichnis (neue Dateien eingefügt) stattfinden, dieses Ereignis an alle betroffenen Kommunikationspartner (über die Unterverzeichnisse über die CSV zurückverfolgbar) und im Falle, dass Änderungen in einem bestimmten Verzeichnis eines Partners stattfinden, diese an genau den einen per E-Mail automatisiert versenden?

Und jetzt die Gretchenfrage an alle:
Kennt vielleicht jemand eine solche Plattform (Cloud-Plattformen scheiden aus. Wir müssen das selbst hosten.), auf der das obige Konzept umsetzbar wäre?

Habt vielen Dank für Eure Zeit!

Und Euch, die antworten: habt nochmals Dank für jeden richtungsweisenden Hinweis!


Viele Grüße
bdmvg
Mitglied: Daemmerung
LÖSUNG 27.01.2021 um 20:09 Uhr
Hallo,

fern ab von deinen Überlegungen, möchte ich doch nochmal mit NextCloud um die Ecke kommen.

NextCloud bietet eine mächtige API an, mit der du sowohl User als auch Berechtigungen für User anlegen/setzen kannst. Aus meiner Sicht ist dein Vorhaben gerade mit dieser Plattform gut realisierbar, ohne sich dort eigene Lösungen von der Picke aus zu basteln.

UserManagement:
https://docs.nextcloud.com/server/15/developer_manual/app/users.html

Shares:
https://docs.nextcloud.com/server/15/developer_manual/core/ocs-share-api ...

Web-Hooks:
https://docs.nextcloud.com/server/15/developer_manual/app/hooks.html#ava ...

Du schriebst zwar, dass Cloud-Lösungen rausfallen, aber NextCloud kannst du ja selbst hosten.

Viele Grüße
Daemmerung
Bitte warten ..
Mitglied: beidermachtvongreyscull
27.01.2021 um 22:38 Uhr
Guten Abend/Morgen/Tag (Nichtzutreffendes streichen :-) face-smile ),

hab vielen Dank für diese Info. Ich gebe zu, ich habe nicht an die Möglichkeit gedacht, dass man da über eine API auch ran kommen könnte.

Ich ziehe es in Betracht, auch wenn es meine Programmierfähigkeiten massiv übersteigt.
Muss mal schauen, ob wir da eine externe Ressource einkaufen.

Viele Grüße
bdmvg
Bitte warten ..
Mitglied: Daemmerung
LÖSUNG 28.01.2021 um 14:33 Uhr
Gerne!
Denk dran: Bei einer API benötigst du nicht unbedingt große Programmierskills. Du könntest die API auch innerhalb von Scripts nutzen bzw. da, wo du deine Stärken hast. Wenn du dich schon an Bash-Scripts traust, könntest du vielleicht auch damit ansetzen.

Viele Grüße
Bitte warten ..
Mitglied: beidermachtvongreyscull
28.01.2021 um 15:15 Uhr
Ich schau mir mal die Beispiele in deren Doku an und suche mal im Netz.
Vielleicht gibt es Bash-Scripts, die es etwas schlüssiger machen.

Viele Grüße und hab nochmals Dank.
Bitte warten ..
Heiß diskutierte Inhalte
Zusammenarbeit
Klimaschutz
NebellichtVor 1 TagTippZusammenarbeit55 Kommentare

Hallo friends, (friends in Anlehnung an die vielen Fs in dem englischen von FFF: fridays for future. Übrigens am 19.03.2021 gibts wieder einen globalen ...

Viren und Trojaner
Ryuk Ransomware Warnzeichen
gelöst SchlemihlVor 1 TagFrageViren und Trojaner9 Kommentare

Guten Abend, nachdem ich hier und hier erfahren habe, wie sich die Ransomware Ryuk verhält, musste ich feststellen, dass unser kleines Netzwerk für eine ...

Microsoft Office
Microsoft365 und Outlook verbinden
ratzekahl1Vor 1 TagFrageMicrosoft Office31 Kommentare

Guten Morgen zusammen, ich habe einige Probleme / Fragen. Ich habe Office 365 auf den ersten Rechnern installiert. Admin angelegt, Benutzer usw. Da ich ...

Hyper-V
ESXi free oder Windows Hyper-V Server 2019
lukas0209Vor 1 TagAllgemeinHyper-V19 Kommentare

Hallo, ich brauche ca. 2 oder 3 Windows 10 virtualisiert um Dinge zu testen. Ist es dafür sinnvoller ein Windows Hyper-V Server 2019 (kostenlos) ...

Off Topic
Nach 700 Tagen adwcleaner
altmetallerVor 1 TagAllgemeinOff Topic7 Kommentare

Hallo, ich habe in meinem Netzwerk diverse Maßnahmen, um nicht nur Angriffe, sondern auch - sagen wir mal - unerwünschte Datenabflüsse und Tracking zu ...

Server-Hardware
Was bedeuten die Abkürzungen beim HPE-Server wie z.B. NC, Mod-X?
gelöst kaineanungVor 1 TagFrageServer-Hardware18 Kommentare

Hallo Leute, ich habe ein HPE-Serverangebot vorliegen bei dem ich an 1-2 Positionen nicht weiß was diese überhaupt bedeuten. Suche ich im Internet danach ...

Netzwerkgrundlagen
DS-Lite Verständnisfrage Wireguard
gelöst fnbaluVor 22 StundenFrageNetzwerkgrundlagen19 Kommentare

Hallo zusammen, bisher läuft bei mir alles klassisch. pfSense mit DDNS und ich verbinde mich mit OpenVPN in das Heimnetz und erspare mir so ...

Exchange Server
0-day Exploit Chain für Exchange Server - Patches verfügbar
kgbornVor 18 StundenInformationExchange Server6 Kommentare

Zur Info: Microsoft warnt vor einer Exploit-Chain, bei der vier 0-day-Schwachstellen für gezielte Angriffe auf Exchange per Outlook Web App kombiniert werden (eine chines. ...