[{"data":1,"prerenderedAt":219},["ShallowReactive",2],{"seo-verification":3,"blog-checklist-audit-securite-mensuel-vps-clients-agence-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-checklist-audit-securite-mensuel-vps-clients-agence-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":168,"ctaBody":169,"ctaButton":170,"ctaUrl":171,"relatedPosts":172},521,"checklist-audit-securite-mensuel-vps-clients-agence",{"fr":10,"en":12,"ar":13,"es":14},"monthly-security-audit-checklist-client-vps-agency","قائمة-تدقيق-أمان-vps-شهرية-للعملاء-للوكالات","auditoria-seguridad-mensual-vps-clientes-agencia-checklist","Audit sécurité mensuel d'un VPS client : checklist en 45 min","Sept contrôles à dérouler chaque mois sur un VPS client : mises à jour, noyau, comptes SSH, ports, certificats, sauvegardes, journaux. Rapport daté inclus.",10,0,false,"2026-10-28T00:00:00+00:00","2026-10-29T03:10:22+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Sécurité & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fchecklist-audit-securite-mensuel-vps-clients-agence-poster.svg","Un client ne demande pas si son VPS est sûr, il demande depuis quand vous le savez. Une agence qui n'a pas de routine ne peut répondre ni le jour d'une faille ni à la question du renouvellement de contrat. Cette checklist déroule en 45 minutes, par VPS, sept contrôles en lecture seule : mises à jour en attente, noyau, comptes et clés SSH, ports ouverts, certificats, sauvegardes restaurées, journaux d'authentification. Elle se termine par un rapport d'une page, daté, que vous remettez au client et que vous comparez d'un mois à l'autre.",[35,39,42,52,77,111,114,117,138,142,150,153,156,165],{"type":36,"title":37,"body":38},"h2","Vérifier un état, pas le reconstruire","Le durcissement initial d'un VPS se fait une fois, à la livraison : clés SSH, pare-feu, fail2ban, mises à jour automatiques. Notre checklist de durcissement le détaille déjà. Ici, on part du principe que tout cela existe et on se demande s'il tient encore. Un paquet resté en attente, un compte créé pour un prestataire et jamais supprimé, un port ouvert pour un test, un certificat dont le renouvellement échoue en silence : rien de cela ne se voit tant qu'on ne regarde pas. L'audit mensuel est donc une routine de contrôle, pas de configuration. Chaque contrôle produit une sortie, que vous archivez, et un statut vert, orange ou rouge dans le rapport du client. Un écart est noté, jamais corrigé sans accord.",{"type":36,"title":40,"body":41},"Poser le périmètre avant le premier audit","Avant la première commande, fixez par écrit qui est responsable de quoi. Le VPS appartient-il au client ou à l'agence ? Qui détient le compte root, qui reçoit les alertes, qui décide d'un redémarrage ? Sans réponse, le premier écart trouvé devient un différend : l'agence a-t-elle le droit de corriger, le client a-t-il été prévenu ? Reprenez cinq points dans votre contrat ou votre bon de commande : les VPS couverts, la fréquence de l'audit, les accès accordés en lecture seule, le délai de réponse en cas d'écart rouge, et la liste des actions que l'agence peut faire seule, comme appliquer une mise à jour de sécurité, par opposition à celles qui exigent une validation du client, comme un redémarrage ou une suppression de compte.",{"type":43,"title":44,"items":45},"ul","À préparer une seule fois, avant d'auditer",[46,47,48,49,50,51],"**Un compte d'audit dédié** — un utilisateur nominatif avec `sudo` limité à la lecture des journaux et à l'inspection réseau, plutôt que root partagé.","**Une liste attendue par VPS** — ports qui doivent écouter, comptes autorisés, domaines servis, outil de sauvegarde et dépôt. Sans référence, un écart ne se distingue pas d'un fonctionnement normal.","**Un script de collecte en lecture seule** — il enchaîne les commandes de la checklist et écrit tout dans un fichier daté, pour ne taper chaque commande qu'une fois.","**Un dossier d'archives par client** — un sous-dossier par mois, conservé hors du VPS audité, pour pouvoir comparer les mois entre eux.","**Un modèle de rapport** — le même gabarit pour tous les clients, rempli depuis les sorties collectées.","**Un calendrier** — un jour fixe du mois par client, noté dans l'agenda de l'équipe, sinon l'audit saute dès le premier mois chargé.",{"type":53,"title":54,"steps":55},"steps","Les sept contrôles, avec leur budget de temps",[56,59,62,65,68,71,74],{"title":57,"body":58},"Mises à jour en attente (6 min)","`sudo apt update`\n`apt list --upgradable 2>\u002Fdev\u002Fnull`\n`apt list --upgradable 2>\u002Fdev\u002Fnull | grep -i security`\nIsolez les paquets dont l'origine finit par `-security` : ils partent en priorité. Les autres passent par une validation humaine, car une montée de version majeure peut casser une application. Sur AlmaLinux ou RHEL, `sudo dnf check-update --security` joue le même rôle. Même avec les mises à jour automatiques activées, ce contrôle montre ce qui reste bloqué.",{"title":60,"body":61},"Noyau et redémarrage en attente (4 min)","`uname -r`\n`ls \u002Fboot\u002Fvmlinuz-*`\n`ls \u002Fvar\u002Frun\u002Freboot-required`\n`sudo needrestart -b -r l`\nSi le noyau installé le plus récent diffère de `uname -r`, ou si `\u002Fvar\u002Frun\u002Freboot-required` existe, un redémarrage est dû. Dans la sortie de needrestart, la ligne `NEEDRESTART-KSTA` dit si le noyau chargé est à jour, et la liste indique les services qui utilisent encore d'anciennes bibliothèques. Le redémarrage n'est jamais fait seul : il se planifie avec le client.",{"title":63,"body":64},"Comptes et clés SSH (8 min)","`awk -F: '$3>=1000' \u002Fetc\u002Fpasswd`\n`getent group sudo`\n`sudo ssh-keygen -lf \u002Fhome\u002F\u003Ccompte>\u002F.ssh\u002Fauthorized_keys`\n`lastlog | grep -v 'Never logged in'`\n`last -n 20`\nChaque compte humain doit correspondre à une personne connue du client ou de l'agence. Chaque empreinte de clé doit appartenir à quelqu'un qui travaille encore sur le projet. Un compte jamais connecté depuis des mois, ou une clé inconnue, passe en orange et part au client pour validation.",{"title":66,"body":67},"Ports ouverts (5 min)","`sudo ss -tlnp`\n`sudo ss -ulnp`\n`sudo ufw status verbose`\nRapprochez la liste de celle attendue pour ce VPS. Une base de données qui écoute sur toutes les interfaces au lieu de la boucle locale, un port de test oublié, un service inconnu : chaque écart est noté avec le processus qui l'ouvre, sans fermeture immédiate, car un service peut dépendre de ce port.",{"title":69,"body":70},"Certificats (4 min)","`openssl s_client -connect mondomaine.com:443 -servername mondomaine.com \u003C\u002Fdev\u002Fnull 2>\u002Fdev\u002Fnull | openssl x509 -noout -enddate`\nLisez la date d'expiration sur le service réellement exposé, pas seulement la présence d'un timer de renouvellement : un timer actif peut échouer chaque nuit. Si le domaine passe par un CDN, cette commande lit le certificat du CDN. Pour l'origine, remplacez l'hôte de `-connect` par l'adresse IP du VPS en gardant `-servername`.",{"title":72,"body":73},"Sauvegardes restaurées (10 min)","`restic snapshots`\n`restic restore latest --target \u002Ftmp\u002Frestauration-test --include \u002Fetc\u002Fnginx`\nNotez la date du dernier point de restauration, puis restaurez réellement un fichier ou une base dans un répertoire temporaire, et ouvrez-le. Une sauvegarde jamais restaurée n'est pas une preuve, c'est une hypothèse. Supprimez le répertoire temporaire ensuite. Si le client utilise un autre outil, la logique est identique : liste des points, restauration partielle, vérification du contenu.",{"title":75,"body":76},"Journaux d'authentification (8 min)","`sudo journalctl -u ssh --since '30 days ago' --no-pager | grep -c 'Failed password'`\n`sudo journalctl -u ssh --since '30 days ago' --no-pager | grep 'Accepted'`\n`sudo journalctl _COMM=sudo --since '30 days ago' --no-pager`\nComptez les échecs, listez les connexions réussies et cherchez celles qui viennent d'une adresse inconnue. Relisez les usages de `sudo`. Sur RHEL et dérivés, l'unité s'appelle `sshd`, pas `ssh`.",{"type":78,"title":79,"headers":80,"rows":84},"comparison","Le budget de 45 minutes par VPS",[81,82,83],"Contrôle","Commande clé","Temps",[85,89,93,97,101,104,108],[86,87,88],"Mises à jour en attente","`apt list --upgradable`","6 min",[90,91,92],"Noyau et redémarrage","`needrestart -b -r l`","4 min",[94,95,96],"Comptes et clés SSH","`ssh-keygen -lf authorized_keys`","8 min",[98,99,100],"Ports ouverts","`ss -tlnp`","5 min",[102,103,92],"Certificats","`openssl s_client`",[105,106,107],"Sauvegardes restaurées","`restic restore`","10 min",[109,110,96],"Journaux d'authentification","`journalctl -u ssh`",{"type":36,"title":112,"body":113},"Un script de collecte plutôt que sept sessions à la main","La plus grande part des 45 minutes est de la lecture, pas de la frappe, à condition de ne pas retaper les commandes. Écrivez un script `audit-vps` qui lance les commandes des contrôles un à sept et redirige chaque sortie vers un fichier nommé d'après le client et la date, par exemple `~\u002Faudits\u002Fclient-a\u002FAAAA-MM\u002Fsortie-brute.txt`. Il ne contient que des commandes de lecture : aucun `apt upgrade`, aucun `systemctl restart`, aucun `rm`. Lancez-le par SSH depuis votre poste, récupérez le fichier, puis lisez-le tranquillement. La restauration de sauvegarde reste la seule étape manuelle, parce qu'elle demande de juger si le contenu restauré est cohérent.",{"type":36,"title":115,"body":116},"Archiver et comparer : c'est là que les dérives se voient","Un audit isolé donne une photographie, deux audits consécutifs donnent une tendance. Conservez la sortie brute de chaque mois, puis comparez-la à la précédente avec `diff -u audit-precedent.txt audit-courant.txt`. Un port qui apparaît, un compte en plus, un nombre d'échecs de connexion multiplié par dix, un point de restauration qui ne bouge plus : tous ces signaux ressortent en quelques lignes de différence, alors qu'ils sont invisibles dans une sortie lue seule. Archivez aussi le rapport remis au client. Le jour où celui-ci demande depuis quand un compte existait ou quand un correctif a été appliqué, la réponse est un fichier daté, pas un souvenir.",{"type":53,"title":118,"steps":119},"Le rapport d'une page remis au client",[120,123,126,129,132,135],{"title":121,"body":122},"L'en-tête","Nom du client, identifiant du VPS, adresse IP, date de l'audit, nom de la personne qui l'a mené.",{"title":124,"body":125},"Le tableau des sept contrôles","Une ligne par contrôle avec un statut : vert si rien à signaler, orange si un écart demande une décision du client, rouge si une action urgente est nécessaire.",{"title":127,"body":128},"Les écarts constatés","Chaque écart en une phrase factuelle, avec la preuve : la ligne de sortie, le port, le compte concerné.",{"title":130,"body":131},"Les actions faites","Ce que l'agence a appliqué seule, dans le périmètre convenu, par exemple une mise à jour de sécurité.",{"title":133,"body":134},"Les actions à valider par le client","Redémarrage, suppression d'un compte, fermeture d'un port, avec le risque de ne rien faire.",{"title":136,"body":137},"La prochaine échéance","La date du prochain audit et, pour chaque écart orange ou rouge, une date limite de traitement.",{"type":139,"title":140,"body":141},"tip","Notez l'écart, ne le corrigez pas dans la foulée","Le réflexe de fermer le port ou de supprimer le compte suspect pendant l'audit est le plus coûteux : un service client tombe, et l'agence l'a décidé seule. Le rôle de l'audit est de rendre l'écart visible et daté. La correction suit le circuit de validation convenu au départ, y compris pour ce qui paraît évident.",{"type":43,"title":143,"items":144},"Quand une sortie ne dit pas ce qu'elle semble dire",[145,146,147,148,149],"**`needrestart` introuvable** — le paquet n'est pas installé par défaut partout. Installez-le une fois avec accord du client, ou comparez à la main `uname -r` et les noyaux présents dans `\u002Fboot`.","**Aucun échec SSH dans les journaux** — vérifiez le nom de l'unité avant de conclure. Selon la distribution, l'authentification est journalisée sous `ssh`, `sshd` ou, sur les versions récentes d'OpenSSH, `sshd-session`. Testez `sudo journalctl _COMM=sshd-session --since '30 days ago'`.","**`ss -tlnp` n'affiche pas les processus** — sans `sudo`, la colonne des processus reste vide pour les services des autres utilisateurs.","**Un certificat valide alors que le site affiche une erreur** — vous avez lu celui d'un CDN ou d'un autre vhost. Pointez l'adresse du VPS et passez le bon `-servername`.","**`restic` demande un mot de passe** — le dépôt est chiffré. Récupérez le secret auprès du client avant l'audit, et non pendant, faute de quoi le contrôle saute.",{"type":36,"title":151,"body":152},"L'objection du temps : 45 minutes par client, chaque mois","Vingt clients font quinze heures par mois, et l'objection est légitime. Trois leviers la réduisent. D'abord, le temps se mesure par VPS, pas par client : un client à un seul serveur coûte 45 minutes, et moins dès le deuxième mois, car les références attendues sont posées. Ensuite, le script collecte tout, vous ne faites que lire, et le rapport se remplit depuis un modèle. Enfin, comparez au coût d'un incident non détecté : un accès oublié ou une sauvegarde inutilisable se découvrent le jour de la panne, avec un client mécontent et une facture de remise en état. La routine coûte moins qu'un seul incident évitable.",{"type":36,"title":154,"body":155},"Quand le portefeuille grandit","À dix VPS, la checklist tient dans une journée. À cinquante, la difficulté devient d'organisation : savoir quel client a quoi, quelles échéances tombent ce mois-ci, qui a été audité. L'espace agence de ServOrbit.com regroupe services et échéances de chaque client dans une seule interface, ce qui évite de maintenir un tableur parallèle. Si l'agence ne souhaite pas porter elle-même le socle système, l'option administration VPS existe et s'étudie à part. Ce guide est fourni tel quel, sans prise en charge : l'exécution de l'audit et la responsabilité envers le client restent les vôtres.",{"type":43,"title":157,"items":158},"Pour aller plus loin",[159,160,161,162,163,164],"**Mettre en place le socle** — \u002Fblog\u002Flinux-hardening-vps-checklist décrit le durcissement initial que cet audit vient vérifier.","**Automatiser les correctifs** — \u002Fblog\u002Fsecurite-vps-mises-a-jour-automatiques-debian-ubuntu explique unattended-upgrades, dont le premier contrôle mesure les restes.","**Sauvegarder correctement** — \u002Fblog\u002Fbackup-vps-restic-s3-3-2-1 couvre la mise en place de Restic, dont le sixième contrôle vérifie la restauration.","**Surveiller en continu** — \u002Fblog\u002Falertes-disque-ram-vps-monitoring-proactif complète l'audit mensuel par des alertes entre deux passages.","**Inventorier les versions de PHP** — \u002Fblog\u002Finventaire-versions-php-parc-sites-clients-agence applique la même discipline au parc de sites.","**Réagir à une faille** — les guides de correctif de la catégorie Sécurité et monitoring du blog montrent ce qu'un inventaire à jour permet de faire le jour J.",{"type":36,"title":166,"body":167},"La documentation officielle","Options de apt : https:\u002F\u002Fmanpages.debian.org\u002Fstable\u002Fapt\u002Fapt.8.en.html\n\nProjet needrestart : https:\u002F\u002Fgithub.com\u002Fliske\u002Fneedrestart\n\nMise à jour automatique sous Debian : https:\u002F\u002Fwiki.debian.org\u002FUnattendedUpgrades\n\nCommande ss : https:\u002F\u002Fman7.org\u002Flinux\u002Fman-pages\u002Fman8\u002Fss.8.html\n\nCommande openssl s_client : https:\u002F\u002Fdocs.openssl.org\u002Fmaster\u002Fman1\u002Fopenssl-s_client\u002F\n\nCommande journalctl : https:\u002F\u002Fwww.freedesktop.org\u002Fsoftware\u002Fsystemd\u002Fman\u002Flatest\u002Fjournalctl.html\n\nDémon sshd : https:\u002F\u002Fman.openbsd.org\u002Fsshd.8\n\nCommande last : https:\u002F\u002Fman7.org\u002Flinux\u002Fman-pages\u002Fman1\u002Flast.1.html","Un portefeuille de VPS lisible d'un seul endroit","Auditer un parc à la main devient ingérable quand le portefeuille grandit. L'espace agence ServOrbit.com regroupe services et échéances de chaque client dans une seule interface, et l'option administration VPS permet de confier le socle système.","Découvrir l'offre agences","\u002Fsolutions\u002Fagences",[173,190,205],{"id":174,"slug":175,"slugs":176,"title":180,"excerpt":181,"readTime":182,"views":183,"isPinned":19,"publishedAt":184,"updatedAt":185,"category":186,"categories":187,"featuredImage":30,"bgImage":31,"posterImage":189,"relatedSolution":30},317,"linux-hardening-vps-checklist",{"fr":175,"en":177,"ar":178,"es":179},"linux-vps-hardening-checklist-for-agencies","قائمة-تصليب-خادم-لينكس-للوكالات-بعد-التسليم","hardening-linux-vps-checklist-para-agencias-tras-la-entrega","Durcissement Linux VPS : checklist agence après livraison","Checklist de durcissement Linux pour agences : auditd, sudo, SSH par clé, UFW, fail2ban et désactivation root — traçabilité et runbook par client.",11,1,"2026-08-30T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[188],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Flinux-hardening-vps-checklist-poster.svg",{"id":191,"slug":192,"slugs":193,"title":197,"excerpt":198,"readTime":182,"views":18,"isPinned":19,"publishedAt":199,"updatedAt":200,"category":201,"categories":202,"featuredImage":30,"bgImage":31,"posterImage":204,"relatedSolution":30},508,"inventaire-versions-php-parc-sites-clients-agence",{"fr":192,"en":194,"ar":195,"es":196},"php-version-inventory-for-client-sites-an-agency-method","جرد-إصدارات-php-لمواقع-العملاء-منهج-للوكالات","inventario-de-versiones-php-de-sitios-cliente-metodo-de-agencia","Inventaire des versions PHP du parc clients : méthode d'agence","Registre des versions PHP de vos sites clients chez plusieurs hébergeurs : paliers d'accès, scripts en lot, lots de priorité, message client et preuve datée.","2026-10-27T00:00:00+00:00","2026-10-27T23:58:39+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[203],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Finventaire-versions-php-parc-sites-clients-agence-poster.svg",{"id":206,"slug":207,"slugs":208,"title":212,"excerpt":213,"readTime":182,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":214,"category":215,"categories":216,"featuredImage":30,"bgImage":31,"posterImage":218,"relatedSolution":30},523,"tester-restauration-sauvegarde-vps-client-agence-procedure",{"fr":207,"en":209,"ar":210,"es":211},"test-client-vps-backup-restore-agency-procedure","اختبار-استعادة-نسخة-احتياطية-vps-عميل-وكالة-إجراء","probar-restauracion-copia-seguridad-vps-cliente-agencia-procedimiento","Tester la restauration d'une sauvegarde client : procédure agence","Procédure trimestrielle pour restaurer un site client sur un VPS jetable, mesurer le RTO et le RPO constatés, puis remettre un journal de test daté au client.","2026-10-29T03:10:23+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[217],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Ftester-restauration-sauvegarde-vps-client-agence-procedure-poster.svg",1793251215114]