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.


Org Stars Stars Forks followers Twitter URL

Discord Badge

Release Branch Release Tag Release Date

Statut de la pipeline principale

Statut de la pipeline de dével Commits de dével

Problèmes ouverts Problèmes fermés Demandes de tirage

Licence


Vous recherchez de l'aide ?

Lockdown Enterprise

Support Ansible

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

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.

Installer
ansible-galaxy install ansible-lockdown.rhel8_stig
Licence
mit
Téléchargements
1.9k
Propriétaire
Lockdown is a security baseline automation project sponsored by Tyto Athene.