[RESUELTO] Cómo cifrar tus contraseñas de Wapt

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes 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.
Louisinger
Mensajes: 27
Inscripción: 26 de junio de 2018 - 09:40

18 de julio de 2018 - 15:49

Hola,

en uno de mis scripts subo un paquete al servidor. Esta función requiere dos contraseñas (contraseña de administrador y contraseña de clave privada). ¿Es necesario incluir la contraseña directamente en el código, dado que está incluida en el paquete?
Última edición realizada por louisinger el 20 de julio de 2018 a las 08:47; editado 1 vez.
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

18 de julio de 2018 - 23:01

louisinger escribió: 18 de julio de 2018 - 15:49 ¿Estamos obligados a codificar la contraseña directamente en el código sabiendo que está presente en los paquetes?
No entiendo, ¿pusiste la contraseña de tu servidor wapt y la contraseña de tu clave privada en un paquete wapt?
Louisinger
Mensajes: 27
Inscripción: 26 de junio de 2018 - 09:40

19 de julio de 2018 - 08:22

En un paquete llamado `dispatch` que permite la instalación automática de paquetes de GRUPO,
realizo una compilación-carga en el script después de editar mi paquete de host. Por eso mi contraseña terminó en un paquete.
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

19 de julio de 2018 - 14:10

louisinger escribió: 19 de julio de 2018 - 8:22 a. m. En un paquete llamado dispatch que permite la instalación automática de paquetes GROUP.
Así que hago una build-upload en el script después de editar mi paquete host. Por eso mi contraseña terminó en un paquete.
No debes hacer eso en absoluto. Los paquetes Wapt están disponibles para que cualquiera los lea.
No se debe colocar ninguna información confidencial en un paquete a menos que esté cifrada

Paquete de ejemplo: https://wapt.lesfourmisduweb.org/detalle ... 4_all.wapt

Si desea crear paquetes wapt usando un script (un crontab) en una máquina:
viewtopic.php?f=9&t=1341

De lo contrario, si entiendo correctamente lo que quieres hacer, te aconsejo leer esto:

https://www.wapt.fr/fr/doc/CreationPaqu ... quets-wapt

Esto no crea un paquete de máquina pero funciona muy bien.

Otra posibilidad:
https://blog.lesfourmisduweb.org/gestio ... paquete electrónico/


En resumen, explícanos qué quieres hacer y te daremos una solución.
Pero claramente, ¡no guardes tu contraseña wapt en un paquete!
Louisinger
Mensajes: 27
Inscripción: 26 de junio de 2018 - 09:40

19 de julio de 2018 - 15:51

Estoy de acuerdo en que almacenar la contraseña en un script dentro de un paquete es contraproducente. Me explico:
Quería crear mis grupos de usuarios según su nombre de host. Así que creé los paquetes de grupo y programé mi script. Según el nombre de host del cliente, el paquete `mnt-dispatch` instala el paquete de grupo correspondiente. Inicialmente, usé `Wapt.install(group_name)`, pero esto causó un problema: el paquete se instaló en la máquina, pero no se convirtió en una dependencia. Por eso quise reemplazar `Wapt.install()` por `Wapt.edit_host()` y `Wapt.build_upload()`, ya que `edit_host()`, a diferencia de `install()`, me permite agregar una dependencia al paquete del host.

Aquí está el código para el archivo setup.py del paquete mnt-dispatch:

Código: Seleccionar todo

def install():
    print('Start dispatching')
    myWapt = Wapt(config_filename = makepath('c:', programfiles32, 'wapt', 'wapt-get.ini'))
    print("write into ini file")
    inifile_writestring(WAPT.config_filename, 'global', 'personal_certificate_path', '\\\\**************\c$\private\********.crt')
    print("get hostname and computername")
    computer_name = environ['COMPUTERNAME']
    print('computer name = %s'%computer_name)
    host_name = myWapt.host_packagename()
    print('host name = %s'%host_name)
    pathToTempDirectory = r'C:\Temp\%s'%computer_name
    if isdir(pathToTempDirectory):
        print('remove temp tree : ' + pathToTempDirectory)
        remove_tree(pathToTempDirectory)
    print('site name :')
    site_name = computer_name[0:4]
    print("site name is : %s" %site_name)
    group_name = alias_groupe.get(switcher.get(site_name, 0), 'hors-lot')
    print("group name is : %s"%group_name)
    myWapt.edit_host(host_name, target_directory = "C:\Temp\%s"%computer_name, append_depends = group_name)
    myWapt.build_upload(r'C:\Temp\%s'%(computer_name), private_key_passwd = '***', wapt_server_user = 'admin', wapt_server_passwd = '***')
    return 0
¿Entiendes un poco mejor mi problema ahora? Disculpa si no te ha quedado claro.
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

19 de julio de 2018 - 16:34

En este caso, es necesario crear un script de Python independiente que se ejecute como una tarea programada.

No lo pongas dentro de un paquete. De lo contrario, nos veremos obligados a poner las contraseñas en el paquete.

Algoritmo de script:

- Escaneo de base de datos
- Para cada artículo, analice el inventario para determinar qué debe agregarse como dependencia.

Código: Seleccionar todo

data = json.loads(wgets('https://%s:%s@%s/api/v1/hosts?columns=host_certificate&limit=10000' % (user,password,urlserver)))
for value in data['result']:
	blabalba
- Editar el paquete de la máquina.
- Agregar dependencias
- Subir el paquete de la máquina.

Código: Seleccionar todo

    myWapt = Wapt(config_filename=makepath(r'C:\Users\Administrateur\AppData\Local\waptconsole\waptconsole.ini'))
    tmpdir = 'c:/dummy'
    myWapt.edit_host(machine,target_directory=tmpdir,append_depends='tis-firefox')
    myWapt.build_upload(r'c:\waptdev\test',private_key_passwd=ur'passwordkey',wapt_server_user='admin',wapt_server_passwd=ur'passwordserver')
Avatar de usuario
vcardón
Experto en WAPT
Mensajes: 272
Inscripciones: 06 Oct 2017 - 22:55 horas.
Ubicación: Nantes, Francia

19 de julio de 2018 - 21:26

louisinger escribió: 19 de julio de 2018 - 8:22 a. m. En un paquete llamado dispatch que permite la instalación automática de paquetes GROUP.
Así que hago una build-upload en el script después de editar mi paquete host. Por eso mi contraseña terminó en un paquete.
Simón, respondiste perfectamente.

Estoy agregando otra capa para asegurar que aquellos que usan WAPT NUNCA pongan sus contraseñas en un paquete, ni en Community ni en Enterprise.

De hecho, en el modelo de seguridad de WAPT, los paquetes no son un activo sensible en el sentido de ciberseguridad.

Si coloca su contraseña clave y la contraseña de su servidor en su paquete y su paquete es recuperado por una entidad no autorizada y maliciosa, entonces controlará su red.

Una auditoría post mortem realizada por un auditor de seguridad demostrará sin lugar a dudas que su firma se utilizó para implementar el malware, y será muy difícil demostrar que no causó el daño intencionalmente. De hecho, la documentación de WAPT es clara, explícita e inequívoca en este punto.

En el mejor de los casos, usted sólo tendrá que buscar un nuevo trabajo lastrado por su nueva reputación; de lo contrario, tendrá que buscar un buen abogado si su error ha provocado un accidente con consecuencias materiales, financieras o humanas irreparables.

Así que, un consejo para los sabios.

Vicente
Vincent CARDON
Tranquilo IT
Louisinger
Mensajes: 27
Inscripción: 26 de junio de 2018 - 09:40

20 de julio de 2018 - 08:16

sfonteneau escribió: 19 de julio de 2018 - 16:34 En este caso, es necesario crear un script de Python independiente que se ejecute como una tarea programada.

No lo pongas dentro de un paquete. De lo contrario, nos veremos obligados a poner las contraseñas en el paquete.

Algoritmo de script:

- Escaneo de base de datos
- Para cada artículo, analice el inventario para determinar qué debe agregarse como dependencia.

Código: Seleccionar todo

data = json.loads(wgets('https://%s:%s@%s/api/v1/hosts?columns=host_certificate&limit=10000' % (user,password,urlserver)))
for value in data['result']:
	blabalba
- Editar el paquete de la máquina.
- Agregar dependencias
- Subir el paquete de la máquina.

Código: Seleccionar todo

    myWapt = Wapt(config_filename=makepath(r'C:\Users\Administrateur\AppData\Local\waptconsole\waptconsole.ini'))
    tmpdir = 'c:/dummy'
    myWapt.edit_host(machine,target_directory=tmpdir,append_depends='tis-firefox')
    myWapt.build_upload(r'c:\waptdev\test',private_key_passwd=ur'passwordkey',wapt_server_user='admin',wapt_server_passwd=ur'passwordserver')
¡Será un script! Sin embargo, el problema persiste: mi contraseña está predefinida. Creo que al principio del script le pediré al usuario ambas contraseñas.

@vcardon Entiendo el riesgo de codificar una contraseña en un paquete. Por eso pedí una alternativa, pero gracias por tu advertencia.
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

20 de julio de 2018 - 09:31

Para su información

Código: Seleccionar todo

import waptguihelper
urlserver = inifile_readstring(makepath(install_location('WAPT_is1'),'wapt-get.ini'),'global','wapt_server')
mycrt = inifile_readstring(makepath(user_local_appdata(),'waptconsole','waptconsole.ini'),'global','personal_certificate_path')

passwordkey = waptguihelper.key_password_dialog('Password for private key',mycrt, '')
credentials_url = waptguihelper.login_password_dialog('Credentials for wapt server',urlserver,'admin','')

print(passwordkey['keypassword'])
print(credentials_url['user'])
print(credentials_url['password'])

Louisinger
Mensajes: 27
Inscripción: 26 de junio de 2018 - 09:40

20 de julio de 2018 - 10:02

sfonteneau escribió: Para su información

Código: Seleccionar todo

import waptguihelper
urlserver = inifile_readstring(makepath(install_location('WAPT_is1'),'wapt-get.ini'),'global','wapt_server')
mycrt = inifile_readstring(makepath(user_local_appdata(),'waptconsole','waptconsole.ini'),'global','personal_certificate_path')

passwordkey = waptguihelper.key_password_dialog('Password for private key',mycrt, '')
credentials_url = waptguihelper.login_password_dialog('Credentials for wapt server',urlserver,'admin','')

print(passwordkey['keypassword'])
print(credentials_url['user'])
print(credentials_url['password'])

No se puede encontrar el módulo waptguihelper :/
Bloqueado