Attention : le support de WAPT 1.8.2 a pris fin le 30 juin 2022.

Il y a plusieurs vulnérabilité présente dans la branche WAPT 1.8.2.7393. Merci de mettre à jour sur la version supportée la plus récente. Liste des CVEs (non exhaustive) :
  • * python engine : python 2.7 (CVE-2020-10735, CVE-2015-20107, CVE-2022-0391, CVE-2021-23336, CVE-2021-3177, CVE-2020-27619, CVE-2020-26116, CVE-2019-20907, CVE-2020-8492, etc.)
  • * cryptography : openssl : CVE-2022-2068, CVE-2022-1292, CVE-2022-0778, CVE-2021-4160, CVE-2021-3712, CVE-2021-23841, CVE-2021-23840, CVE-2021-23839, CVE-2020-1971, CVE-2020-1968, CVE-2019-1551
  • * python dependencies : cryptography (CVE-2020-36242, CVE-2020-25659), eventlet (CVE-2021-21419), jinja2 (CVE-2020-28493), psutil (CVE-2019-18874), waitress (CVE-2022-31015), lxml (CVE-2021-4381, CVE-2021-28957, CVE-2020-27783, CVE-2018-19787), ujson (CVE-2022-31117, CVE-2022-31116, CVE-2021-45958), python-ldap (CVE-2021-46823)

Configurer le serveur WAPT

La configuration du serveur WAPT sous Linux est située dans /opt/wapt/waptserver/waptserver.ini.

Le fichier de configuration du serveur WAPT sur les systèmes Windows se trouve dans C:\wapt\conf\waptserver.ini.

Attention

La modification de ces fichiers est à réserver aux utilisateurs avertis !!

Partie [option]

On peut lui passer plusieurs options dans la section :

[options]
Paramètres disponibles pour la section [option] de waptserver.ini

Options

Description

allow_unauthenticated_connect = False

Définit si les requêtes websocket doivent être authentifiées

allow_unauthenticated_registration = True

Permet une authentification Identifiant / Mot de passe pour l’enregistrement initial

allow_unsigned_status_data = False

Debug - Autorise la réception de données d’agent non signées

application_root = “”

Défini le chemin d’application de WAPT Server (ex: wapt)

auto_create_ldap_users = True

Relatif aux ACLs utilisateurs

client_certificate_lifetime = 3650

Durée maximale du certificat client

clients_read_timeout = 5

Durée de délai d’expiration Websocket

clients_signing_certificate =

Certificat de signature des certificats machines

clients_signing_crl_days =

Expiration de la CRL des certificats machines

clients_signing_crl =

CRL des certificats machines

clients_signing_crl_url =

URL de la CRL des certificats machines

clients_signing_key =

Clé de signature des certificats machines

client_tasks_timeout = 1

Délai d’attente maximum pour la réponse de l’agent WAPT

db_connect_timeout = 10

Délai d’attente maximum pour les requête de PostgreSQL

db_host =

Adresse du serveur PostgreSQL (par défaut vide car la connexion par socket UNIX est par défaut)

db_max_connections = 100

Nombre de connexions simultanés pour les requêtes de PostgreSQL

db_name = wapt

Nom de la base PostgreSQL à laquelle le serveur WAPT va se connecter.

db_password =

Mot de passe pour la base PostgreSQL (par défaut vide car la connexion par socket UNIX est activée par défaut)

db_port = 5432

Port du serveur PostgreSQL

db_stale_timeout = 300

Délai d’expiration de la connexion à la base de donnée

db_user =

Nom d’utilisateur pour la base PostgreSQL (par défaut vide car la connexion par socket UNIX est activée par défaut)

enable_store = False

Enables WAPT Store Webui (WAPT Enterprise only)

encrypt_host_packages = False

Chiffre le paquet machine avec le certificat machine client

htpasswd_path = None

Ajoute l’autentifcation basic à WAPT Server

http_proxy = http://srvproxy.mydomain.lan:3128

Définit le serveur proxy du serveur WAPT (pour récupérer des CRL )

known_certificates_folder = /opt/wapt/ssl/

Ajoute un répertoire additionnel des CA pour la vérification des certificats

ldap_auth_base_dn = None

Défini le DN de base LDAP

ldap_auth_server = None

Défini le serveur d’authentification LDAP

ldap_auth_ssl_enabled = True

Active la connexion SSL pour LDAP

loglevel = debug

Niveau de débuggage. Le niveau par défaut est warning

max_clients = 4096

Défini le nombre de connexion simultanées maximum de clients WAPT

min_password_length = 10

Définit la taille minimale de mot de passe

nginx_http = 80

Défini le port Nginx http (Windows seulement)

nginx_https = 443

Défini le port Nginx https (Windows seulement)

remote_repo_diff = False

Active la diff pour la réplication dépôt distant

remote_repo_support = True

Active la fonctionnalité de réplication de dépôts sur WAPT Server

remote_repo_websockets = True

Permet la communication par websocket pour la réplication dépôt distant

secret_key = FKjfzjfkF687fjrkeznfkj7678jknk78687

Chaîne d’initialisation du moteur de gestion de session Flask. Il est généré lors de la première installation du serveur WAPT et est unique pour chaque serveur WAPT.

server_uuid = 76efezfa6-b309-1fez5-92cd-8ea48fc122dc

UUID du server (pour les statistiques anonymes WAPT)

signature_clockskew = 72000

Décalage de temps autorisé pour les timestamps lors d’une connexion websocket

token_lifetime = 43200

Durée d’un jeton d’authentification

trusted_signers_certificates_folder = None

Chemin du dossier des certificats de signature de confiance

trusted_users_certificates_folder = None

Chemin du dossier des CA utilisateur de confiance

use_kerberos = True

Exige une authentification Kerberos pour l’enregistrement initial d’une machine sur le serveur WAPT.

use_ssl_client_auth = False

Active l’authentification par certiticat client

wapt_admin_group_dn = CN=waptadmins,OU=groups,DC=ad,DC=mydomain,DC=lan

LDAP DN du groupe d’utilisateurs Active Directory autorisé à se connecter à la console WAPT

wapt_admin_group = None

LDAP CN du groupe d’utilisateurs Active Directory autorisé à se connecter à la console WAPT

wapt_folder = /var/www/wapt

Répertoire du dépôt WAPT.

wapt_huey_db = C:\Program Files(x86)\wapt\db\waptservertasks.sqlite

Path to database that handles tasks

wapt_password = 46642dd2b1dfezfezgfezgadf0ezgeezgezf53d

Mot de passe du SuperAdmin pour la console WAPT.

waptserver_port = 8080

Défini le port de WAPT Server python, par defaut 8080

wapt_user = admin

Identifiant de connexion du SuperAdmin pour la console WAPT.

waptwua_folder = /var/www/waptwua

Emplacement du dossier WAPT WUA

wol_port = 9,123,4000

Liste des ports UDP WakeOnLAN auxquels envoyer des paquets magiques

wapt_bind_interface = 127.0.0.1

Définit comment écouter au service waptserver

Configurer Nginx

La configuration nginx par défaut est la suivante :

server {
  listen                      80;
  listen                      443 ssl;
  server_name                 _;
  ssl_certificate             "/opt/wapt/waptserver/ssl/cert.pem";
  ssl_certificate_key         "/opt/wapt/waptserver/ssl/key.pem";
  ssl_protocols               TLSv1.2;
  ssl_dhparam                 /etc/ssl/certs/dhparam.pem;
  ssl_prefer_server_ciphers   on;
  ssl_ciphers                 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
  ssl_stapling                on;
  ssl_stapling_verify         on;
  ssl_session_cache           none;
  ssl_session_tickets         off;
  index index.html;

  location ~ ^/wapt.* {
    proxy_set_header Cache-Control "store, no-cache, must-revalidate, post-check=0, pre-check=0";
    proxy_set_header Pragma "no-cache";
    proxy_set_header Expires "Sun, 19 Nov 1978 05:00:00 GMT";
    root "/var/www";
    }

  location / {
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

  location  ~ ^/(api/v3/upload_packages|api/v3/upload_hosts/|upload_waptsetup)  {
    proxy_pass http://127.0.0.1:8080;
    client_max_body_size 4096m;
    client_body_timeout 1800;
    }

  location /wapt-host/Packages {
    return 403;
    }

  location /wapt-host/add_host_kerberos {
    return 403;
    }

  location / {
    proxy_pass http://127.0.0.1:8080;
    }

  location /socket.io {
    proxy_http_version 1.1;
    proxy_buffering off;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_pass http://127.0.0.1:8080/socket.io;
    }
  }
}