Démarrer
Installer l’agent
Une commande par serveur : l’agent s’installe, s’inscrit et envoie ses premières mesures en moins d’une minute.
Ce qu’il faut
- Un serveur Linux avec systemd (Debian, Ubuntu ou la famille Red Hat), en x86_64 ou arm64.
- Un accès root, par
sudo. curl, ouwget: remplacez alorscurl -fsSLparwget -qO-dans les commandes envoyées àsh.- Une connexion HTTPS sortante vers
get.kelva.shpour l’installation, puis versingest.kelva.sh.
Windows Server et macOS arrivent bientôt.
La commande
Dans Kelva, ouvrez « Ajouter une machine », choisissez le système et copiez la commande : elle contient un jeton d’inscription valable 15 minutes, utilisable une fois. Collez-la sur le serveur.
curl -fsSL https://get.kelva.sh | sudo sh -s -- --token kv_enr_…La machine apparaît dans Kelva en moins d’une minute. Avec les offres Pro et Équipe, choisissez d’abord son dossier : il est porté par la commande, et la machine y arrive directement (voir Dossiers).
Pour lire le script avant de le lancer, téléchargez-le, puis passez le jeton sur l’entrée standard : il ne reste pas dans l’historique du shell.
curl -fsSL https://get.kelva.sh -o install.shAvec wget, le téléchargement s’écrit autrement.
wget -qO install.sh https://get.kelva.shsudo sh install.sh --token -Ce qu’elle installe
- 1L’agent pour l’architecture du serveur, vérifié par son empreinte SHA-256.
- 2L’utilisateur système
kelva, sans shell de connexion. - 3
/usr/local/bin/kelva, avec un lien/usr/bin/kelvapour quesudo kelvale trouve sur toutes les distributions, le service systemdkelvaet un fichier de configuration commenté,/etc/kelva/agent.conf, jamais modifié s’il existe. - 4La clé de la machine, contre le jeton, lisible par
kelvaseul. - 5Puis le service démarre, et la commande attend le premier envoi.
Relancée, la commande met l’agent à jour et garde la clé de la machine.
Ce que fait l’agent
- Il n’ouvre que des connexions sortantes, en HTTPS, vers
ingest.kelva.sh: il n’écoute sur aucun port. - Il lit sans rien modifier. Il ne lance que des commandes en lecture seule (
apt-get -s,systemctl list-units…) et jamais une commande venue du serveur, que le protocole ne sait pas envoyer. - Il tourne sous l’utilisateur
kelva, dans un bac à sable systemd : le système entier en lecture seule, sauf/var/lib/kelva. - Quand Kelva ne répond pas, il garde ses mesures sur le disque, jusqu’à 24 heures, et les envoie dans l’ordre au retour.
Une seule capacité, CAP_DAC_READ_SEARCH : lire n’importe quel fichier, n’en écrire aucun. Quatre contrôles en ont besoin, pour des fichiers que seul root peut lire : les deux de SSH, celui des certificats TLS et celui des sauvegardes. Pour la refuser, ajoutez --no-read-all à la commande ; Kelva marque alors ces contrôles « non vérifiable » pour ces fichiers. --read-all la rend.
Vérifier
kelva status dit si l’agent est inscrit et s’il envoie, et sinon pourquoi. Ses messages sont en anglais.
sudo kelva statuskelva check lance les contrôles de l’agent une fois et les affiche, sans rien envoyer.
sudo kelva checkLe journal du service garde le reste.
sudo journalctl -u kelvaUne machine en pause
Quand l’organisation passe à une offre qui suit moins de machines, Kelva met en pause celles en trop : leur historique et leur clé sont gardés, et leur agent continue de tourner.
- Il ne garde plus de mesures sur le disque et ne lance plus de contrôle ; celles qu’il gardait d’avant la pause partent à la reprise.
- Il redemande toutes les 15 minutes, et reprend de lui‑même dès que la machine redevient active, sans réinstallation ni redémarrage.
kelva status le dit (paused), avec l’heure de la pause et celle de la prochaine vérification. La commande d’installation, relancée, le dit aussi.
Proxy et pare-feu
Le pare-feu doit laisser sortir le port 443 vers get.kelva.sh pendant l’installation, puis vers ingest.kelva.sh. Rien à ouvrir en entrée.
Derrière un proxy, donnez-le à votre shell pour le téléchargement, puis au script, car sudo l’efface :
export HTTPS_PROXY=http://proxy.example.com:3128Puis, dans la commande que Kelva vous donne, passez-le au script :
curl -fsSL https://get.kelva.sh | sudo HTTPS_PROXY=$HTTPS_PROXY sh -s -- --token kv_enr_…Avec wget, qui ne lit que https_proxy, donnez-le aussi en minuscules, au shell et au script.
Puis au service, une fois : ouvrez son fichier d’ajouts, écrivez [Service] et, dessous, Environment=HTTPS_PROXY=http://proxy.example.com:3128, enregistrez, puis redémarrez-le.
sudo systemctl edit kelvasudo systemctl restart kelvaMettre à jour
Relancez la commande, sans jeton : l’agent passe à la dernière version, la machine garde sa clé et le service redémarre.
curl -fsSL https://get.kelva.sh | sudo shSi l’agent a été inscrit avec une autre adresse d’envoi (--endpoint), pointez-le vers ingest.kelva.sh sans le réinscrire, puis redémarrez-le :
sudo kelva config set endpoint https://ingest.kelva.shsudo systemctl restart kelvaDésinstaller
--uninstall retire l’agent et son service, et garde sa clé et sa configuration : une nouvelle installation reprend la même machine.
curl -fsSL https://get.kelva.sh | sudo sh -s -- --uninstall--purge retire tout : l’agent, sa clé, sa configuration et l’utilisateur kelva.
curl -fsSL https://get.kelva.sh | sudo sh -s -- --purgeAvant de s’arrêter, l’agent prévient Kelva : la machine passe « Désinstallée ». Son historique est gardé, ses alertes s’arrêtent et elle libère sa place dans votre offre ; avec --purge, sa clé est aussi révoquée. « Retirer cette machine », sur sa fiche, efface son historique.
Si Kelva n’a pas pu être prévenu, le script le dit : retirez alors la machine vous‑même, sinon elle apparaîtra hors ligne.
Les contrôles
L’agent les lance toutes les cinq minutes. Chacun a sa page, qui explique comment corriger ce qu’il trouve. Un contrôle sans objet, à configurer ou non vérifiable ne compte pas dans le score de la machine.
- Mises à jour de sécurité
- Kelva compte les mises à jour de sécurité disponibles que la machine n’a pas encore installées.
- Services
- Kelva vérifie qu’aucun service de la machine ne s’est arrêté sur une erreur.
- Connexion root par SSH
- Kelva vérifie que le compte root ne peut pas ouvrir de session SSH avec un mot de passe.
- Authentification SSH par mot de passe
- Kelva vérifie que SSH refuse les mots de passe et n’accepte que les clés.
- Pare-feu
- Kelva vérifie qu’un pare-feu est actif sur la machine.
- Certificats TLS
- Kelva vérifie la date d’expiration des certificats TLS installés sur la machine.
- Espace disque
- Kelva vérifie qu’aucun disque n’est près d’être plein, ni en espace ni en nombre de fichiers.
- Redémarrage en attente
- Kelva vérifie si des mises à jour attendent un redémarrage pour s’appliquer.
- Heure synchronisée
- Kelva vérifie que l’horloge de la machine est synchronisée sur un serveur de temps.
- Sauvegarde récente
- Kelva vérifie que la dernière sauvegarde est récente, d’après le fichier ou le dossier que vous lui indiquez.
- Support du système
- Kelva vérifie que la version du système reçoit encore des correctifs de sécurité.
- Ports ouverts
- Kelva relève les ports ouverts aux autres machines et repère les bases de données ou l’API Docker joignables de l’extérieur.
- Connexions SSH refusées
- Kelva compte les connexions SSH refusées sur 24 heures et vérifie qu’un outil comme fail2ban les bloque.
- Mises à jour automatiques
- Kelva vérifie que les mises à jour de sécurité s’installent seules, sans attendre qu’on les lance.
- Chiffrement du disque
- Kelva vérifie que les disques d’un serveur physique sont chiffrés.