Ein kleiner Hintergrund
Nach einem Vortrag über HighLoad ++ 2017. In der Aufzeichnung habe ich mir diesen Bericht „Wie wir den Administrator gefeuert haben“ angesehen. Der Sprecher sagte, dass alle Webfirmen Probleme mit Passwörtern haben, und ich hatte eine Idee, wie ich das lösen könnte. Höchstwahrscheinlich hat es bereits jemand getan, aber um ehrlich zu sein, ich weiß nicht, ich möchte es nur beschreiben, dann wird es vielleicht jemand tun oder ich werde es irgendwie selbst tun. Ich hoffe, wenn sich jemand für so etwas entscheidet, wird es Open Source.
Eigentlich eine Beschreibung des Problems und wie man es löst
Was ist das Problem, wie seltsam es auch in den Passwörtern selbst ist, oder vielmehr, damit skrupellose Mitarbeiter sie nicht aus dem Unternehmen entfernen.
Es gibt zwei Möglichkeiten, um dieses Problem zu lösen.
- Veröffentlichen Sie alle Änderungen an der Website persönlich an den Leiter des Unternehmens.
- Etwas erfinden und tun.
Im Allgemeinen handeln wir nach der zweiten Option. Das erste ist schwierig und kostspielig, wenn das Unternehmen aus einer kleinen Anzahl von Personen besteht.
Was zu tun ist, ist entschieden. Jetzt müssen Sie entscheiden, wie es geht.
Hier sofort die einfachste Idee, warum nicht einen Proxy machen? Nun, höchstwahrscheinlich ein Super-Proxy. Das Arbeitsschema ist im Grunde einfach und ich habe es unten gezeichnet.
Abbildung 1 - Allgemeines Schema des SystemsWie aus dem Diagramm und der Idee selbst ersichtlich ist, wird das Hauptelement hier ein Proxyserver sein.
Seine Aufgaben sind wie folgt:
- Akzeptieren Sie entsprechend den Datenverkehr oder arbeiten Sie zunächst einmal auf der Ebene der SSH- und SFTP-Befehle und senden Sie eine Antwort vom Client-Server an einen Spezialisten.
- Authentifizierung und Autorisierung eines Spezialisten
- Dies kann später überprüft werden, um die Legitimität der Teams zu überprüfen.
Die Struktur des Proxyservers selbst ist wie folgt:
Abbildung 2 - Blockdiagramm der Super-Proxy-KomponenteProxy - direkter Proxy-Verkehr über SSH, (S) FTP, HTTP, HTTPS
CA (Control Access) - Steuert den Spezialzugriff auf Clientressourcen.
SAP (Sever Admin Panel) - Direkt der Server, mit dem der Administrator über das Control Panel kommuniziert.
Kern - Der Kern des Systems selbst ist die Verwaltung von Anforderungen zwischen Modulen und die Modellverwaltung.Ich glaube, dass der Zugriff separat behandelt werden sollte, da aus diesem Grund alles gestartet wurde.
Alle Benutzer sind in Gruppenrichtlinien enthalten. Gruppenrichtlinien definieren Regeln für den Zugriff auf Client-Server sowie Regeln, denen Systemadministratoren folgen. Gruppenrichtlinien haben eine hierarchische Struktur, jede obere Ebene hat ihre eigenen Befugnisse wie die untere Ebene. Von Anfang an gibt es eine Richtlinie '.', Die alle Berechtigungen für alles enthält und möglicherweise einen Benutzer, den Hauptadministrator, enthält. Dann gibt es zwei Gruppen für Richtlinien, Systemadministratoren und Projekte.
Pivot-Tabelle - Administratoren und ihre RechteRollentitel | Zugriffsrechte | |
---|
Gruppenrichtlinienadministrator | Bearbeiten von Gruppenbenutzern | |
Gruppenrichtlinienadministrator | Gruppenrichtlinie erstellen | Erstellen Löschen und Bearbeiten von Benutzern in Gruppenrichtlinien |
Benutzerverwaltungsadministrator | Entfernen eines Benutzers aus der Gruppenrichtlinie | Erstellen Sie Benutzer zum Löschen und Bearbeiten |
Backup-Administrator | Lesen von Informationen zu Benutzern und Administratoren | Lesen von Gruppenrichtlinieneinträgen |
Hauptadministrator | Alles andere sowie das Bearbeiten und Löschen von Gruppenrichtlinien | Erzwingen Sie Kennwortänderungen auf Client-Servern |
Die Gruppenrichtlinien selbst enthalten einen Serverdatensatz, auf den diese Richtlinie angewendet wird.
Benutzer haben die folgenden Regeln, die für jeden Benutzer oder jede Gruppe separat festgelegt werden. Dies sind tatsächlich boolesche Werte, die bestimmen, ob das Objekt über HTTP / HTTPS-Zugriff auf das Ressourcensteuerungsfeld (Admin-Bereich), SFTP / FTP und SSH-Zugriff verfügt.
Nun ein paar Worte zum Control Panel und zum Client.
Das Bedienfeld oder alles ist klar, aber Sie müssen erneut schreiben, das wäre klar.
Schalttafel. Wird direkt benötigt, um Gruppenrichtlinien und den Server als Ganzes zu verwalten, ein Super-Proxy. Als eigenständige Anwendung oder Webdienst verteilt.
Dementsprechend haben Administratoren Zugriff auf das Control Panel.
Der Kunde sieht einfach aus und ist innen komplex.
Der Client benötigt eine Anwendung. Im Fall von HTTP (S) kann diese Anwendung rein theoretisch ein Browser sein, der direkt für die Arbeit über einen Proxyserver konfiguriert ist, und unser Proxyserver muss sich in den Datenverkehr einklemmen. Im Allgemeinen wird es höchstwahrscheinlich erforderlich sein, eine separate Anwendung zu entwickeln, die über SSH, (S) FTP, HTTP (S), mit Client-Servern, über unseren Super-Proxy-Server funktioniert, oder es wird sogar einfacher sein, diese tatsächlich zu installieren und mit ihnen zu kommunizieren Der Server des Clients selbst ist ein Super-Proxy-Server. Auf dem auf dem Computer installierten Client wird der gesamte Prozess einfach von Spezialisten emuliert.
Betrachten Sie das Beispiel von HTTP (S).
- Der Client sendet eine Anforderung zur Kommunikation mit dem Client an den Proxyserver.
- Der Super-Proxy-Server lässt dies zu oder nicht. Wenn dies zulässig ist, stellt der Super-Proxy-Server selbst die Verbindung her und meldet sich bei der Systemsteuerung an.
- Der Super-Proxy-Server empfängt direkt die Hauptseite des Admin-Panels.
- Der Super-Proxy-Server übergibt diese Seite an den Client und ersetzt die Adresse der Client-Ressource durch eine spezielle Markierung.
- Der Spezialist folgt den Links oder füllt die Felder im Browser aus und sendet das Formular. Die Daten werden an einen Super-Proxy-Server gesendet.
- Der Super-Proxy-Server ersetzt die Token zurück an die Adresse der Client-Ressource und sendet sie dementsprechend direkt an die Client-Ressource selbst.
Mit der Arbeit an SSH können Sie reinen Text übertragen. Und direkt vom Super-Proxy-Server zur Client-Ressource steigt eine normale SSH-Verbindung an.
So etwas in der Art. Ich freue mich auf Ihr Feedback in den Kommentaren und auf Links zu den Repositories, wenn sich jemand für ein solches System entscheidet.