OpenSCAP (Foreman)
| Fiche express | |
|---|---|
| Domaine | Audit de conformité centralisé |
| Plugin | foreman_openscap + smart proxy
|
| Client | foreman_scap_client
|
| Voir aussi | OpenSCAP · Foreman |
Le plugin foreman_openscap intègre OpenSCAP à Foreman/Katello : il centralise la collecte des rapports de conformité SCAP des hôtes gérés, associe des policies (profil + contenu SSG + planification) aux machines et présente les résultats dans l'interface Foreman. Chaque hôte exécute périodiquement un scan oscap et remonte son rapport ARF au smart proxy, qui le transmet au serveur Foreman.
Terminologie SCAP
ARF Asset Reporting Format - format XML de restitution des résultats XCCDF eXtensible Configuration Checklist Description Format - checklists OVAL Open Vulnerability and Assessment Language - état système CPE Common Platform Enumeration - applicabilité des contrôles CVSS Common Vulnerability Scoring System - criticité d'une vulnérabilité CCE Common Configuration Enumeration - mapping STIG / NIST 800-53 CCI Control Correlation Identifiers - mapping NIST 800-53 / SRG STIG Security Technical Implementation Guide SRG Security Requirements Guide
Installation côté smart proxy
dnf install -y rubygem-smart_proxy_openscap scap-security-guide
# Activer le module dans le smart proxy
cp /etc/foreman-proxy/settings.d/openscap.yml{.example,}
Contenu type de /etc/foreman-proxy/settings.d/openscap.yml :
:enabled: true
# Journal du script de transfert
:openscap_send_log_file: /var/log/foreman-proxy/openscap-send.log
# Répertoire de spool des audits avant transfert vers Foreman
:spooldir: /var/spool/foreman-proxy/openscap
# Cache local des contenus SCAP (évite de les redemander à Foreman)
:contentdir: /var/lib/openscap/content
# Répertoire des rapports ARF
:reportsdir: /usr/share/foreman-proxy/openscap/content
systemctl restart foreman-proxy
Installation côté serveur Foreman
dnf install -y tfm-rubygem-foreman_openscap scap-security-guide openscap-scanner
# Vérifier les data streams SSG disponibles
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml
Renseigner l'URL du serveur pour le smart proxy dans /etc/foreman-proxy/settings.yml :
:foreman_url: https://foreman.exemple.tld
Une policy Foreman associe ensuite un contenu SCAP (par exemple /usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml), un profil et une planification aux hôtes ou groupes d'hôtes concernés.
Client
# Lancer un scan et remonter le rapport (id = identifiant de la policy dans Foreman)
foreman_scap_client <policy_id>
# Forcer l'envoi des rapports en attente sur le smart proxy
smart-proxy-openscap-send
Fichier de configuration client /etc/foreman_scap_client/config.yaml (géré par Puppet) :
:server: 'foreman-proxy.exemple.tld'
:port: 9090
# Authentification mutuelle TLS (certificats du consommateur / subscription-manager)
:ca_file: '/etc/rhsm/ca/katello-server-ca.pem'
:host_certificate: '/etc/pki/consumer/cert.pem'
:host_private_key: '/etc/pki/consumer/key.pem'
# policy (la clé est l'identifiant de la policy dans Foreman)
6:
:profile: 'xccdf_org.ssgproject.content_profile_pci-dss'
:content_path: '/var/lib/openscap/content/ssg-rhel9-ds.xml'
:download_path: '/compliance/policies/6/content'
chown -R foreman-proxy:foreman /var/lib/openscap/content/.Évaluation manuelle avec oscap
# Lister les profils du contenu
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml
# Évaluer un profil et produire un rapport HTML
oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_pci-dss \
--results results.xml --report report.html \
/usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml
Vérifier la validité d'un data stream :
oscap ds sds-validate /usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xml