Commit Graph

141 Commits

Author SHA1 Message Date
37e6f0d8f3 chore(snapshot): strip() defensif sur credentials vCenter (copier-coller peut ajouter newline/CR) 2026-05-04 16:29:20 +02:00
a006e3f422 fix(snapshot): message d erreur distingue login KO de VM non trouvee (etait trompeur) 2026-05-04 16:25:10 +02:00
f1baae9c8e fix(snapshot): _find_vm matching tolerant (court + FQDN) + log samples pour debug si VM non trouvee 2026-05-04 16:21:45 +02:00
9996757e4b feat(snapshot): branche prod/hprod via prefixe hostname (vp/sp/lp = prod/metier ; reste = hprod/gestion) + fix matching DR vpsiaavcs1 (etait vpsicavcs1) + tolerance par name 2026-05-04 16:15:46 +02:00
a1476cb3e2 fix(snapshot): fallback secrets vsphere_user/pass (nom Settings UI) en plus de vcenter_user/pass legacy 2026-05-04 16:07:50 +02:00
b07a6816d4 feat(patching/iexec): check espace disque (/ >= 1.5Go, /var/log >= 1Go) + fix detection subscription-manager identity FR/EN via UUID regex 2026-05-04 15:37:12 +02:00
eb2e0dc8ba feat(patching/iexec B1): page wizard step 1 - checks DNS+SSH+Satellite (LAN vpdsiasat2 / DMZ vpdsiasat1 selon domaine), Linux uniquement (Windows skip), sudo -n partout 2026-05-04 15:14:06 +02:00
983552a442 fix(qualys/agents): message d'echec specifique selon cause reelle (DNS/TCP timeout/TCP refused/SSH auth) - plus de 'agent installe? OS supporte?' generique 2026-04-28 02:00:21 +02:00
eecb61c720 fix(qualys/agents): check service multi-format - SysV init francais (en cours d'execution / (pid X)) en plus de systemd active (running) 2026-04-28 01:45:48 +02:00
f0043eb481 ui(qualys/agents): separation RHEL5 (early exit, decom) vs RHEL6 (agent legacy ok, CA bundle a jour) 2026-04-28 01:33:10 +02:00
4db0cf6a56 ui(qualys/agents): si OS EOL (RHEL 5/6) - affiche seule entree 'agent legacy, decom prevu', pas de warnings redondants 2026-04-28 01:31:25 +02:00
b6a602e848 ui(qualys/agents): wording diag prudent (constat/hypothese/proposition vers ticket support, pas affirmer) 2026-04-28 01:27:42 +02:00
67bd3a02d6 ui(qualys/agents): bloc Etat checklist OK/KO en tete (connectivite/disque/service/install) + log systeme 10 lignes 2026-04-28 01:24:57 +02:00
7f8c2c710b ui(qualys/agents): renomme 'Suggestions' en 'Diagnostic' + reformulation orientee constat (pas de cmds shell, oriente vers ticket support) 2026-04-28 01:23:56 +02:00
5abc474805 perf(qualys/agents): combine toutes les cmds en 1 seul channel SSH avec markers - evite Timeout opening channel sur PSMP 2026-04-28 01:18:59 +02:00
d4205fb8f8 fix(qualys/agents): retry avec reconnect SSH si Timeout opening channel (limite channels PSMP) 2026-04-28 01:14:03 +02:00
fc480b4376 ui(qualys/agents): retire bloc Configuration proxy agent (inutile car SANEF prod sort en direct, pas via proxy) 2026-04-28 01:13:18 +02:00
49c700c5d1 fix(qualys/agents): procedure reinstall reelle SANEF (rpm -ivh /root/QualysCloudAgent.rpm) 2026-04-28 00:58:45 +02:00
79cff850d3 feat(qualys/agents): suggestion auto pour install cassee (core dump + package absent RPM/DPKG) 2026-04-28 00:57:06 +02:00
fb448257a1 ui(qualys/agents): connectivite minimale - HTTP code recu = OK, diag detaille seulement si KO 2026-04-28 00:52:17 +02:00
c54ec0ba0c fix(qualys/agents): test connectivite DIRECT vers qagpublic.qg1.apps.qualys.eu (pod EU1 SANEF) - pas de proxy car agent sort en direct 2026-04-28 00:26:29 +02:00
9d312f43a3 feat(qualys/agents): check conf proxy agent (qagent-proxy.conf, drop-in systemd, sysconfig, /etc/environment) + suggestion config proxy 2026-04-28 00:20:56 +02:00
191c167423 fix(qualys/agents): snapshot vCenter (pas LVM) pour rollback avant extend FS 2026-04-28 00:15:12 +02:00
640292c1ce feat(qualys/agents): checks LVM + logrotate + suggestions extend FS / cleanup / fix logrotate avec snapshot LVM obligatoire 2026-04-28 00:11:45 +02:00
b81343d5ca fix(qualys/agents): test connectivite via proxy SANEF (proxy.sanef.fr:8080, fallback IP 10.40.10.225) + suggestion conf agent 2026-04-28 00:06:32 +02:00
a877589cf3 feat(qualys/agents): suggestions auto resolution selon patterns logs (disque sature, crash loop, conn KO, service masked, agent obsolete) 2026-04-28 00:01:14 +02:00
437b1ed172 feat(qualys/agents): ajout checks espace disque + connectivite console Qualys (qualysagent/qualysguard.qualys.eu) 2026-04-27 23:53:15 +02:00
d9be39a037 fix(qualys/agents): sudo -n explicite pour lire logs Qualys (fichiers root-only) + fallback messages 'existe mais non lisible' 2026-04-27 23:39:53 +02:00
cdcb85917d feat(qualys/agents): audit en background thread + page d'attente auto-refresh (fix ERR_CONNECTION_RESET sur audits longs) 2026-04-27 23:25:50 +02:00
26e05d63ac fix(qualys/agents): commandes audit adaptees multi-OS (RHEL5 SysV init, journalctl absent, chemins log Qualys multiples) 2026-04-27 23:15:50 +02:00
03229d4d08 feat(qualys/agents): bouton Check + page audit cible Qualys agent (status + version + logs agent/systeme via SSH) 2026-04-27 23:09:05 +02:00
dc9c197274 fix(qualys/dashboard): timeout 120s->300s + log erreurs sur _fetch_asset_ids_by_tag (manque ENV-PRD/REC sur gros tags) 2026-04-27 23:00:58 +02:00
5ec5271232 perf(qualys/dashboard): parallelise fetch vulns par batch IPs (8 workers, ~18min -> ~3min) 2026-04-27 17:15:44 +02:00
0d4ce6dfc2 feat(qualys/duplicates): scan filtre Linux+Windows Server uniquement (~1200 vs 6244) 2026-04-25 19:56:23 +00:00
6c52d05393 fix(qualys/duplicates): renomme cle items -> groups (conflit Jinja avec dict.items) 2026-04-25 10:49:53 +00:00
e832381b68 feat(qualys/duplicates): filtre serveurs uniquement (exclut Win 10/11/7/8/XP postes) 2026-04-25 10:23:14 +00:00
3d043af194 feat(qualys): page doublons + suppression API Qualys 1-clic 2026-04-25 10:17:40 +00:00
8f406f211d feat(qualys/dashboard): compute v2 - interroge API Qualys par tag (DB locale qualys_asset_tags souvent obsolete) 2026-04-25 00:42:29 +00:00
0ab4f2d8fa fix(qualys/dashboard): vire flag in-memory + safety net thread + flex layout 6 KPI 2026-04-25 00:13:22 +00:00
9a7f446637 fix(qualys/dashboard): insert pending row dans la route avant spawn thread (no race) 2026-04-25 00:07:22 +00:00
8f8e8c4d8f feat(qualys): dashboard vulnerabilites avec KPI + historique 2026-04-24 23:49:46 +00:00
c258d6091a fix(qualys): resync_all_tags HTTP 400 - limitResults 10000 trop grand, capper a 1000
Qualys QPS API rejette limitResults au-dela de 1000 (HTTP 400 Bad Request).
Aligne sur les autres requetes du service (5, 20, 100, 200, 1000) et sur
qualys_tags_service.list_qualys_tags qui utilise deja 1000.

Reproductible via /qualys/tags > bouton Resync (msg=resync_ko_HTTP+400).
2026-04-23 12:19:31 +00:00
9a72fa7eb7 Optim: fix N+1 queries itop_service (pre-load batch) + macros Jinja2 badges 2026-04-17 23:23:32 +00:00
a0f90cd719 Optim: logging structure + query_helpers.py + fix exceptions silencieuses routers 2026-04-17 23:19:18 +00:00
MOUTAOUAKIL-ext Khalid
e2fb34f115 Sync SANEF : audit_service + schema.sql + data deploy + gitignore 2026-04-17 09:20:57 +02:00
1c661e2dc5 qualys_tags: respect qualys_bypass_proxy flag
_get_creds() ignorait le flag bypass_proxy et retournait toujours
qualys_proxy meme si l'utilisateur avait coche bypass en settings.
Comportement desormais aligne avec qualys_service._get_qualys_creds().
2026-04-17 00:28:57 +02:00
617bf94e31 Qualys agents sync: optims perf majeures (~3-5x plus rapide)
Refactor _refresh_all_agents_impl() avec 4 optimisations:

1. Pre-chargement des servers en dict Python au debut (hostname + IP)
   -> elimine 2 queries SQL par asset (gain principal)

2. UPSERT 'INSERT ... ON CONFLICT DO UPDATE' + RETURNING (xmax=0)
   -> une seule query au lieu de SELECT + INSERT/UPDATE
   -> compte created/updated via xmax

3. HTTP Session reutilisee (requests.Session)
   -> keep-alive, pas de handshake SSL a chaque page

4. ThreadPoolExecutor(5) pour executer les 5 filtres tagName en parallele
   -> dedup par asset_id pour eviter traitement double

Bonus:
- max_pages 30 -> 500 par filtre (evite syncs incomplets silencieux)
- FQDN backfill cible via cache 'servers_need_fqdn' (pas d'UPDATE inutile)
- Commit unique en fin de traitement (suppression savepoint par asset)
- Retrait age-check redondant en mode diff (deja filtre cote API)
2026-04-16 23:34:51 +02:00
f1a1ca9c7b Qualys Tags V3: unescape entites XML dans ruleText/name
Qualys renvoie les entites XML dans ruleText deja echappees (Bip&Go,
<?xml...). Jinja auto-escape les ressortait en double (<...).
Unescape iteratif (jusqu'a 3 passes) pour couvrir le double-escape.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 15:40:04 +02:00
79a2cc896e Qualys diff: format ISO sans microsec YYYY-MM-DDTHH:MM:SSZ (compat API QPS) 2026-04-15 14:28:57 +02:00
7924e64616 Qualys diff: filtre 'updated' (searchable) au lieu de 'lastCheckedIn' (non recunu API) 2026-04-15 14:06:27 +02:00