ansible-lockdown.rhel8_stig
RHEL 8 DISA STIG
Configurer un système basé sur RHEL8 pour qu'il soit conforme au DISA STIG
Ce rôle est basé sur le DISA STIG de RHEL 8 : Version 1, Rel 13 publiée le 24 janvier 2024.
Vous recherchez de l'aide ?
Communauté
Rejoignez notre serveur Discord pour poser des questions, discuter des fonctionnalités ou simplement discuter avec d'autres utilisateurs d'Ansible-Lockdown.
Configurer un système RHEL/Rocky 8 pour qu'il soit conforme au DISA STIG.
Les problèmes non perturbateurs de catégorie I, II et III seront corrigés par défaut.
La correction des problèmes perturbateurs peut être activée en définissant rhel8stig_disruption_high sur true.
Mise à jour
Provenant d'une version précédente.
Comme pour toutes les versions et mises à jour, il est conseillé de tester et d'ajuster les contrôles. Cela contient des réécritures et des modifications de référence ID selon la documentation STIG.
Audit
Cela peut être activé ou désactivé dans le fichier defaults/main.yml avec la variable rhel7cis_run_audit. La valeur est par défaut à false, veuillez vous référer à la wiki pour plus de détails. Le fichier par défaut remplit également les vérifications goss pour vérifier uniquement les contrôles qui ont été activés dans le rôle ansible.
Il s'agit d'un contrôle rapide et très léger (lorsque cela est possible) de la conformité de la configuration et des paramètres en cours d'exécution.
Un moyen d'audit a été développé, utilisant un petit binaire go (12 Mo) appelé goss avec les configurations pertinentes à vérifier. Sans besoin d'infrastructure ou d'autres outils. Cet audit ne vérifie pas seulement si la configuration a le bon réglage, mais vise également à capturer si elle fonctionne avec cette configuration en essayant d'éliminer les faux positifs dans le processus.
Documentation
- Lire la documentation
- Premiers pas
- Personnaliser les rôles
- Configuration par hôte
- Tirer le meilleur parti du rôle
Exigences
- RHEL/Rocky/AlmaLinux/OL 8 - D'autres versions ne sont pas prises en charge.
- D'autres systèmes d'exploitation peuvent être vérifiés en modifiant le skip_os_check sur true à des fins de test.
- Accès pour télécharger ou ajouter le binaire goss et contenu sur le système si vous utilisez les audits. Des options sont disponibles pour savoir comment obtenir le contenu sur le système.
Dépendances
Les packages suivants doivent être installés sur l'hôte de contrôle/où Ansible est exécuté :
- python2-passlib (ou juste passlib, si vous utilisez python3)
- python-lxml
Les packages python(2)-passlib sont nécessaires pour les tâches avec des filtres ou des modules personnalisés. Ceux-ci sont tous requis sur l'hôte contrôleur qui exécute Ansible.
Variables de rôle
Ce rôle est conçu pour que l'utilisateur final n'ait pas besoin de modifier les tâches lui-même. Toute personnalisation doit se faire via le fichier defaults/main.yml ou avec des variables supplémentaires dans le projet, le travail, le flux de travail, etc.
Tags
Il existe de nombreux tags disponibles pour un contrôle plus précis. Chaque contrôle a son propre ensemble de tags indiquant le numéro du contrôle ainsi que les parties du système que ce contrôle adresse.
Voici un exemple de la section des tag d'un contrôle au sein de ce rôle. En utilisant cet exemple, si vous définissez votre exécution pour ignorer tous les contrôles avec le tag ssh, cette tâche sera ignorée. L'inverse peut aussi se produire où vous exécutez uniquement les contrôles étiquetés avec ssh.
tags:
- RHEL-08-010050
- ssh
- dod_logon_banner
Exemple de résumé d'audit
Ceci est basé sur une image vagrant avec des sélections activées, par exemple sans interface graphique ni pare-feu. Remarque : Plus de tests sont effectués pendant l'audit car nous vérifions la configuration et l'état d'exécution.
ok: [rocky8_efi] =>
msg:
- 'Les résultats d'audit avant remédiation sont : Compte : 804, Échoué : 416, Durée : 6.488s.'
- 'Les résultats d'audit après remédiation sont : Compte : 804, Échoué : 28, Durée : 68.687s.'
- Une répartition complète peut être trouvée dans /opt
RAPPORT DE JEU ****************************************************************************************************************
rocky8_efi : ok=482 changed=269 unreachable=0 failed=0 skipped=207 rescued=0 ignored=0
Branches
- devel - Il s'agit de la branche par défaut et de la branche de développement en cours. Les demandes de tirage de la communauté seront intégrées dans cette branche.
- main - Il s'agit de la branche de publication.
- reports - Il s'agit d'une branche protégée pour nos rapports de notation, aucun code ne doit jamais y aller.
- gh_pages - pages github.
- toutes les autres branches - Branches individuelles des membres de la communauté.
Conteneurs - tests
- system_is_container
Ceci est défini sur false par défaut/main.yml. S'il est découvert qu'il s'agit d'un conteneur ou que ansible_connection == docker, il sera converti pour exécuter avec true. Certains contrôles seront ignorés si cela est vrai car ils ne sont pas du tout applicables. D'autres exécutent un sous-ensemble de contrôles trouvés dans vars/is_container.yml basés sur une image fournie par le fournisseur non altérée.
Image fournisseur NON altérée.
- container_vars_file : is_container.yml
Ce fichier vars regroupe les contrôles en tags, donc si le conteneur a plus tard ssh, cela pourrait être réactivé en chargeant un fichier vars alternatif.
Contributions de la communauté
Nous vous encourageons (la communauté) à contribuer à ce rôle. Veuillez lire les règles ci-dessous.
- Votre travail est effectué dans votre propre branche individuelle. Assurez-vous de signer et de signer numériquement tous les commits que vous souhaitez fusionner.
- Toutes les demandes de tirage de la communauté sont intégrées dans la branche de dével.
- Les demandes de tirage dans devel confirmeront que vos commits ont une signature GPG, sont signés, et un test fonctionnel avant d'être approuvés.
- Une fois vos modifications fusionnées et une révision plus détaillée terminée, un membre autorisé fusionnera vos modifications dans la branche principale pour une nouvelle publication.
Test de pipeline
utilise :
- ansible-core 2.12
- collections ansible - tire la dernière version basée sur le fichier des exigences
- exécute l'audit en utilisant la branche de dével
- Il s'agit d'un test automatisé qui se produit sur les demandes de tirage dans devel.
Problèmes connus
Si vous adoptez la règle stig RHEL-08-040134
Cela affectera l'initialisation dans le cloud selon bug 1839899.
Support
Il s'agit avant tout d'un projet communautaire et sera géré en tant que tel.
Si vous êtes intéressé par un support dédié pour une assistance ou des configurations sur mesure
Crédits
Ce dépôt a été réalisé à partir du travail effectué par Sam Doran.
Extras ajoutés
- makefile - cela est là uniquement pour des fins de test et de configuration initiale.
- pre-commit peut être testé et exécuté depuis le répertoire.
pre-commit run
Crédits et remerciements
Un grand merci à la communauté fantastique et à tous ses membres. Cela inclut un énorme merci et des crédits aux auteurs et mainteneurs d'origine.
Josh Springer, Daniel Shepherd, Bas Meijeri, James Cassell, Mike Renfro, DFed, George Nalen, Mark Bolwell.
Apply the DISA RHEL 8 STIG
ansible-galaxy install ansible-lockdown.rhel8_stig