Hola a todos,
Contexto:
Trabajo remoto sin VPN
Versión de WAPT: 2.1 Enterprise
Server SO: Debian 11
Consola de administración SO: Win10pro
Estación de trabajo de desarrollo de paquetes SO: Win10pro
Tenemos un caso de uso clásico:
Nos gustaría enviar o actualizar un secreto separado para cada estación de trabajo administrada con WAPT, mientras preservamos la confidencialidad de este secreto entre estaciones de trabajo (una estación de trabajo no puede obtener el secreto de otra).
Una solución (1) sería crear un paquete separado para cada estación de trabajo que contenga el secreto a implementar y asociarlo con la estación de trabajo correspondiente (teniendo cuidado de proteger el secreto siguiendo las directrices en https://www.wapt.fr/fr/doc/wapt-create- ... pt-package ). Sin embargo, esto se vuelve rápidamente tedioso cuando el número de estaciones de trabajo es grande y la frecuencia de actualización es alta.
Otra solución (2) sería crear un paquete genérico que detecte la estación de trabajo correspondiente y recupere este secreto de una ubicación protegida. Pero, ¿cómo podemos acceder solo al secreto correspondiente a la estación de trabajo sin implementar otro secreto previamente?
Otra solución (3) sería automatizar la creación y actualización de paquetes para la solución (1). Esta generación se realiza en una estación de trabajo capaz de firmar paquetes (una estación de trabajo de desarrollo WAPT fuera de la estación de trabajo principal con una consola de administración WAPT dedicada).
Otra solución (4) sería enviar el secreto a una ubicación específica en la estación de trabajo a través de un canal bidireccional establecido (¿agente websocket?) y luego instalar un paquete WAPT que gestione este secreto directamente en la estación de trabajo. Pero, ¿cómo enviamos el secreto al sistema de archivos del destino a través de este canal? ¿
Se ha encontrado alguna vez con esta situación? Si es así, ¿cómo la resolvió?
Christophe
[RESUELTO] Despliegue de secretos en estaciones equipadas con un agente WAPT
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
- vcardón
- Experto en WAPT
- Mensajes: 273
- Inscripciones: 06 Oct 2017 - 22:55 horas.
- Ubicación: Nantes, Francia
Este es el único método bueno si quieres garantizar la seguridad perfecta de tus secretos, pero carece de un asistente que haga la tarea menos laboriosa.croquebert escribió: ↑31 de marzo de 2022 - 12:48 Una solución (1) sería crear un paquete separado para cada estación de trabajo que contenga el secreto a implementar y asociarlo con la estación de trabajo correspondiente (asegurándose de proteger el secreto siguiendo las instrucciones en https://www.wapt.fr/fr/doc/wapt-create- ... pt-package ). Sin embargo, esto se vuelve rápidamente tedioso cuando el número de estaciones de trabajo es grande y la frecuencia de actualización es alta.
Usted es la segunda persona que nos plantea este problema, por lo que es alentador saber que esta función tan útil... se está utilizando.
Transmitiré tu comentario a los equipos de desarrollo.
Vincent CARDON
Tranquilo IT
Tranquilo IT
- Sfonteneau
- Experto en WAPT
- Mensajes: 2312
- Registrado: 10 de julio de 2014 - 23:52
- Contacto :
Sería interesante saber el requisito exacto
Por ejemplo, también podríamos dejar que la estación de trabajo elija su clave secreta (¿simétrica?) y dejar que la estación de trabajo envíe la información al administrador en forma cifrada, en el caso de una contraseña, por ejemplo:
- Pero eso no satisface necesariamente la necesidad.
- La solución 3 sería posible, pero requiere que una máquina con la clave privada permanezca encendida (no el servidor) para recrear el paquete de vez en cuando.
En Python, también podríamos realizar algunas funciones update_package como esta:
Obtenga un archivo Excel de un recurso compartido que represente una asignación del nombre de la estación de trabajo -> clave (o el último usuario que inició sesión en la máquina o algo más... algo del inventario de la estación de trabajo) y cifre diferentes datos según la estación de trabajo.
Este es el método mixto 1/3 (para actualizar el paquete solo necesitarás reiniciar la actualización del paquete en la GUI desde la consola)
Por ejemplo, también podríamos dejar que la estación de trabajo elija su clave secreta (¿simétrica?) y dejar que la estación de trabajo envíe la información al administrador en forma cifrada, en el caso de una contraseña, por ejemplo:
Código: Seleccionar todo
# -*- coding: utf-8 -*-
from setuphelpers import *
from waptcrypto import print_encrypted_data
def install():
randompassword = 'password'
print_encrypted_data(randompassword,glob.glob(('*.crt')))
- La solución 3 sería posible, pero requiere que una máquina con la clave privada permanezca encendida (no el servidor) para recrear el paquete de vez en cuando.
En Python, también podríamos realizar algunas funciones update_package como esta:
Obtenga un archivo Excel de un recurso compartido que represente una asignación del nombre de la estación de trabajo -> clave (o el último usuario que inició sesión en la máquina o algo más... algo del inventario de la estación de trabajo) y cifre diferentes datos según la estación de trabajo.
Este es el método mixto 1/3 (para actualizar el paquete solo necesitarás reiniciar la actualización del paquete en la GUI desde la consola)
-
croquebert
- Mensajes: 33
- Inscripciones: 30 de marzo de 2022 - 17:41
Hola Vincent,vcardon escribió: ↑31 de marzo de 2022 - 16:21Este es el único método bueno si quieres garantizar la seguridad perfecta de tus secretos, pero carece de un asistente que haga la tarea menos laboriosa.croquebert escribió: ↑31 de marzo de 2022 - 12:48 Una solución (1) sería crear un paquete separado para cada estación de trabajo que contenga el secreto a implementar y asociarlo con la estación de trabajo correspondiente (asegurándose de proteger el secreto siguiendo las instrucciones en https://www.wapt.fr/fr/doc/wapt-create- ... pt-package ). Sin embargo, esto se vuelve rápidamente tedioso cuando el número de estaciones de trabajo es grande y la frecuencia de actualización es alta.
Usted es la segunda persona que nos plantea este problema, por lo que es alentador saber que esta función tan útil... se está utilizando.
Transmitiré tu comentario a los equipos de desarrollo.
Gracias por tus comentarios.
De hecho, un paquete por estación de trabajo afectada mejoraría la seguridad. Los mecanismos que faltan son para automatizar la creación, actualización y asociación de estos paquetes con las estaciones de trabajo objetivo (aunque esto debería ser posible con...) https://www.wapt.fr/en/doc/wapt-command ... paquetes t).
La solución (4) sugirió enmascarar la complejidad de crear el paquete que contiene el secreto ofreciendo en la interfaz WAPT una funcionalidad de tipo push en el sistema de archivos del objetivo (una especie de GPO de copia de archivo inversa).
Pero tengo lo que necesito para empezar.
Cristóbal
-
croquebert
- Mensajes: 33
- Inscripciones: 30 de marzo de 2022 - 17:41
Hola Simón,sfonteneau escribió: ↑31 de marzo de 2022 - 21:31 Sería interesante saber el requisito exacto
Por ejemplo, también podríamos dejar que la estación de trabajo elija su clave secreta (¿simétrica?) y dejar que la estación de trabajo envíe la información al administrador en forma cifrada, en el caso de una contraseña, por ejemplo:
- Pero eso no satisface necesariamente la necesidad.Código: Seleccionar todo
# -*- coding: utf-8 -*- from setuphelpers import * from waptcrypto import print_encrypted_data def install(): randompassword = 'password' print_encrypted_data(randompassword,glob.glob(('*.crt')))
- La solución 3 sería posible, pero requiere que una máquina con la clave privada permanezca encendida (no el servidor) para recrear el paquete de vez en cuando.
En Python, también podríamos realizar algunas funciones update_package como esta:
Obtenga un archivo Excel de un recurso compartido que represente una asignación del nombre de la estación de trabajo -> clave (o el último usuario que inició sesión en la máquina o algo más... algo del inventario de la estación de trabajo) y cifre diferentes datos según la estación de trabajo.
Este es el método mixto 1/3 (para actualizar el paquete solo necesitarás reiniciar la actualización del paquete en la GUI desde la consola)
Gracias por tus comentarios.
La idea subyacente es la actualización de un archivo de configuración que contiene un secreto (por ejemplo, VPN).
Voy a usar un solo paquete que cifrará el secreto de cada máquina usando su certificado mediante un `update_package`. Este paquete contendrá los secretos de cada máquina, pero cifrados. Cada secreto solo será legible por la máquina autorizada (esto es básicamente lo que hace el ejemplo en su documentación).
Veo al menos dos inconvenientes en este método:
- Un update_package forzará la actualización en máquinas donde el secreto no necesariamente haya cambiado.
- Todos los secretos, incluso los cifrados, están contenidos en un solo paquete.
Cristóbal
- Sfonteneau
- Experto en WAPT
- Mensajes: 2312
- Registrado: 10 de julio de 2014 - 23:52
- Contacto :
Si no hay ningún incremento en la versión del paquete, está biencroquebert escribió: ↑1 de abril de 2022 - 12:50
- Un update_package forzará la actualización en máquinas donde el secreto no necesariamente haya cambiado.
El paquete debería fallar si el UUID del host no está en los datos cifrados
Sí, pero solo lo puede leer la máquina que tiene su clave; los repositorios secundarios y el propio servidor no podrán leer el paquete. (Tenga en cuenta, sin embargo, que dependemos del inventario de la máquina en el servidor...)croquebert escribió: ↑1 de abril de 2022 - 12:50
- Todos los secretos, incluso los cifrados, están contenidos en un solo paquete.
con cifrado: RSAES-OAEPcroquebert escribió: ↑1 de abril de 2022 - 12:50 Pregunta: ¿Cuál es el algoritmo de cifrado predeterminado?
con encrypt_fernet: AES de 128 bits en modo CBC y relleno PKCS7, con HMAC utilizando SHA256 para autenticación
