Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
chef-os-hardening — This chef cookbook fournit de nombreuses configurations liées à la sécurité, offrant une protection de base complète. | Kitploit
Outils/GitHubGitHub/dev-sec/chef-os-hardening
Sécurité de l'Infrastructure CloudAudit de ConfigurationDevSecOpsAuthentification
GitHubdev-sec/chef-os-hardening

chef-os-hardening

This chef cookbook fournit de nombreuses configurations liées à la sécurité, offrant une protection de base complète.

Voir le dépôt
4521326il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Site web
Partager

os-hardening (cookbook Chef)

Supermarket Tests

Description

Ce cookbook fournit de nombreuses configurations liées à la sécurité, offrant une protection de base complète.

Il configure :

  • La gestion des paquets, par exemple en n'autorisant que les paquets signés
  • La suppression des paquets présentant des problèmes connus
  • Le module pam et pam_limits
  • La configuration de la suite shadow password
  • Les permissions des chemins système
  • La désactivation des core dumps via des limites logicielles (soft limits)
  • La restriction des connexions root à la console système
  • Les bits SUID
  • Les paramètres du noyau via sysctl

Il ne :

  • Met pas à jour les paquets système
  • Installe pas les correctifs de sécurité

Exigences

  • Chef >= 14.13.11

Plateformes

  • Ubuntu 20.04, 22.04, 24.04, 26.04
  • CentOS Stream 9, 10
  • AlmaLinux 8, 9, 10
  • Rocky Linux 8, 9, 10
  • Oracle Linux 8, 9, 10
  • Debian 13
  • Fedora 43, 44

Attributs

  • ['os-hardening']['components'][COMPONENT_NAME] - permet un contrôle fin des composants à exécuter via la recette par défaut. Voir ci-dessous pour plus de détails
  • ['os-hardening']['desktop']['enable'] = false true s'il s'agit d'un système de bureau, c'est-à-dire Xorg, KDE/GNOME/Unity/etc
  • ['os-hardening']['network']['forwarding'] = false true si ce système nécessite le forwarding de paquets (par ex. routeur), false sinon
  • ['os-hardening']['network']['ipv6']['enable'] = false
  • ['os-hardening']['network']['arp']['restricted'] = true true si vous souhaitez restreindre le comportement d'annonce et de réponse à ARP, false sinon
  • ['os-hardening']['env']['extra_user_paths'] = [] ajoute des chemins supplémentaires à la variable PATH de l'utilisateur (vide par défaut).
  • ['os-hardening']['env']['umask'] = "027"
  • ['os-hardening']['env']['root_path'] = "/" où root est monté
  • ['os-hardening']['auth']['pw_max_age'] = 60 âge maximal du mot de passe
  • ['os-hardening']['auth']['pw_min_age'] = 7 âge minimal du mot de passe (avant de permettre tout autre changement de mot de passe)
  • ['os-hardening']['auth']['pw_warn_age'] = 7 nombre de jours avant l'âge maximal du mot de passe pour avertir d'un changement imminent
  • ['os-hardening']['auth']['uid_min'] = 1000 borne inférieure des UID attribués par useradd
  • ['os-hardening']['auth']['uid_max'] = 60000 borne supérieure des UID attribués par useradd
  • ['os-hardening']['auth']['gid_min'] = 1000 borne inférieure des GID attribués par groupadd
  • ['os-hardening']['auth']['gid_max'] = 60000 borne supérieure des GID attribués par groupadd
  • ['os-hardening']['auth']['retries'] = 5 le nombre maximal de tentatives d'authentification, avant que le compte ne soit verrouillé pendant un certain temps
  • ['os-hardening']['auth']['lockout_time'] = 600 temps en secondes qui doit s'écouler, si le compte a été verrouillé en raison de trop nombreuses tentatives d'authentification échouées
  • ['os-hardening']['auth']['timeout'] = 60 délai d'authentification en secondes, la connexion se terminera si ce temps est dépassé
  • ['os-hardening']['auth']['allow_homeless'] = false true pour autoriser les utilisateurs sans répertoire personnel à se connecter
  • ['os-hardening']['auth']['pam']['passwdqc']['enable'] = true true si vous souhaitez utiliser une vérification de mot de passe forte dans PAM avec passwdqc
  • ['os-hardening']['auth']['pam']['passwdqc']['options'] = "min=disabled,disabled,16,12,8" défini sur toute ligne d'options (sous forme de chaîne) que vous souhaitez transmettre à passwdqc
  • ['os-hardening']['auth']['pam']['passwdqc']['template_cookbook'] = 'os-hardening' défini sur le nom du cookbook à partir duquel le modèle est obtenu pour le fichier /usr/share/pam-configs/passwdqc
  • ['os-hardening']['auth']['pam']['tally2']['template_cookbook'] = 'os-hardening' défini sur le nom du cookbook à partir duquel le modèle est obtenu pour le fichier /usr/share/pam-configs/tally2
  • ['os-hardening']['auth']['pam']['system-auth']['template_cookbook'] = 'os-hardening' défini sur le nom du cookbook à partir duquel le modèle est obtenu pour le fichier /etc/pam.d/system-auth-ac
  • ['os-hardening']['security']['users']['allow'] = [] liste des actions qu'un utilisateur est autorisé à effectuer. Peut contenir : change_user
  • ['os-hardening']['security']['kernel']['enable_module_loading'] = true true si vous souhaitez être autorisé à modifier les modules du noyau une fois le système en cours d'exécution (par ex. modprobe, rmmod)
  • ['os-hardening']['security']['kernel']['disable_filesystems'] = ['cramfs', 'freevxfs', 'jffs2', 'hfs', 'hfsplus', 'squashfs', 'udf', 'vfat'] liste des modules de systèmes de fichiers du noyau, qui sont mis sur liste noire pour le chargement (par ex. ils sont inutilisés et peuvent être désactivés). Définissez ceci sur [] pour éviter complètement cette mise sur liste noire
  • ['os-hardening']['security']['kernel']['enable_sysrq'] = false
  • ['os-hardening']['security']['kernel']['enable_core_dump'] = false
  • ['os-hardening']['security']['suid_sgid']['enforce'] = true true si vous souhaitez réduire les bits SUID/SGID. Il existe déjà une liste d'éléments recherchés et configurés, mais vous pouvez également ajouter les vôtres
  • ['os-hardening']['security']['suid_sgid']['blacklist'] = [] une liste de chemins dont les bits SUID/SGID doivent être supprimés
  • ['os-hardening']['security']['suid_sgid']['whitelist'] = [] une liste de chemins dont les bits SUID/SGID ne doivent pas être modifiés
  • ['os-hardening']['security']['suid_sgid']['remove_from_unknown'] = false true si vous souhaitez supprimer les bits SUID/SGID de tout fichier qui n'est pas explicitement configuré dans une blacklist. Cela fera rechercher à chaque exécution de Chef les bits SUID/SGID non configurés dans la liste noire par défaut et celle de l'utilisateur sur les systèmes de fichiers montés. S'il trouve un bit SUID/SGID, il sera supprimé, sauf si ce fichier figure dans votre whitelist.
  • ['os-hardening']['security']['suid_sgid']['dry_run_on_unknown'] = false comme remove_from_unknown ci-dessus, sauf que les bits SUID/SGID ne sont pas supprimés. Il recherchera toujours les bits SUID/SGID sur les systèmes de fichiers, mais il les affichera uniquement dans votre journal. Cette option n'est recommandée que lorsque vous configurez d'abord remove_from_unknown pour les bits SUID/SGID, afin de pouvoir voir les fichiers modifiés et apporter des ajustements à votre whitelist et votre blacklist.
  • ['os-hardening']['security']['packages']['clean'] = true supprime les paquets présentant des problèmes connus.
  • ['os-hardening']['security']['packages']['list'] = ['xinetd','inetd','ypserv','telnet-server','rsh-server'] liste des paquets à supprimer, par défaut nous supprimons les paquets suivants :
    • xinetd (NSA, Chapitre 3.2.1)
    • inetd (NSA, Chapitre 3.2.1)
    • tftp-server (NSA, Chapitre 3.2.5)
    • ypserv (NSA, Chapitre 3.2.4)
    • telnet-server (NSA, Chapitre 3.2.2)
    • rsh-server (NSA, Chapitre 3.2.3)
  • ['os-hardening']['security']['selinux_mode'] = 'unmanaged' défini sur unmanaged si vous souhaitez laisser la configuration SELinux telle quelle. Défini sur enforcing pour appliquer ou permissive pour un SELinux permissif.

Contrôle des composants inclus

default.rb inclut d'autres composants en fonction des attributs de détection automatique ohai de votre système. Par exemple, n'exécutez pas selinux sur les systèmes non-RHEL. Vous pouvez remplacer ce comportement et forcer l'exécution ou non de composants en définissant des attributs dans node['os-hardening']['components'] au niveau de remplacement. Exemple

root@kitploit:~
# un fichier d'attributs
# n'incluez pas sysctl et auditd
override['os-hardening']['components']['sysctl'] = false
override['os-hardening']['components']['auditd'] = false

# forcez l'inclusion de selinux
override['os-hardening']['components']['selinux'] = true

Dans l'implémentation actuelle, différents composants sont situés dans différentes recettes. Consultez les recettes disponibles ou default.rb pour connaître les noms de composants possibles.

Utilisation

Ajoutez les recettes à la run_list, elle devrait être en dernier :

root@kitploit:~
"recipe[os-hardening]"

Configurez les attributs :

root@kitploit:~
"security" : {
  "kernel" : {
    "enable_module_loading" : true
  }
},

Tests locaux

Tests locaux

Veuillez installer chef-dk, VirtualBox ou VMware Workstation et Vagrant.

Le linting est vérifié avec rubocop et foodcritic :

root@kitploit:~
$ chef exec rake lint
.....

Les tests unitaires/spécifications sont effectués avec chefspec :

root@kitploit:~
$ chef exec rake spec
.....

Les tests d'intégration sont effectués avec test-kitchen et inspec :

root@kitploit:~
$ chef exec rake kitchen
.....
# ou vous pouvez utiliser kitchen directement
$ kitchen test

Tests CI des forks

Vous pouvez activer les tests de votre fork dans Travis CI. Par défaut, vous obtiendrez le linting, les tests de spécifications et les tests d'intégration avec kitchen-dokken.

Les tests d'intégration avec kitchen-dokken ne couvrent pas tout car ils s'exécutent dans l'environnement du conteneur. Les tests d'intégration complets peuvent être exécutés à l'aide de DigitalOcean.

Si vous souhaitez disposer de tests d'intégration complets pour votre fork, vous devrez ajouter les variables d'environnement suivantes dans les paramètres de votre fork :

  • DIGITALOCEAN_ACCESS_TOKEN - jeton d'accès pour DigitalOcean
  • CI_SSH_KEY - partie privée d'une clé ssh, disponible sur DigitalOcean pour vos instances, sous forme encodée en base64 (par ex. cat id_rsa | base64 -w0 ; echo)
  • DIGITALOCEAN_SSH_KEY_IDS - ID dans DigitalOcean de CI_SSH_KEY, voir ceci pour plus d'informations

Contributeurs + Remerciements

  • Dominik Richter arlimus
  • Bernhard Weisshuhn bkw
  • Christoph Hartmann chris-rock
  • Edmund Haselwanter ehaselwanter
  • Patrick Meier atomic111
  • Artem Sidorenko artem-sidorenko

Ce cookbook est principalement basé sur des guides de :

  • Arch Linux wiki, Sysctl hardening
  • Ubuntu Security/Features
  • NSA: Guide to the Secure Configuration of Red Hat Enterprise Linux 5
  • Deutsche Telekom, Group IT Security, Security Requirements (German)

Merci à vous tous !!

Contribution

Voir les directives de contribution.

Licence et auteur

  • Auteur:: Dominik Richter [email protected]
  • Auteur:: Deutsche Telekom AG

Sous licence Apache License, Version 2.0 (la « Licence ») ; vous ne pouvez utiliser ce fichier qu'en conformité avec la Licence. Vous pouvez obtenir une copie de la Licence à l'adresse

root@kitploit:~
http://www.apache.org/licenses/LICENSE-2.0

Sauf si requis par la loi applicable ou convenu par écrit, le logiciel distribué sous la Licence est distribué sur une base « EN L'ÉTAT », SANS GARANTIES OU CONDITIONS D'AUCUNE SORTE, expresses ou implicites. Consultez la Licence pour connaître les autorisations et limitations spécifiques régissant la Licence.

Télécharger l’outil