La idea de c√≥mo proporcionar a los empleados acceso temporal a los recursos del cliente sin volver a usar contrase√Īas.

Un poco de historia


Despu√©s de una conferencia sobre HighLoad ++ 2017. Mir√© este informe, "C√≥mo despedimos al administrador", en la grabaci√≥n. El orador dijo que todas las compa√Ī√≠as web tienen problemas con las contrase√Īas, y tuve una idea de c√≥mo resolver esto. Lo m√°s probable es que alguien ya lo haya hecho, pero para ser honesto, no lo s√©, solo quiero describirlo, entonces tal vez alguien lo haga o de alguna manera lo har√© yo mismo. Espero que si alguien decide hacer algo como esto, sea de c√≥digo abierto.

En realidad, una descripción del problema y cómo resolverlo.


¬ŅCu√°l es el problema, por extra√Īo que sea en las contrase√Īas mismas, o m√°s bien, para que los empleados sin escr√ļpulos no las retiren de la empresa?

Hay dos opciones para resolver este problema.

  1. Publique todos los cambios en el sitio personalmente al jefe de la empresa.
  2. Inventar y hacer algo.

En general, actuamos sobre la segunda opci√≥n. El primero es dif√≠cil y costoso si la empresa est√° compuesta por un peque√Īo n√ļmero de personas.

Lo que hay que hacer está decidido, ahora debe decidir cómo hacerlo.

Aqu√≠ a la vez la idea m√°s simple, ¬Ņpor qu√© no hacer un proxy? Bueno, lo m√°s probable es un super proxy. El esquema de trabajo es b√°sicamente simple y lo dibuj√© a continuaci√≥n.


Figura 1 - Esquema general del sistema

Como se puede ver en el diagrama y la idea en sí, el elemento principal aquí será un servidor proxy.

Sus tareas son las siguientes:

  • En consecuencia, acepte el tr√°fico, o incluso trabaje a nivel de los comandos SSH y SFTP, para empezar, y env√≠e una respuesta del servidor del cliente a un especialista.
  • Autenticaci√≥n y autorizaci√≥n de un especialista.
  • Verificando la legitimidad de los equipos, esto se puede hacer m√°s tarde.


La estructura del servidor proxy en sí será la siguiente:


Figura 2 - Diagrama de bloques del componente superproxy

Proxy: tráfico proxy directo a través de SSH, (S) FTP, HTTP, HTTPS
CA (Control de acceso): controla el acceso especializado a los recursos del cliente.
SAP (Sever Admin Panel): directamente el servidor con el que el administrador se comunica a través del panel de control.
N√ļcleo: el n√ļcleo del sistema en s√≠ mismo es la gesti√≥n de solicitudes entre m√≥dulos y gesti√≥n de modelos.

Creo que el acceso debe abordarse por separado, porque todo se inició debido a esto.

Todos los usuarios están incluidos en las políticas de grupo, las políticas de grupo definen reglas para el acceso a los servidores del cliente, así como las reglas a las que los administradores del sistema obedecen. Las políticas grupales tienen una estructura jerárquica, cada nivel superior tiene sus propios poderes como el nivel inferior. Desde el principio existe una política '.', Que incluye todos los permisos para todo y puede incluir un usuario, el administrador principal. Luego hay dos grupos para políticas, administradores de sistemas y proyectos.

Tabla din√°mica: administradores y sus derechos
Título del rolDerechos de acceso
Administrador de directivas de grupoEdición de usuarios grupales
Administrador de directivas de grupoCrear política de grupoCrear eliminar y editar usuarios en la directiva de grupo
Administrador de gestión de usuariosEliminar un usuario de la Política de grupoCrear eliminar y editar usuarios
Administrador de respaldoLeer información sobre usuarios y administradoresLectura de entradas de políticas grupales
Administrador jefeTodo lo dem√°s, adem√°s de editar y eliminar pol√≠ticas de grupoForzar cambios de contrase√Īa en servidores cliente

Las propias políticas de grupo contienen un registro de servidor al que se aplica esta política.
Y los usuarios tienen las siguientes reglas, que se establecen para cada usuario o grupo por separado, de hecho, estos son valores booleanos que determinan si el objeto tiene acceso HTTP / HTTPS al panel de control de recursos (panel de administración), SFTP / FTP, acceso SSH.

Ahora algunas palabras sobre el panel de control y el cliente.

El panel de control o todo está claro, pero debe volver a escribir, eso estaría claro.
Panel de control Directamente necesario para administrar las políticas de grupo y el servidor en su conjunto, un super proxy. Distribuido como una aplicación independiente o servicio web.

En consecuencia, los administradores tienen acceso al panel de control.

El cliente es simple en apariencia, complejo por dentro.

El cliente necesita una aplicación, en el caso de HTTP (S), teóricamente, esta aplicación puede ser un navegador configurado directamente para funcionar a través de un servidor proxy, y nuestro servidor proxy tendrá que meterse en el tráfico. En general, lo más probable es que sea necesario desarrollar una aplicación separada que funcione a través de SSH, (S) FTP, HTTP (S), con servidores cliente, a través de nuestro servidor superproxy, o incluso será más fácil de instalar y comunicarse con el servidor del cliente en sí es un servidor superproxy, y en el cliente instalado en la computadora, todo el proceso simplemente será emulado por especialistas.

Considere el ejemplo de HTTP (S).

  1. El cliente envía una solicitud de comunicación con el cliente al servidor proxy.
  2. El servidor super proxy lo permite o no, si lo permite, el propio servidor super proxy levanta la conexión e inicia sesión en el panel de control.
  3. El servidor proxy estupendo recibe directamente la página principal del panel de administración.
  4. El super servidor proxy pasa esta página al cliente, reemplazando la dirección del recurso del cliente con un marcador especial.
  5. El especialista sigue los enlaces o rellena los campos en el navegador y envía el formulario. Los datos van a un servidor super proxy.
  6. El servidor super proxy reemplaza los tokens de nuevo a la dirección del recurso del cliente y, en consecuencia, lo envía directamente al recurso del cliente.

Con el trabajo en SSH, puede transferir texto puro. Y directamente desde el servidor superproxy al recurso del cliente, se eleva una conexión SSH normal.

Algo como esto Espero sus comentarios en los comentarios y enlaces a los repositorios, si alguien decide hacer un sistema de este tipo.

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


All Articles