L'idée de fournir aux employés un accès temporaire aux ressources des clients sans avoir à refaire briller les mots de passe

Un peu de fond


Après une conférence sur HighLoad ++ 2017. J'ai regardé ce rapport, «Comment nous avons viré l'administrateur», dans l'enregistrement. L'orateur a déclaré que toutes les sociétés Web ont des problèmes avec les mots de passe, et j'avais une idée de comment résoudre ce problème. Très probablement, quelqu'un l'a déjà fait, mais pour être honnête, je ne sais pas, je veux juste le décrire, alors peut-être que quelqu'un le fera ou je le ferai moi-même. J'espère que si quelqu'un décide de faire quelque chose comme ça, ce sera open source.

En fait, une description du problème et comment le résoudre


Quel est le problème, aussi étrange soit-il dans les mots de passe eux-mêmes, ou plutôt, pour que les employés sans scrupules ne les retirent pas de l'entreprise.

Il existe deux options pour résoudre ce problème.

  1. Affichez personnellement toutes les modifications apportées au site au chef d'entreprise.
  2. Inventer et faire quelque chose.

En général, nous agissons sur la deuxième option. La première est difficile et coûteuse si l'entreprise se compose d'un petit nombre de personnes.

Que faire est décidé, vous devez maintenant décider comment le faire.

Voici tout de suite l'idée la plus simple, pourquoi ne pas faire un proxy? Eh bien, très probablement un super proxy. Le schéma de fonctionnement est fondamentalement simple et je l'ai dessiné ci-dessous.


Figure 1 - Schéma général du système

Comme le montre le diagramme et l'idée elle-même, l'élément principal ici sera un serveur proxy.

Ses tâches sont les suivantes:

  • De même, acceptez le trafic, ou même travaillez au niveau des commandes SSH et SFTP, pour les démarreurs, et envoyez une réponse du serveur client à un spécialiste.
  • Authentification et autorisation d'un spécialiste
  • Vérifier la légitimité des équipes, cela peut être fait plus tard.


La structure du serveur proxy lui-même sera la suivante:


Figure 2 - Schéma fonctionnel du composant super proxy

Proxy - trafic proxy direct via SSH, (S) FTP, HTTP, HTTPS
CA (Control Access) - Contrôle l'accès spécialisé aux ressources client.
SAP (Sever Admin Panel) - Directement le serveur avec lequel l'administrateur communique via le panneau de contrôle.
Cœur - Le cœur du système lui-même est la gestion des demandes entre les modules et la gestion des modèles.

Je pense que l'accès doit être traité séparément, car tout a commencé à cause de cela.

Tous les utilisateurs sont inclus dans les stratégies de groupe, les stratégies de groupe définissent des règles d'accès aux serveurs clients, ainsi que des règles auxquelles les administrateurs système obéissent. Les stratégies de groupe ont une structure hiérarchique, chaque niveau supérieur a ses propres pouvoirs que le niveau inférieur. Dès le début, il existe une politique «.», Elle inclut toutes les autorisations pour tout et peut inclure un utilisateur, l'administrateur principal. Ensuite, il existe deux groupes pour les stratégies, les administrateurs système et les projets.

Tableau croisé dynamique - administrateurs et leurs droits
Titre du rôleDroits d'accès
Administrateur de stratégie de groupeModification des utilisateurs de groupe
Administrateur de stratégie de groupeCréer une stratégie de groupeCréation de suppression et modification d'utilisateurs dans la stratégie de groupe
Administrateur de gestion des utilisateursSuppression d'un utilisateur de la stratégie de groupeCréer des utilisateurs de suppression et de modification
Administrateur de sauvegardeLecture d'informations sur les utilisateurs et les administrateursLecture des entrées de stratégie de groupe
Administrateur en chefTout le reste, ainsi que la modification et la suppression des stratégies de groupeForcer les modifications de mot de passe sur les serveurs clients

Les stratégies de groupe elles-mêmes contiennent un enregistrement de serveur auquel cette stratégie est appliquée.
Et les utilisateurs ont les règles suivantes, qui sont définies pour chaque utilisateur ou groupe séparément, en fait, ce sont des valeurs booléennes qui déterminent si l'objet a un accès HTTP / HTTPS au panneau de contrôle des ressources (panneau d'administration), SFTP / FTP, accès SSH.

Maintenant, quelques mots sur le panneau de contrôle et le client.

Le panneau de contrôle ou tout est clair, mais vous devez réécrire, ce serait clair.
Panneau de contrôle Directement nécessaire pour gérer les stratégies de groupe et le serveur dans son ensemble, un super proxy. Distribué en tant qu'application autonome ou service Web.

En conséquence, les administrateurs ont accès au panneau de configuration.

Le client est simple en apparence, complexe à l'intérieur.

Le client a besoin d'une application, dans le cas de HTTP (S), purement théoriquement cette application peut être un navigateur directement configuré pour fonctionner via un serveur proxy, et notre serveur proxy devra se coincer dans le trafic. En général, très probablement, il sera nécessaire de développer une application distincte qui fonctionnera via SSH, (S) FTP, HTTP (S), avec des serveurs clients, via notre serveur super-proxy, ou il sera même plus facile d'installer et de communiquer avec le serveur du client lui-même est un serveur super-proxy, et dans le client installé sur l'ordinateur, l'ensemble du processus sera simplement émulé par des spécialistes.

Prenons l'exemple de HTTP (S).

  1. Le client envoie une demande de communication avec le client au serveur proxy.
  2. Le serveur super proxy le permet ou non, s'il le permet, le serveur super proxy lui-même établit la connexion et se connecte au panneau de contrôle.
  3. Le super serveur proxy reçoit directement la page principale du panneau d'administration.
  4. Le serveur super proxy transmet cette page au client, en remplaçant l'adresse de la ressource du client par un marqueur spécial.
  5. Le spécialiste suit les liens ou remplit les champs du navigateur et soumet le formulaire. Les données vont à un super serveur proxy.
  6. Le super serveur proxy remplace les jetons à l'adresse de la ressource client et, en conséquence, les envoie directement à la ressource client elle-même.

Avec le travail sur SSH, vous pouvez transférer du texte pur. Et directement du serveur super-proxy à la ressource client, une connexion SSH normale augmente.

Quelque chose comme ça. J'attends avec impatience vos commentaires dans les commentaires et les liens vers les référentiels, si quelqu'un décide de créer un tel système.

Source: https://habr.com/ru/post/fr438436/


All Articles