Validation de la configuration du système
Validation des paramètres de configuration système du serveur
Que ce soit pour la conformité réglementaire ou pour minimiser la dérive, il est toujours judicieux de surveiller les aspects clés de la configuration système de votre serveur au fil du temps. Malheureusement, même les machines virtuelles déployées à partir du même modèle peuvent parfois agir différemment. Oui, c'est ça, et merde ça arrive, blâmez Murphy et sa loi. Il y a aussi des correctifs constants, des versions de bibliothèques qui évoluent toujours, garder la constance sur un grand nombre de serveurs dans le temps est un vrai défi.
" La validation du système informatique permet de garantir que les serveurs nouveaux et existants remplissent en permanence leur objectif et produisent des résultats cohérents et fiables, et sont aptes à remplir en toute sécurité leur objectif avec des performances adéquates. "
Il semble y avoir deux philosophies distinctes sur la façon d'atteindre cet état. Certains pensent qu'il est préférable d'utiliser des outils de gestion de configuration tels que Chef , Puppet ou Salt pour écraser périodiquement les paramètres actuels et réinitialiser la configuration du système à son état initial.
Je pense personnellement que ce comportement est risqué, changer automatiquement la configuration d'un système de production sans une diligence raisonnable appropriée est imprudent. Je préfère de loin l'approche "audit et alerte", vérifier chaque élément de configuration par rapport à ce qui est attendu et alerter ou ouvrir un ticket lorsqu'un écart est détecté.
Après de nombreuses recherches, j'ai opté pour Goss , pour "Quick and Easy server validation". Goss tient vraiment sa promesse d'être "rapide et facile", il suffit de télécharger le binaire autonome pour Linux, Windows et macOS, et vous êtes prêt à faire une validation.
La syntaxe est très simple et bien documentée , et vous permet de vérifier une variété d'éléments, tels que les packages installés ou non, les services activés et en cours d'exécution, le contenu des fichiers, etc. Le seul point négatif que j'ai trouvé était la logique inverse de certains des messages d'erreur lorsqu'un élément requis est manquant. Sinon, un outil solide, fortement recommandé.
J'ai fini par construire des couches de règles de validation Goss, une ligne de base que tous les systèmes devraient avoir, la couche de conformité de cybersécurité de base, puis j'ai ajouté des couches en fonction du type de serveurs et de leur fonction, ainsi que des paramètres requis (voir Tuning Linux Parameters ) . Les règles ont été extraites d'un référentiel GitHub "en direct" par chaque serveur, et les erreurs ont été consignées en tant que problèmes dans un autre référentiel GitHub, peut-être que je publierai le code complet un jour.
if [ -f /usr/local/bin/goss ]; then
echo "Goss is installed"
else
echo "Installing Goss"
curl -L https://github.com/aelsabbahy/goss/releases/download/v0.3.5/goss-linux-amd64 -o /usr/local/bin/goss
chmod +rx /usr/local/bin/goss
fi
Tagged with:
Compliance Reliability performance