Aller au contenu
VDRVOZit Detection & Response

Guide administrateur

Pour les administrateurs d'une organisation et le super-administrateur de la plateforme.

Rôles

RôlePeut
Super-administrateurtout, sur toutes les organisations ; créer, suspendre ou supprimer une organisation ; voir les demandes de démonstration. Compte créé uniquement en ligne de commande.
Administrateurtout dans son organisation : serveurs, utilisateurs, paramètres, export
Analystetraiter alertes, incidents, bans et décisions
Lecture seuletout consulter, exporter, lire le journal d'audit ; ne modifie rien (auditeur, DPO)

Ajouter un serveur

  1. Serveurs → Ajouter : nom (ex. pve-02), description, criticité.
  2. La page suivante affiche le jeton une seule fois et les commandes d'installation. La console n'en garde que l'empreinte.
  3. Sur le serveur, en root (les commandes exactes, avec l'empreinte à jour, sont affichées par la console et dans Serveurs → Installer ou mettre à jour l'agent) :
curl -fsSLo vigie.tar.gz https://vdr.vozit.dev/telechargement/agent    # ou wget -qO vigie.tar.gz …
echo 'EMPREINTE  vigie.tar.gz' | sha256sum -c
tar xzf vigie.tar.gz && cd vigie
sh install.sh --console https://vdr.vozit.dev --whitelist VOTRE_IP_ADMIN/32
  1. Collez le jeton quand il est demandé (saisie masquée : il n'apparaît ni à l'écran, ni dans l'historique du shell). Le script installe l'agent, ajoute la section console et la liste blanche dans /etc/vigie/vigie.json, démarre le service et lance vigie console test.
  2. Le serveur passe à l'état OK dans la console.

Mettre à jour un agent (par exemple pve-02 de 0.1.0 vers la dernière version) : mêmes commandes. La configuration existante est conservée ; si /etc/vigie/console.token existe déjà, le jeton n'est pas redemandé. Pour une installation automatisée (Ansible…), utilisez --token-file FICHIER.

Restreindre le jeton (fiche du serveur) : indiquez les IP sources autorisées. Un appel depuis une autre IP reçoit 401 et est tracé dans « Vie du serveur ».

Changer le jeton : l'ancien cesse de fonctionner immédiatement. Cochez « l'agent a été réinstallé » si sa base locale a été recréée : ses numéros d'alerte repartent de zéro et seraient sinon pris pour des doublons. La console signale d'elle-même ce cas (« Numérotation réinitialisée »).

Révoquer : l'agent reçoit 401, continue de détecter et de bannir localement, et garde ses envois en attente.

Passer un serveur en protection

L'agent démarre en observation (bans simulés). Après quelques jours sans faux positif :

  1. Vérifiez la liste blanche (IP d'administration, supervision, réseau privé) — visible dans la fiche du serveur.
  2. Sur le serveur : "mode": "protection" dans /etc/vigie/vigie.json, puis systemctl restart vigie.
  3. Contrôlez : ipset list vigie4 et iptables -S INPUT | head -3.

Utilisateurs

Un compte VDR (une adresse e-mail) peut appartenir à plusieurs organisations, avec un rôle par organisation : un prestataire peut être administrateur chez un client et lecture seule chez un autre.

  • Ajouter une adresse e-mail et un rôle :
  • si l'adresse a déjà un compte VDR, elle est simplement rattachée à votre organisation : pas de nouveau mot de passe, pas de QR code, rien à transmettre ;
  • sinon, un lien d'activation (48 h, usage unique) s'affiche une fois. VDR n'envoie pas d'e-mail : transmettez-le par un canal sûr.
  • Rôle : modifiable à tout moment, il ne concerne que votre organisation.
  • Nouveau lien : réinitialise mot de passe et double authentification (téléphone perdu) et ferme les sessions. Pour un compte partagé avec d'autres organisations (étiquette « partagé »), seul un super-administrateur peut le faire (php bin/vdr user:reset EMAIL) : sinon un administrateur pourrait prendre la main sur les accès de la personne ailleurs.
  • Retirer : l'accès à votre organisation est coupé immédiatement. Le compte est supprimé s'il n'appartient à aucune autre organisation, conservé sinon.

Notifications

Notifications (menu Gouvernance) : une règle = un canal, des destinataires, un seuil.

ChampEffet
CanalE-mail, SMS, push (fournisseurs configurés par la plateforme) ou webhook (Slack, Microsoft Teams, Mattermost, Discord, JSON générique)
Destinatairesmembres de l'organisation ; chacun renseigne son téléphone et son identifiant push dans « Mon compte »
Gravité minimaleex. « critique » pour l'astreinte SMS, « haute » pour un canal Teams d'équipe
Scénarios, serveursfacultatif : limiter à certains scénarios (noms techniques) ou serveurs
Serveurs muetsprévenir quand un serveur ne donne plus de nouvelles depuis 3 minutes, puis quand il revient
Anti-rafaleune notification par serveur et par scénario pendant ce délai ; les suivantes sont tracées (« regroupée ») sans être envoyées

Les alertes partent dans la minute qui suit leur réception. En cas d'échec, l'envoi est retenté après 1, 5, 15 puis 60 minutes. Tester envoie un message de test immédiat à tous les destinataires de la règle. L'historique des 100 derniers envois est en bas de la page.

Un webhook doit être en https:// et viser une adresse publique : les adresses internes sont refusées.

Conseil : au moins une règle pour les alertes critiques et les serveurs muets. La page Conformité signale l'absence de règle.

Paramètres de l'organisation

ParamètreEffet
Partager les bansban d'une IP pour force brute lente ou balayage → décision de ban pour tous les autres serveurs
IP autoriséesseules ces plages peuvent ouvrir cette organisation dans la console (un compte membre d'autres organisations y garde accès selon leurs propres règles) ; votre IP actuelle doit y être
Conservationalertes, bans, décisions et événements plus anciens sont purgés chaque nuit (30 à 730 jours). Les alertes rattachées à un incident ouvert sont conservées.
DPO, contact sécurité, statut NIS2repris dans les rapports et les indicateurs de conformité

Exporter toutes les données (JSON) : réversibilité, réponse à un auditeur, droit d'accès.

Espace plateforme (super-administrateur)

  • Organisations : créer (l'administrateur est facultatif : sans adresse, ou avec la vôtre, l'organisation est créée et ouverte directement ; une nouvelle adresse reçoit un lien d'activation ; une adresse qui a déjà un compte est rattachée sans lien), ouvrir, suspendre (accès à cette organisation et agents refusés), supprimer (toutes les données et les comptes qui n'appartenaient qu'à elle, irréversible ; exportez avant).
  • Le sélecteur en haut de la console change l'organisation consultée ; chaque consultation est inscrite dans le journal d'audit de l'organisation.
  • Demandes de démonstration : reçues depuis le site, à passer en « traitée » ou « archivée ».

Intégrations de la plateforme (super-administrateur)

Intégrations (menu Plateforme) :

  • Fournisseurs SMS et push : VDR appelle l'API HTTP de votre fournisseur. Renseignez la méthode, l'URL, les en-têtes (clés d'API, chiffrées en base) et le modèle du corps, avec les variables {{to}}, {{message}}, {{title}}, {{severity}}, {{host}}, {{url}}, {{organization}}. Pour un corps JSON, utilisez {{message|json}} (guillemets et échappement inclus) ; les variables d'une URL sont encodées d'office. « Longueur maximale » tronque le message (160 pour un SMS en un envoi). Le bouton Envoyer fait un test réel vers un numéro ou un identifiant.
  • Envoi d'e-mails : serveur SMTP (STARTTLS ou SSL), expéditeur, test. Tant que le pilote est « Journal », les e-mails sont écrits dans storage/mail/ sans être envoyés.
  • Renseignement sur les menaces : état des listes de réputation (mises à jour chaque nuit) et de la base des pays (mensuelle) ; bouton de mise à jour immédiate.

Ligne de commande (serveur de la console)

php bin/vdr user:add-super EMAIL "Nom"   # compte plateforme, affiche le lien d'activation
php bin/vdr user:reset EMAIL             # nouveau lien pour n'importe quel compte
php bin/vdr users                        # comptes, avec leurs organisations et rôles
php bin/vdr purge                        # rétention (cron chaque nuit)
php bin/vdr audit:verify                 # vérifie la chaîne d'audit (code 2 si rompue)
php bin/vdr demo:tick                    # garde vivante l'organisation de démonstration (cron chaque minute)
php bin/vdr tick -v                      # enrichissement, corrélation, notifications (cron chaque minute)
php bin/vdr intel:update [--force]       # listes de réputation, base des pays (cron chaque nuit)

Cron installé : /etc/cron.d/vdr (purge à 3 h 15, vérification de l'audit à 3 h 30, renseignement à 4 h 10, tick et démonstration chaque minute). Journal de tick : storage/logs/tick.log.

Sauvegardes

Sauvegarder chaque jour, hors de la machine : la base vdr et le fichier storage/app.key (sans lui, les secrets TOTP ne peuvent pas être déchiffrés et tous les comptes devront être réinitialisés).