Table des matières

Introduction

Spacewalk est souvent comparé à Puppet du fait des fonctionnalités et de la philosophie d’industrialisation commune aux deux outils. Puppet reste fondamentalement un outil adapté à la gestion des configurations middleware tandis que Spacewalk assure une couverture bien plus complète des fonctions nécessaires à la maintenance centralisée des couches systèmes basses :

Pour optimiser la consommation de ressources réseaux et système associées à la gestion de parcs étendus et multi-site, Spacewalk dispose d’une architecture distribuée via des nœuds Spacewalk Proxy.

Spacewalk fonctionne sur des clients Fedora, CentOS, Scientific Linux et de façon partielle mais très satisfaisante sur Debian & Solaris.

Développé principalement en Java, Perl & PL/SQL. Spacewalk fonctionnait jusqu’à peu avec en backend une base Oracle. Il est donc courant de le voir implémenté avec une version Oracle XE. Le support de Postgresql est néanmoins effectif et peut être préférée à la base historique.

Architecture technique

Spacewalk Plateforme

Prérequis

Il est important de s’assurer que les ports utilisés par Spacewalk sont bien ouverts vers les cibles associées, en effet, la moitié des bugs liés aux actions de maintenance ont pour origine des problématiques de flux entrant ou sortant de Firewall.

Attention:

Vérifier que SELinux est désactivé.

Repository Spacewalk

Pour utiliser facilement le repository spacewalk, installez le paquet “spacewalk-repo” avec les commandes ci-dessous:

[root@spacewalk ~]# rpm -Uvh https://copr-be.cloud.fedoraproject.org/results/@spacewalkproject/spacewalk-2.8/epel-7-x86_64/00736372-spacewalk-repo/spacewalk-repo-2.8-11.el7.centos.noarch.rpm

Repository EPEL

Spacewalk nécessite une machine virtuelle Java avec la version 1.6.0 ou supérieure.

Le repository EPEL - Extra Packages pour Enterprise Linux contient une version de openjdk qui fonctionne avec Spacewalk. D'autres dépendances peuvent également être installées à partir d'EPEL.

Pour obtenir les paquets d'EPEL, installez ce RPM:

[root@spacewalk ~]# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Installation

Spacewalk utilise un serveur de base de données pour stocker ses données primaires. Il prend en charge PostgreSQL (version 8.4 et ultérieure) ou Oracle RDBMS (version 10g ou supérieure).

Vous pouvez laisser Spacewalk configurer le serveur PostgreSQL sur votre machine sans aucune intervention manuelle.

[root@spacewalk ~]# yum -y install spacewalk-setup-postgresql

A cette étape, il suffit de demander à yum d’installer les paquets nécessaires. Cela va dérouler et installer le jeu de RPMs requis pour que Spacewalk soit exécuté.

[root@spacewalk ~]# yum -y install spacewalk-postgresql

Votre serveur Spacewalk doit avoir un nom de domaine complet (FQDN), tel que 'hostname.domain.com'. Si le programme d'installation remonte un avertissement concernant un nom de domaine incomplet, n'utilisez pas l'indicateur “–skip-fqdn-test” pour ignorer!

La configuration nécessite que le compte de base de données ait un mot de passe.

Attention:

Merci de ne pas utiliser “#” (signe dièse / dièse / hachage) et “@” dans le mot de passe de votre base de données, sinon l'installation échouera.

Important:

Il est important que le nom d’hôte d’un serveur Spacewalk ne contienne aucune lettre majuscule. Un nom d'hôte contenant des lettres majuscules peut entraîner l'échec des communications du proxy Spacewalk (via jabberd).

Une fois le RPM Spacewalk installé, vous devez configurer l'application.

[root@spacewalk ~]# spacewalk-setup
** Database: Setting up database connection for PostgreSQL backend.
Database "rhnschema" does not exist
** Database: Installing the database:
** Database: This is a long process that is logged in:
** Database:   /var/log/rhn/install_db.log
*** Progress: #
** Database: Installation complete.
** Database: Populating database.
*** Progress: ##########################
* Configuring tomcat.
* Setting up users and groups.
** GPG: Initializing GPG and importing key.
* Performing initial configuration.
* Configuring apache SSL virtual host.
Should setup configure apache's default ssl server for you (saves original ssl.conf) [Y]?
* Configuring jabberd.
* Creating SSL certificates.
CA certificate password?
Re-enter CA certificate password?
Cname alias of the machine (comma seperated)? spacewalk
Organization? oowy
Organization Unit [spacewalk.oowy.lan]?
Email Address [administrateur@oowy.fr]?
City? PARIS
State? ESSONNE
Country code (Examples: "US", "JP", "IN", or type "?" to see a list)? FR
** SSL: Generating CA certificate.
** SSL: Deploying CA certificate.
** SSL: Generating server certificate.
** SSL: Storing SSL certificates.
* Deploying configuration files.
* Update configuration in database.
* Setting up Cobbler..
Cobbler requires tftp and xinetd services be turned on for PXE provisioning functionality. Enable these services [Y]?
* Restarting services.
Installation complete.
Visit https://spacewalk.oowy.lan to create the Spacewalk administrator account.

Une fois l'installation terminée, vérifiez l'état du service Spacewalk.

/usr/sbin/spacewalk-service status

Vous pouvez démarrer les services Spacewalk manuellement s'ils ne sont pas démarrés automatiquement.

/usr/sbin/spacewalk-service start

Note:

Spacewalk est composé de plusieurs services. Chacun d'eux a son propre script d'initialisation pour arrêter/démarrer/redémarrer la plateforme.

Si vous voulez gérer tous les services dans l'espace à la fois, utiliser : /usr/sbin/spacewalk-service [stop|start|restart|status].

L’accès à l'interface de “Spacewalk” se fera à travers votre naviguateur.

Rendez-vous sur l'adresse FQDN du serveur, celle-ci vous demandera en premier lieu de créer une organisation ainsi qu'un compte “Administrateur”.

Une fois l'organisation et le compte Administrateur créer, la plateforme est opérationnelle.

Arrivé à cette étape, nous avons à disposition un serveur “Spacewalk” opérationnel.

Administration

Gestion des canaux

Les canaux ne sont rien d'autre qu'une collection de packages logiciels (RPM). Un canal peut contenir des packages d'une distribution spécifique ou des packages pour une application ou une famille d'applications. Les utilisateurs peuvent également définir des canaux.

Tout client peut s'abonner à un canal particulier pour télécharger, mettre à jour, installer des packages. Les canaux sont liés au serveur en amont (un référentiel YUM / DEB normal). Un canal peut être lié à plusieurs référentiels, peut être cloné, synchronisé ou personnalisé.

Il existe deux types de canaux:

Un système ne doit être abonné qu'à un seul canal de base, mais il peut l'être à plusieurs canaux enfants de son canal de base.

Un système souscrit ne peut installer ou mettre à jour que les paquetages disponibles via ses canaux spacewalk.

Note:

Dans l'exemple qui va suivre, nous allons créer un canal de base pour CentOS 7 et y joindre deux canaux enfants pour les packages Updates et Extras.

Soit la configuration qui suit :

  • CentOS 7 base OS (Canal de base)
    • CentOS 7 Updates (Canal enfant)
    • CentOS 7 Extras (Canal enfant)

Gestion des canaux de base

Dans l'interface d'administration, pour créer le canal de base, nous allons nous rendre dans : Channels > Manage Software Channels > Create Channel

Renseigner les champs qui suivent :

Channel Name CentOS 7 base OS
Channel Label centos-7-base-os
Parent Channel None
Architecture x86_64
Channel Summary CentOS 7 Base OS

Attention:

Vous devez être très prudent lorsque vous choisissez une architecture pour le canal de base car un hôte avec une architecture différente ne pourra pas s'abonner à ce cannal.

Une fois les champs renseignés, il suffira de valider en cliquant sur : Create Channel

Gestion des canaux enfants

Dans l'interface d'administration, pour créer le canal de base, nous allons nous rendre dans : Channels > Manage Software Channels > Create Channel

Renseigner les champs qui suivent :

Channel Name CentOS 7 Updates
Channel Label centos-7-updates
Parent Channel CentOS 7 Base OS
Architecture x86_64
Channel Summary CentOS 7 Updates

On fait de même avec le repository Extras

Channel Name CentOS 7 Extras
Channel Label centos-7-extras
Parent Channel CentOS 7 Base OS
Architecture x86_64
Channel Summary CentOS 7 Extras

Note:

Ici on indique le canal parent, soit CentOS 7 Base OS dans notre exemple.

Gestion des repositories

Un repository est un serveur qui contient un ou plusieurs paquets (logiciels ou librairies). Cela a l’avantage de permettre l’installation d’un logiciel très simplement, puisque cette installation peut se faire directement via le réseaux, sans avoir besoin d’un quelconque CD-Rom.

De même, cela est très pratique pour les mises à jour, car il suffit de regarder régulièrement sur le repository les mises à jour effectuées.

Dans l'interface d'administration, pour créer un repository, nous allons nous rendre dans : Channels > Manage Repositories > Create repository

Renseigner les champs qui suivent :

Pour le repository de base de CentOS 7

Repository Label* Centos 7 Base OS x86_64
Repository URL* http://mirror.centos.org/centos/7/os/x86_64/
Repository Type* Yum

Une fois les champs renseignés, il suffira de valider en cliquant sur : Create Repository

On réalise la même action pour les repositories Updates et Extras

Repository Label* Centos 7 Updates x86_64
Repository URL* http://mirror.centos.org/centos/7/updates/x86_64/
Repository Type* Yum
Repository Label* Centos 7 Extras x86_64
Repository URL* http://mirror.centos.org/centos/7/extras/x86_64/
Repository Type* Yum

Si l'on souhaite que spacewalk gère les clients, il faudra aussi les repository suivants :

Repository Label* Epel Repository
Repository URL* https://dl.fedoraproject.org/pub/epel/7/x86_64/
Repository Type* Yum
Repository Label* Spacewalk client 2.9
Repository URL* https://copr-be.cloud.fedoraproject.org/results/%40spacewalkproject/spacewalk-2.9-client/epel-7-x86_64/
Repository Type* Yum

Attachement des repositories

A cette étapes nous disposons donc d'un canal de base (CentOS7 base OS) et d'un repository (Centos 7 Base OS x86_64). Nous allons lier notre repository à notre canal de base.

Pour cela : Channels > Manage Software Channels > Sélectionner votre canal de base (“CentOS-7”) > Repositories > Sélectionner le repository crée précédemment.

Une fois le repository sélectionner, cliquer sur Update Repositories.

Une fois l'attachement fait, nous allons définir une synchronisation automatique de notre repository. Cliquer sur l'onget sync.

Une fois que vous aurez choisi le type de synchronisation que vous souhaitez, cliquer réciproquement sur Schedule pour enregister votre configuration et puis sur Sync Now.

Voilà, la synchronisation de notre repository est en cours.

Note:

Réaliser la même action pour les canaux enfants (Extras et Updates)

Une fois toutes les action réalisées, si nous vérifions l'état des canaux nous devrions avoir la vue suivantes.

On voit donc notre canal de base CentOS 7 ainsi que les deux canaux enfants Updates et Extras, voir quatre avec Epel et spacewalk client.

Gestion des Activation Keys

Vous pouvez utiliser des clés d'activation pour enregistrer, autoriser et souscrire plusieurs systèmes en une seule opération.

Pour créer un clé d'activation, se rendre dans Systems > Activation Keys > Create Key.

Renseigner une description, sélectionner le canal de base et cliquer sur Create Activation Key

Une fois la clé d'activation créer, nous allons activer les canaux enfants.

Se rendre dans Systems > Activation Keys.

Cliquer sur la clé d'activation créer juste avant (CentOS 7) et cliquer sur Childs Channels. Nous voyons les canaux enfants attachés au canal de base CentOS 7. Sélectionner les deux canaux enfants et cliquer sur Update Key

Gestion des ERRATA

Comme vous pouvez le constater, les repository CentOS ne contiennent pas d'Errata. Toutefois, elles peuvent être extraites de la liste de diffusion CentOS-Announce à l'aide d'un script tiers. (Voir annexe ERRATA)

Installez les paquets requis:

# yum -y install perl-Text-Unidecode perl-Frontier-RPC perl-XML-Simple perl-Net-SSLeay perl-Crypt-SSLeay

Créer dans /opt un repertoire qui sera dédié à l'intégration des Errata

# mkdir /opt/errata-import
# cd /opt/errata-import

Télécharger le fichier d'Errata (Communautaire et RedHat) ainsi que le script perl d'intégration à l'adresse.

# wget https://cefs.steve-meier.de/errata.latest.xml
# wget https://www.redhat.com/security/data/oval/com.redhat.rhsa-all.xml
# wget https://github.com/stevemeier/cefs/raw/master/errata-import.pl
...
# chmod 755 errata-import.pl

Lancement du script pour intégrer les Errata dans Spacewalk

# export SPACEWALK_USER="<identitifant administrateur>"
# export SPACEWALK_PASS="<password administrateur>"
...
# ./errata-import.pl --server localhost --errata errata.latest.xml --rhsa-oval com.redhat.rhsa-all.xml --publish

Gestion des clients

Clients CentOS

Installez le repository Spacewalk et EPEL correspondant au version linux.

RHEL 6 / SL 6 / CentOS 6

# rpm -Uvh https://copr-be.cloud.fedoraproject.org/results/@spacewalkproject/spacewalk-2.9-client/epel-6-x86_64/00830558-spacewalk-repo/spacewalk-client-repo-2.9-4.el6.noarch.rpm

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

RHEL 7 / SL 7 / CentOS 7

# rpm -Uvh https://copr-be.cloud.fedoraproject.org/results/@spacewalkproject/spacewalk-2.9-client/epel-7-x86_64/00830558-spacewalk-repo/spacewalk-client-repo-2.9-4.el7.noarch.rpm

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Installer les packages client

yum -y install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin

Installez le certificat de l'autorité de certification Spacewalk sur le serveur pour activer la communication SSL (modifiez la version de rpm dans cette commande si nécessaire)

rpm -Uvh http://spacewalk.oowy.lan/pub/rhn-org-trusted-ssl-cert-1.0-3.noarch.rpm

Enregistrez votre système sur Spacewalk en utilisant la clé d'activation créée précédemment.

rhnreg_ks --serverUrl=https://spacewalk.oowy.lan/XMLRPC --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --activationkey=1-52078330a1e59a38508359d19fcfea6d

Si les repository EPEL et Spacewalk sont fournis par le serveur spacewalk, on pourra purger le contenu de déclarations.

mv /etc/yum.repos.d/*.repo /root/

Clients Oracle Linux

Clients Debian

Activation manuelle de la configuration à distance

Utilisez yum pour installer les packages rhncfg, rhncfg-actions et rhncfg-client:

# yum install rhncfg rhncfg-actions rhncfg-client

Utilisez la commande rhn-actions-control pour configurer les actions à distance autorisées, par exemple:

# rhn-actions-control --enable-all

L'option –report répertorie les actions à distance autorisées par le client.

# rhn-actions-control --report
deploy is enabled
diff is enabled
upload is enabled
mtime_upload is enabled
run is enabled

Déploiement de l'OSAD Client

# wget http://epel.mirrors.ovh.net/epel/RPM-GPG-KEY-EPEL-7
# rpm -import RPM-GPG-KEY-EPEL-7
#
# yum install osad
# vi /etc/sysconfig/rhn/osad.conf
# A mettre avant la variable server_url !
server_name = spacewalk.oowy.lan

osa_ssl_cert = /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
systemctl start osad
systemctl enable osad

Spacewalk & ABRT

ABRT est un outil qui aide les utilisateurs à détecter les anomalies dans les applications et à créer un rapport de bogue contenant toutes les informations nécessaires à un responsable pour le résoudre. Il utilise le système de plugin pour étendre ses fonctionnalités.

L’objectif principal de ce plug-in est d’envoyer le nombre de plantages survenus sur une machine donnée au serveur Spacewalk et d’attirer l’attention de l’administrateur système, qui devrait enquêter sur ces plantages.

Après avoir installé le paquet “spacewalk-abrt”, “rhn-check” commencera automatiquement à rapporter les informations ABRT au serveur.

yum install spacewalk-abrt

Activer le reporting automatique (En tant que root):

abrt-auto-reporting enabled

Pour tester que les crash remonte bien, exécuter la commande suivante (On fait crasher notre VM) :

~]$ echo c > /proc/sysrq-trigger
# sleep 10m &
# kill -SIGSEGV %1

Gestion des configurations

De la même manière qu'un canal logiciel qui contient des packages à installer sur plusieurs systèmes clients, un canal de configuration contient des fichiers permettant de configurer les systèmes clients.

Par exemple, les fichiers peuvent contenir des informations de configuration pour des services, des applications ou des utilisateurs.

Note:

Le système client doit autoriser le serveur Spacewalk à déployer des fichiers. (Voir section : Activation de la configuration à distance)

Pour créer un canal de configuration qui sera composé de nos fichiers, cliquer sur : Configuration > Configuration Channels > Create Config Channel

Renseigner les champs suivants :

Name : Datacenter-1
Label : Datacenter-1
Description : Datacenter 1

Réitéré l'opération : Renseigner les champs suivants :

Name : Datacenter-2
Label : Datacenter-2
Description : Datacenter 2

Une fois notre canal de configuration créer, sélectionner celui-ci et ajouter les fichiers correspondant à ce même environnement. (Ex. on pourrait avoir des configurations DNS/NTP/Etc… selon le site). Ajouter par exemple un fichier chrony.conf selon le datacenter.

Note:

Le check des fichiers est automatique. Celui-ci est géré par une tache qui se lance tout les soirs à 23h.

Pour redéployer automatiquement les fichiers : “rhncfg-client get”

Pour déployer un fichier de configuration sur un système client :

  1. Allez dans Systems et cliquez sur le nom du système.
  2. Sélectionnez l'onglet Configuration, puis l'onglet Deploy Files.
  3. Sur la page Deploy Files, cochez les cases des fichiers que vous souhaitez déployer, puis cliquez sur Deploy Files.
  4. Sur la page Confirmer le déploiement des fichiers, modifiez la planification si nécessaire, puis cliquez sur Schedule Deploy.
  5. Sélectionnez Events, puis sélectionnez l'onglet Pending ou History pour afficher les actions programmées ou terminées. Cliquez sur le nom du résumé pour afficher les détails de l'événement de déploiement.

Effectuer un audit OpenSCAP

Vous pouvez utiliser les outils OpenSCAP pour auditer les clients Spacewalk. Vous pouvez utiliser le Guide de sécurité SCAP, fourni avec Red Hat Linux, Oracle Linux, ou n’importe quel fichier XCCDF (eXtensible Configuration Checklist Format) conforme à OpenSCAP ou OVAL (Open Vulnerability and Assessment Language).

Le paquet “scap-security-guide”, fournit des guides de sécurité SCAP qui ont été mis à jour pour inclure les définitions CPE (Common Platform Enumeration).

Scan en local

Dans la procédure suivante, nous allons utiliser les outils “oscap” de Base.Oscap ne fournit pas de stratégie de sécurité par lui-même - vous devez obtenir les ensembles de règles à partir d'un package séparé.

Sur Fedora, RHEL, CentOS ou Scientific Linux, les stratégies par défaut sont fournies par le package “scap-security-guide” SCAP Security Guide (SSG).

Vous pouvez installer les package à l’aide de la commande suivante:

[root@centos-cli01 ~]# yum install spacewalk-oscap openscap-scanner scap-security-guide
Modules complémentaires chargés : fastestmirror, rhnplugin
This system is receiving updates from RHN Classic or Red Hat Satellite.
Loading mirror speeds from cached hostfile
 * base: centos.crazyfrogs.org
 * epel: fr2.rpmfind.net
 * extras: ftp.pasteur.fr
 * updates: centos.crazyfrogs.org
Résolution des dépendances
--> Lancement de la transaction de test
---> Le paquet spacewalk-oscap.noarch 0:2.9.5-1.el7 sera installé
--> Traitement de la dépendance : python2-spacewalk-oscap = 2.9.5-1.el7 pour le paquet : spacewalk-oscap-2.9.5-1.el7.noarch
...
...
  perl-podlators.noarch 0:2.5.1-3.el7              perl-srpm-macros.noarch 0:1-8.el7                    perl-threads.x86_64 0:1.87-4.el7
  perl-threads-shared.x86_64 0:1.43-6.el7          python2-spacewalk-oscap.noarch 0:2.9.5-1.el7         redhat-rpm-config.noarch 0:9.1.0-87.el7.centos
  rpm-build.x86_64 0:4.11.3-35.el7                 rpmdevtools.noarch 0:8.3-5.el7                       unzip.x86_64 0:6.0-19.el7
  zip.x86_64 0:3.0-11.el7

Terminé !

Les fichiers de règles SSG se trouvent dans le répertoire “/usr/share/xml/scap/ssg/content/”.

Dans cet exemple, nous choisirons une politique pour CentOS Linux 7: ssg-centos7-ds.xml.

Vous pouvez répertorier toutes les stratégies de sécurité disponibles en obtenant une liste des fichiers datastream:

# ls -1 /usr/share/xml/scap/ssg/content/ssg-*-ds.xml
/usr/share/xml/scap/ssg/content/ssg-centos6-ds.xml
/usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml
/usr/share/xml/scap/ssg/content/ssg-firefox-ds.xml
/usr/share/xml/scap/ssg/content/ssg-jre-ds.xml
/usr/share/xml/scap/ssg/content/ssg-rhel6-ds.xml
/usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml

Chaque stratégie de sécurité peut avoir plusieurs profils qui fournissent des stratégies mises en œuvre conformément à des lignes de base de sécurité spécifiques. Chaque profil peut sélectionner différentes règles et utiliser différentes valeurs.

Vous pouvez répertorier ces profils à l'aide de la commande “oscap info” :

#oscap info /usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml
Document type: Source Data Stream
Imported: 2018-11-25T16:46:18

Stream: scap_org.open-scap_datastream_from_xccdf_ssg-rhel7-xccdf-1.2.xml
Generated: (null)
Version: 1.2
Checklists:
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-xccdf-1.2.xml
		Status: draft
		Generated: 2018-11-25
		Resolved: true
		Profiles:
			Title: DISA STIG for Red Hat Enterprise Linux 7
				Id: xccdf_org.ssgproject.content_profile_stig-rhel7-disa
			Title: Red Hat Corporate Profile for Certified Cloud Providers (RH CCP)
				Id: xccdf_org.ssgproject.content_profile_rht-ccp
			Title: Criminal Justice Information Services (CJIS) Security Policy
				Id: xccdf_org.ssgproject.content_profile_cjis
			Title: Health Insurance Portability and Accountability Act (HIPAA)
				Id: xccdf_org.ssgproject.content_profile_hipaa
			Title: PCI-DSS v3 Control Baseline for Red Hat Enterprise Linux 7
				Id: xccdf_org.ssgproject.content_profile_pci-dss
			Title: C2S for Red Hat Enterprise Linux 7
				Id: xccdf_org.ssgproject.content_profile_C2S
			Title: Standard System Security Profile for Red Hat Enterprise Linux 7
				Id: xccdf_org.ssgproject.content_profile_standard
			Title: OSPP - Protection Profile for General Purpose Operating Systems v. 4.2
				Id: xccdf_org.ssgproject.content_profile_ospp42
			Title: United States Government Configuration Baseline
				Id: xccdf_org.ssgproject.content_profile_ospp
			Title: Unclassified Information in Non-federal Information Systems and Organizations (NIST 800-171)
				Id: xccdf_org.ssgproject.content_profile_nist-800-171-cui
		Referenced check files:
			ssg-rhel7-oval.xml
				system: http://oval.mitre.org/XMLSchema/oval-definitions-5
			ssg-rhel7-ocil.xml
				system: http://scap.nist.gov/schema/ocil/2
			https://www.redhat.com/security/data/oval/com.redhat.rhsa-RHEL7.xml.bz2
				system: http://oval.mitre.org/XMLSchema/oval-definitions-5
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-pcidss-xccdf-1.2.xml
		Status: draft
		Generated: 2018-11-25
		Resolved: true
		Profiles:
			Title: PCI-DSS v3 Control Baseline for Red Hat Enterprise Linux 7
				Id: xccdf_org.ssgproject.content_profile_pci-dss_centric
		Referenced check files:
			ssg-rhel7-oval.xml
				system: http://oval.mitre.org/XMLSchema/oval-definitions-5
			ssg-rhel7-ocil.xml
				system: http://scap.nist.gov/schema/ocil/2
			https://www.redhat.com/security/data/oval/com.redhat.rhsa-RHEL7.xml.bz2
				system: http://oval.mitre.org/XMLSchema/oval-definitions-5
Checks:
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-oval.xml
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-ocil.xml
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-cpe-oval.xml
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-oval.xml000
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-ocil.xml000
Dictionaries:
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-cpe-dictionary.xml

“Standard System Security” est un exemple de profil: xccdf_org.ssgproject.content_profile_standard.

Maintenant que nous avons déterminé la politique de sécurité et le profil que nous voulons utiliser, utilisons oscap pour les évaluer.

Lancer la commande suivante :

# oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_standard \
--results-arf arf.xml \
--report report.html \
/usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml

Les options peuvent être décomposées comme suit:

Le processus d'évaluation prend généralement quelques minutes, en fonction du nombre de règles sélectionnées. Oscap vous fournira également une vue d'ensemble des résultats une fois qu'il est terminé. Vous trouverez des rapports enregistrés et disponibles pour révision dans votre répertoire de travail actuel.

Scan depuis spacewalk

Kickstart

Qu'est-ce qu'une installation kickstart ?

De nombreux administrateurs système préféreront utiliser une méthode d'installation automatisée afin d'installer Linux sur leurs machines. Pour répondre à ce besoin, Red Hat a créé la méthode d'installation Kickstart. En utilisant Kickstart, un administrateur système peut créer un fichier contenant les réponses à toutes les questions qui sont normalement posées durant une installation ordinaire.

Les fichiers Kickstart peuvent être conservés sur un simple système serveur et lus par les ordinateurs durant l'installation. La méthode d'installation Kickstart est si puissante que, souvent, un simple fichier Kickstart permet d'installer Red Hat Enterprise Linux et dérivés sur plusieurs ordinateurs, ce qui en fait l'outil idéal pour les administrateurs système et de réseau.

Kickstart vous permet d'automatiser la plupart des tâches d'installation de Linux.

Fichier kickstart

Le fichier kickstart est un simple fichier texte contenant une liste d'éléments dont chacun est identifié par un mot-clé. Vous pouvez le créer en utilisant l'application Configuration de Kickstart ; vous pouvez également le créer de toutes pièces. Le programme d'installation de Red Hat Enterprise Linux crée également un exemple de fichier kickstart à partir des options sélectionnées lors de l'installation. Ce dernier est enregistré dans le fichier /root/anaconda-ks.cfg.

Vous devriez pouvoir le modifier à l'aide de n'importe quel éditeur ou traitement de texte acceptant l'enregistrement des fichiers au format texte ASCII.

Pour commencer, examinons quelques règles de base qu'il convient de garder à l'esprit lors de la création de votre fichier kickstart :

Si d'autres éléments sont spécifiés pour une mise à jour, ces éléments sont ignorés (ceci inclut la sélection de paquetages).

Implémentation de kickstart

Nous allons voir les deux manières de provisionner un kickstart sur la plateforme spacewalk.

Note:

Avant de commencer, assurer vous que l'arborescence de kickstart est disponible sur le serveur. Si celle-ci n'a jamais été créé, il suffira dans l'onglets “sync” du canal de base de cocher : “Créer une arborescence kickstart” et de relancer une synchro.

Vérifier que la distribution existe : Systems > Kckstart > Distributions

Mode installeur

Dans Systems > Kckstart > Profiles et cliquer sur “Create Kickstart Profile”

Mode snippets

Dans Systems > Kickstart > Kickstart Snippets > Create Snippet

Renseigner le nom du snippets dans “Snippet name = Centos7”

Renseigner le contenu de votre kickstart dans le contenu du champs : Kickstart Snippet Contents

Exemple pour un kickstart minimum

#  Author: Team oowy <contacts@oowy.fr>
#   Desc.: Simple kickstart file for automated minimal installation
#      OS: CentOS 7 Minimal (core)
# Version: 1.0

# Install from an installation tree on a remote server - HTTPS.
#           <SPACEWALK_SERVER>    : IP or FQDN spacewalk server
#           <YOUR_DISTRIBUTION>   : Define spacewalk distribution
url --url="https://192.168.1.50/ks/dist/org/1/Centos_7_Base_OS_x86_64" --noverifyssl

# Turning on text-mode installation (little quicker than GUI)
text

# Setting up authentication and keyboard
auth --enableshadow --passalgo=sha512
keyboard fr-latin9

# Using only primary disk, ignoring others
ignoredisk --only-use=sda

# Setting up language to English
lang en-US.UTF-8

# Setting up network interface to DHCP - If you want to enable DHCP option, uncomment line below
# network --bootproto=dhcp --ipv6=auto --hostname=centos-ks.local --activate

# Root password (centos)
rootpw $1$0/bVBZHe$nzoSkVVpuMvYE0gg95Le/0 --iscrypted

# Setting up firewall and enabling SSH for remote management
firewall --enabled --service=ssh

# Setting timezone
timezone Europe/Paris --isUtc

# Setting up Security-Enhanced Linux into enforcing
selinux --permissive

# Setting up MBR
bootloader --location=mbr --append=" crashkernel=auto audit=1"
zerombr

# Setting up Logical Volume Manager and autopartitioning
clearpart --all --initlabel
#autopart
part /boot --size=512 --asprimary
part pv.1 --fstype="lvmpv" --size=2 --ondisk=sda --grow
volgroup vgroot pv.1
logvol swap --vgname=vgroot --fstype=swap --size=1000 --name=swap
logvol / --vgname=vgroot --size=5120 --name=root
logvol /var --vgname=vgroot --size=2048 --name=var
logvol /tmp --vgname=vgroot --size=1024 --name=tmp
logvol /home --vgname=vgroot --size=2048 --name=home

# Eject cdrom and reboot
reboot --eject

%packages
@Core
chrony
%end

Une fois le snippets crée, nous allons créer un profile : Systems > Kickstart > Profiles > Upload Kickstart File

Renseigner le champs Label avec le nom : centos7

Sélectionner l'arborescence kickstart : Centos_7_Base_OS_x86_64 (à adapter selon votre config)

Dans le champs File Contents, renseigner le nom du snippets précédemment crée : “$SNIPPET('spacewalk/1/centos7-min')”

Finir par valider la configuration en cliquant sur Update.

Pour valider notre kickstart, il suffira de démarrer une VM sur le boot iso de notre distribution.

Une fois sur l'installeur,

noverifyssl ip=<NETWORK_IP> netmask=<NETMASK_IP> gateway=<GATEWAY_IP> ks=https://<SPACEWALK_SERVER>/ks/cfg/org/1/label/<PROFILE_SPACEWALK>

Si tout est OK, l'installation de notre distribution commencera avec tout les paramètres précédemment cité.

Hardening et Tuning

Nous allons dans ce chapitre optimiser la configuration et le hardening de la plateforme spacewalk à travers Apache/Tomcat.

Apache

Désactiver tous les protocoles SSL excepté TLSv1.2:

cat > /etc/httpd/conf.d/zz-ssl-strong.conf <<EOF
SSLProtocol +TLSv1.2
SSLCipherSuite "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:HIGH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS"
SSLHonorCipherOrder on
EOF

Ajustement des timeouts:

sed -i 's/ProxyTimeout 210/ProxyTimeout 300/' /etc/httpd/conf.d/zz-spacewalk-www.conf
cat > /etc/httpd/conf.d/zz-timeouts.conf <<EOF
Timeout 600
ProxyTimeout 600
MaxKeepAliveRequests 300
KeepAlive On
KeepAliveTimeout 30
EOF

Ajustement du Module Multi-Processing (MPM):

cat >> /etc/httpd/conf.modules.d/00-mpm.conf <<EOF
StartServers            8
MinSpareServers         6
MaxSpareServers         32
ServerLimit             512
MaxClients              512
MaxRequestsPerChild     4000
EOF

Tomcat

Allouer plus de RAM:

# sed -i 's/wrapper.java.maxmemory=1024/wrapper.java.maxmemory=4096/' /usr/share/rhn/config-defaults/rhn_taskomatic_daemon.conf
# sed -i 's/-Xmx256m/-Xmx1024m/' /etc/sysconfig/tomcat

IPv6 (optional)

Si vous n'avez pas désactivé IPv6 avant d'installer Spacewalk, exécutez les commandes suivantes pour le faire maintenant :

echo "net.ipv6.conf.all.disable_ipv6 = 1" > /etc/sysctl.d/noipv6.conf
sysctl -p /etc/sysctl.d/noipv6.conf
sed -i 's#::1#127.0.0.1#' /etc/jabberd/c2s.xml
sed -i 's#::1#127.0.0.1#' /etc/jabberd/s2s.xml
sed -i 's#::1#127.0.0.1#' /etc/jabberd/sm.xml
sed -i 's#::#0.0.0.0#' /etc/jabberd/c2s.xml
sed -i 's#::#0.0.0.0#' /etc/jabberd/s2s.xml
sed -i 's#::#0.0.0.0#' /etc/jabberd/router.xml

Redémarrer Spacewalk:

[root@spacewalk ~]# spacewalk-service restart

Upgrade de la plateforme

Nous allons observer à travers les différentes étapes suivantes, la mise à jour de la plateforme “Spacewalk” d'une release 2.8 vers une release 2.9.

Tout d'abord, nous allons rechercher tous les packages potentiellement verrouillés par la version actuelle. Si certains packages remontent, supprimez-les.

Par exemple:

[root@spacewalk ~]# yum versionlock list
[root@spacewalk ~]# yum versionlock delete cglib c3p0

L'argument “versionlock” nécessite au préalable l'installation du package “yum-plugin-versionlock”, si vous obtenez le message d'erreur suivant : No such command: versionlock , c'est que ce package n'est tout simplement pas installé.

Vérification des repositories

Vérifier que les repository suivants sont bien disponibles pour CentOS :

# yum repolist

Mise à jour du serveur

Avant d'effectuer la mise à jour de “Spacewalk”, nous allons lancer une mise à jour globale de la plateforme avec les repository déjà disponibles.

# yum upgrade

Mise à jour du repository Spacewalk

Maintenant que notre système est à jour, que les repositories sont bien conforme à l'attente de la plateforme, nous allons mettre à jour le repository Spacewalk.

Mise à jour du repository de la release 2.8 à la release 2.9

rpm -Uvh https://copr-be.cloud.fedoraproject.org/results/@spacewalkproject/spacewalk-2.9/epel-7-x86_64/00830557-spacewalk-repo/spacewalk-repo-2.9-4.el7.noarch.rpm

Nettoyage du cache:

yum clean all

Rechargement des repositories:

yum repolist

Mise à jour de Spacewalk

Nous mettons de nouveau à jour la distribution complète avec le repository spacewalk en 2.9.

[root@spacewalk ~]# yum upgrade

Une fois les packages déployés sur le système, il faudra s'assurer que les services Spacewalk sont arrêtés pour continuer:

[root@spacewalk ~]# /usr/sbin/spacewalk-service stop
Shutting down spacewalk services...
Stopping RHN Taskomatic...
Stopped RHN Taskomatic.
Stopping cobbler daemon:                                   [  OK  ]
Stopping rhn-search...
Stopped rhn-search.
Shutting down osa-dispatcher:                              [  OK  ]
Stopping httpd:                                            [  OK  ]
Stopping tomcat6:                                          [  OK  ]
Terminating jabberd processes ...
Stopping s2s:                                              [  OK  ]
Stopping c2s:                                              [  OK  ]
Stopping sm:                                               [  OK  ]
Stopping router:                                           [  OK  ]
Done.

Verifions maintenant que les services sont bien arrêtés.

[root@spacewalk ~]# /usr/sbin/spacewalk-service status

Sur un système pris en charge par “systemd”, recharger la configuration du gestionnaire systemd:

[root@spacewalk ~]# systemctl daemon-reload

Démarrage de la base de donnée “postgresql” uniquement

[root@spacewalk ~]# systemctl start postgresql

Vérification de la base de donnée UP and Running.

[root@spacewalk ~]# systemctl status postgresql
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since dim. 2019-02-10 00:03:24 CET; 6s ago
  Process: 19285 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS)
  Process: 19279 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 19288 (postgres)
   CGroup: /system.slice/postgresql.service
           ├─19288 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
           ├─19289 postgres: logger process
           ├─19291 postgres: checkpointer process
           ├─19292 postgres: writer process
           ├─19293 postgres: wal writer process
           ├─19294 postgres: autovacuum launcher process
           └─19295 postgres: stats collector process

févr. 10 00:03:23 spacewalk.oowy.lan systemd[1]: Starting PostgreSQL database server...
févr. 10 00:03:24 spacewalk.oowy.lan systemd[1]: Started PostgreSQL database server.

Important:

Attention, vérifier que tous les services SPACEWALK sont bien arrêtés excepté la base de donnée Postgresql !

[root@spacewalk ~]# /usr/bin/spacewalk-schema-upgrade
Please make sure all Spacewalk services apart from database are stopped.
Schema upgrade: [spacewalk-schema-2.8.25-1.el7] -> [spacewalk-schema-2.9.11-1.el7]
Searching for upgrade path: [spacewalk-schema-2.8.25-1] -> [spacewalk-schema-2.9.11-1]
Searching for upgrade path: [spacewalk-schema-2.8.25] -> [spacewalk-schema-2.9.11]
Searching for upgrade path: [spacewalk-schema-2.8] -> [spacewalk-schema-2.9]
The path: [spacewalk-schema-2.8] -> [spacewalk-schema-2.9]
Planning to run spacewalk-sql with [/var/log/spacewalk/schema-upgrade/20190210-000345-script.sql]

Please make sure you have a valid backup of your database before continuing.

Hit Enter to continue or Ctrl+C to interrupt:
Executing spacewalk-sql, the log is in [/var/log/spacewalk/schema-upgrade/20190210-000345-to-spacewalk-schema-2.9.log].
The database schema was upgraded to version [spacewalk-schema-2.9.11-1.el7].

Mise à jour de la plateforme.

[root@spacewalk ~]# spacewalk-setup --upgrade
** Database: Setting up database connection for PostgreSQL backend.
** Database: Embedded database installation SKIPPED.
** Database: Populating database.
** Database: Skipping database population.
* Configuring tomcat.
* Setting up users and groups.
** GPG: Initializing GPG and importing key.
* Performing initial configuration.
* Configuring apache SSL virtual host.
Should setup configure apache's default ssl server for you (saves original ssl.conf) [Y]?
* Configuring jabberd.
* Creating SSL certificates.
** Skipping SSL certificate generation.
* Deploying configuration files.
* Update configuration in database.
* Setting up Cobbler..
Cobbler requires tftp and xinetd services be turned on for PXE provisioning functionality. Enable these services [Y]?
This portion of the Spacewalk upgrade process has successfully completed.

Redemarrage de tous les services Spacewalk:

[root@spacewalk ~]# /usr/sbin/spacewalk-service start

Voilà, nous venons de mettre à jour notre plateforme spacewalk de la version 2.8 à 2.9

Troubleshooting

Problème de démarrage de osa-dispatcher

2019/02/09 23:50:18 +02:00 18279 0.0.0.0: osad/jabber_lib.setup_connection('Connected to jabber server', 'spacewalk.oowy.lan')
2019/02/09 23:50:18 +02:00 18279 0.0.0.0: osad/jabber_lib.register('ERROR', 'Invalid password')

Résolution

service jabberd stop
service osa-dispatcher stop
rm -f /var/lib/jabberd/db/*
service jabberd start 
sleep 10
service osa-dispatcher start

Problème de timeout de osa-dispatcher (/var/log/rhn/osa-dispatcher.log):

2019/02/19 20:53:17 +02:00 5041 0.0.0.0: osad/jabber_lib.main('ERROR', 'Error caught:')
2019/02/19 20:53:17 +02:00 5041 0.0.0.0: osad/jabber_lib.main('ERROR', 'Traceback (most recent call last):\n  File "/usr/lib/python2.7/site-packages/osad/jabber_lib.py", line 126, in main\n    self.process_forever(c)\n  File "/usr/lib/python2.7/site-packages/osad/jabber_lib.py", line 187, in process_forever\n    self.process_once(client)\n  File "/usr/lib/python2.7/site-packages/osad/osa_dispatcher.py", line 182, in process_once\n    client.retrieve_roster()\n  File "/usr/lib/python2.7/site-packages/osad/jabber_lib.py", line 757, in retrieve_roster\n    stanza = self.get_one_stanza()\n  File "/usr/lib/python2.7/site-packages/osad/jabber_lib.py", line 829, in get_one_stanza\n    self.process(timeout=tm)\n  File "/usr/lib/python2.7/site-packages/osad/jabber_lib.py", line 1100, in process\n    raise_with_tb(SSLError("OpenSSL error; will retry", str(e)), sys.exc_info()[2])\n  File "/usr/lib/python2.7/site-packages/osad/jabber_lib.py", line 1095, in process\n    data = self._read(self.BLOCK_SIZE)\nSSLError: (\'OpenSSL error; will retry\', "(110, \'Connection timed out\')")\n')

Résolution:

sed -i 's/<interval>.*/<interval>120<\/interval>/' /etc/jabberd/*.xml*
sed -i 's/<keepalive>.*/<keepalive>120<\/keepalive>/' /etc/jabberd/*.xml*
sed -i 's/<idle>.*/<idle>200<\/idle>/' /etc/jabberd/*.xml*

spacewalk-service restart

Problème errcode=500

2019/02/23 01:45:59 +02:00 80974 0.0.0.0: osad/jabber_lib.__init__
2019/02/23 01:46:53 +02:00 80974 0.0.0.0: osad/jabber_lib.setup_connection('Connected to jabber server', 'spacewalk.momo.lan')
2019/02/23 01:46:53 +02:00 80974 0.0.0.0: osad/jabber_lib.main('ERROR', 'Error caught:')
2019/02/23 01:46:53 +02:00 80974 0.0.0.0: osad/jabber_lib.main('ERROR', 'Traceback (most recent call last):\n  File "/usr/lib/python2.7/site-packages/osad/jabber_lib.py", line 124, in main\n    c = self.setup_connection(no_fork=no_fork)\n  File "/usr/lib/python2.7/site-packages/osad/jabber_lib.py", line 302, in setup_connection\n    resource=self._resource)\n  File "/usr/lib/python2.7/site-packages/osad/dispatcher_client.py", line 36, in start\n    self.auth(username, password, resource)\n  File "/usr/lib/python2.7/site-packages/osad/jabber_lib.py", line 895, in auth\n    self.register(username, password)\n  File "/usr/lib/python2.7/site-packages/osad/jabber_lib.py", line 1141, in register\n    self.sendRegInfo()\n  File "/usr/lib/python2.7/site-packages/jabber/jabber.py", line 645, in sendRegInfo\n    return self.SendAndWaitForResponse(reg_iq)\n  File "/usr/lib/python2.7/site-packages/jabber/jabber.py", line 402, in SendAndWaitForResponse\n    return self.waitForResponse(ID,timeout)\n  File "/usr/lib/python2.7/site-packages/osad/jabber_lib.py", line 1211, in waitForResponse\n    raise JabberQualifiedError(self.lastErrCode, self.lastErr)\nJabberQualifiedError: <JabberQualifiedError instance at 140648711620960; errcode=500; err=>\n')

Résolution

https://bugzilla.redhat.com/show_bug.cgi?id=1480697

# sqlite3 /var/lib/jabberd/db/sqlite.db
sqlite> .tables
sqlite> .read /usr/share/jabberd/db-setup.sqlite
sqlite> .tables
active                   privacy-items            roster-items           
authreg                  private                  status                 
logout                   published-roster         vacation-settings      
motd-message             published-roster-groups  vcard                  
motd-times               queue                    verify                 
privacy-default          roster-groups          
sqlite> <ctrl-d>
# spacewalk-service restart

Problème lors du lancement du binaire abrtd

https://access.redhat.com/solutions/3294471

[root@centos-cli01 ~]# abrt-cli ls
Impossible de se connecter au DBUS système : Erreur lors de l’appel de StartServiceByName pour org.freedesktop.problems : GDBus.Error:org.freedesktop.DBus.Error.Spawn.ExecFailed: Failed to execute program /lib64/dbus-1/dbus-daemon-launch-helper: Success

Il faudra réinstaller le package dbus

# yum reinstall dbus
# reboot

La synchronisation d'un repo se lance mais ne s'execute pas réellement , le fichier est bien crée dans le répertoire /var/log/rhn/reposync/ et affiche un crash du process.

00:34:19 ======================================
00:34:19 | Channel: epel_centos7_x86_64
00:34:19 ======================================
00:34:19 Sync of channel started.
Traceback (most recent call last):
  File "/usr/bin/spacewalk-repo-sync", line 264, in <module>
    sys.exit(abs(main() or 0))
  File "/usr/bin/spacewalk-repo-sync", line 244, in main
    force_all_errata=options.force_all_errata, show_packages_only=options.show_packages)
  File "/usr/lib/python2.7/site-packages/spacewalk/satellite_tools/reposync.py", line 398, in __init__
    self.checksum_cache = rhnCache.get(checksum_cache_filename)
  File "/usr/lib/python2.7/site-packages/spacewalk/common/rhnCache.py", line 76, in get
    return cache.get(name, modified)
  File "/usr/lib/python2.7/site-packages/spacewalk/common/rhnCache.py", line 403, in get
    return self.cache.get(name, modified)
  File "/usr/lib/python2.7/site-packages/spacewalk/common/rhnCache.py", line 374, in get
    return cPickle.loads(pickled)
EOFError

Résolution:

Il faut supprimer le cache présent dans le repertoire suivant:

rm -rf /var/cache/rhn/reposync/*

Cette erreur est due à une synchro ayant précedemment crashé.

Problème d'accès au scan Openscap

2019-03-07 20:19:41,167 [ajp-bio-127.0.0.1-8009-exec-12] ERROR com.redhat.rhn.frontend.servlets.SessionFilter - Error during transaction. Rolling back
    javax.el.ELException: Error reading 'diffIcon' on type com.redhat.rhn.frontend.dto.XccdfTestResultDto
        at javax.el.BeanELResolver.getValue(BeanELResolver.java:110)
        at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104)
        at org.apache.el.parser.AstValue.getValue(AstValue.java:184)
        at org.apache.el.parser.AstEqual.getValue(AstEqual.java:37)
        at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
        at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:950)
        at org.apache.jsp.WEB_002dINF.pages.systems.details.audit.listscap_jsp._jspx_meth_c_005fwhen_005f6(Unknown Source)
        at org.apache.jsp.WEB_002dINF.pages.systems.details.audit.listscap_jsp._jspx_meth_c_005fchoose_005f5(Unknown Source)
        at org.apache.jsp.WEB_002dINF.pages.systems.details.audit.listscap_jsp._jspx_meth_c_005fwhen_005f5(Unknown Source)
        at org.apache.jsp.WEB_002dINF.pages.systems.details.audit.listscap_jsp._jspx_meth_c_005fchoose_005f4(Unknown Source)
        at org.apache.jsp.WEB_002dINF.pages.systems.details.audit.listscap_jsp._jspx_meth_rl_005fcolumn_005f1(Unknown Source)
        at org.apache.jsp.WEB_002dINF.pages.systems.details.audit.listscap_jsp._jspx_meth_rl_005flist_005f0(Unknown Source)
        at org.apache.jsp.WEB_002dINF.pages.systems.details.audit.listscap_jsp._jspx_meth_rl_005flistset_005f0(Unknown Source)
        at org.apache.jsp.WEB_002dINF.pages.systems.details.audit.listscap_jsp._jspService(Unknown Source)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

Résolution On force en lançant directement l'URL

https://192.168.1.50/rhn/systems/details/audit/XccdfDeleteConfirm.do?sid=<ID_Serveur>&xid=<Numéro id scan>

Annexe

Client Debian

Pour attacher un client Debian, il sera nécessaire d'avoir le repository de base. Les autres repository sont données à titre d'informations.

Debian Base

Repository Label* Debian 9 Base OS (Stretch)
Repository URL* http://ftp.fr.debian.org/debian/dists/stretch/main/binary-amd64/
Repository Type* Deb
Repository Label* Debian 9 Contrib (Stretch)
Repository URL* http://ftp.fr.debian.org/debian/dists/stretch/contrib/binary-amd64/
Repository Type* Deb
Repository Label* Debian 9 Non-free (Stretch)
Repository URL* http://ftp.fr.debian.org/debian/dists/stretch/non-free/binary-amd64/
Repository Type* Deb

Debian Updates

Attention:

Les repos “Stretch-updates” proposent des mises à jour de paquets non disponible au moment de la release mineure (9.x) et susceptible d'être déplacer lors de la release mineure à venir.

Repository Label* Debian 9 Base OS (Stretch-updates)
Repository URL* http://ftp.fr.debian.org/debian/dists/stretch-updates/main/binary-amd64/
Repository Type* Deb
Repository Label* Debian 9 Contrib (Stretch-updates)
Repository URL* http://ftp.fr.debian.org/debian/dists/stretch-updates/contrib/binary-amd64/
Repository Type* Deb
Repository Label* Debian 9 Non-free (Stretch-updates)
Repository URL* http://ftp.fr.debian.org/debian/dists/stretch-updates/non-free/binary-amd64/
Repository Type* Deb

Debian Security-updates

Repository Label* Debian 9 Base OS (Security-updates)
Repository URL* http://security.debian.org/debian-security/dists/stretch/updates/main/binary-amd64/
Repository Type* Deb
Repository Label* Debian 9 Contrib (Security-updates)
Repository URL* http://security.debian.org/debian-security/dists/stretch/updates/contrib/binary-amd64/
Repository Type* Deb
Repository Label* Debian 9 Non-free (Security-updates)
Repository URL* http://security.debian.org/debian-security/dists/stretch/updates/non-free/binary-amd64/
Repository Type* Deb

Attachement du client

Les packages nécessaires pour l'attachement d'un client Debian sont déjà disponible dans le repository “main”.

Manuelle avec repo ENFANTS public

Mettez à jour la liste des packages de vos dépôts:

apt-get update

Installez les packages:

debian-1:~# apt-get install apt-transport-spacewalk rhnsd
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  dirmngr gir1.2-glib-2.0 gnupg gnupg-agent libdbus-glib-1-2 libgirepository-1.0-1 libglib2.0-0 libglib2.0-data libgudev-1.0-0 libnl-3-200 libnl-route-3-200
  python-apt python-cffi-backend python-cryptography python-dbus python-dmidecode python-enum34 python-ethtool python-gi python-gobject python-gobject-2
  python-gudev python-idna python-ipaddress python-libxml2 python-newt python-openssl python-pkg-resources python-pyasn1 python-rhn python-setuptools
  python-six rhn-client-tools shared-mime-info xdg-user-dirs
Suggested packages:
  dbus-user-session pinentry-gnome3 tor parcimonie xloadimage scdaemon python-apt-dbg python-apt-doc python-cryptography-doc python-cryptography-vectors
  python-dbus-dbg python-dbus-doc python-enum34-doc python-gi-cairo python-gobject-2-dbg python-openssl-doc python-openssl-dbg doc-base python-setuptools-doc
  python-gnome2 python-gtk2 python-glade2
Recommended packages:
  gnupg-l10n apt-spacewalk
The following NEW packages will be installed:
  apt-transport-spacewalk dirmngr gir1.2-glib-2.0 libdbus-glib-1-2 libgirepository-1.0-1 libglib2.0-0 libglib2.0-data libgudev-1.0-0 libnl-3-200
  libnl-route-3-200 python-apt python-cffi-backend python-cryptography python-dbus python-dmidecode python-enum34 python-ethtool python-gi python-gobject
  python-gobject-2 python-gudev python-idna python-ipaddress python-libxml2 python-newt python-openssl python-pkg-resources python-pyasn1 python-rhn
  python-setuptools python-six rhn-client-tools rhnsd shared-mime-info xdg-user-dirs
The following packages will be upgraded:
  gnupg gnupg-agent
2 upgraded, 35 newly installed, 0 to remove and 22 not upgraded.
Need to get 12.2 MB of archives.
After this operation, 36.0 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ftp.fr.debian.org/debian stretch/main amd64 gnupg amd64 2.1.18-8~deb9u4 [1,128 kB]
Get:2 http://ftp.fr.debian.org/debian stretch/main amd64 gnupg-agent amd64 2.1.18-8~deb9u4 [554 kB]
...
...
...
Setting up python-gobject (3.22.0-2) ...
Setting up python-gudev (147.2-3) ...
Setting up rhn-client-tools (2.3.5-1) ...
Setting up rhnsd (5.0.4-3+b1) ...
Setting up apt-transport-spacewalk (1.0.6-4.1) ...
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Processing triggers for systemd (232-25+deb9u8) ...
debian-1:~#

Puis enregistrez-vous sur votre serveur Spacewalk en utilisant rhnreg_ks et la clé d'activation:

debian-1:~# wget http://spacewalk.oowy.lan/pub/RHN-ORG-TRUSTED-SSL-CERT -O /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
--2019-02-19 20:51:56--  http://spacewalk.oowy.lan/pub/RHN-ORG-TRUSTED-SSL-CERT
Resolving spacewalk.oowy.lan (spacewalk.oowy.lan)... 192.168.1.100
Connecting to spacewalk.oowy.lan (spacewalk.oowy.lan)|192.168.1.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5253 (5.1K)
Saving to: ‘/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT’

/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT 100%[===============================================================================>]   5.13K  --.-KB/s    in 0s      

2019-02-19 20:51:56 (521 MB/s) - ‘/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT’ saved [5253/5253]

debian-1:~# rhnreg_ks --serverUrl=https://spacewalk.oowy.lan/XMLRPC --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --activationkey=1-4197740261e3d59e822fe2d963177bdb
Warning: unable to enable rhnsd with chkconfig
Apt-Spacewalk: Updating sources.list
Selecting previously unselected package htop.
(Reading database ... 52490 files and directories currently installed.)
Preparing to unpack .../htop_2.0.2-1_amd64.deb ...
Unpacking htop (2.0.2-1) ...
Processing triggers for mime-support (3.60) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up htop (2.0.2-1) ...
Apt-Spacewalk: Updating package profile
debian-1:~# 

Commentez les entrées de vos précédents dépôts se trouvant dans le fichier /etc/apt/sources.list, afin d'éviter d'avoir les dépôts distants et ceux de votre spacewalk de configurés.

Automatique avec repo ENFANTS Spacewalk

Votre machine Debian est désormais attaché à votre spacewalk.

Tableaux repository

URL

https://spacewalkproject.github.io/

https://github.com/spacewalkproject/spacewalk/wiki

https://github.com/spacewalkproject/spacewalk/wiki/RegisteringClients

https://github.com/spacewalkproject/spacewalk/wiki/HowToUseCrashReporting

https://abrt.readthedocs.io/en/latest/admin.html

https://github.com/spacewalkproject/spacewalk/wiki/OsadHowTo

https://www.redhat.com/archives/spacewalk-list/

Spacewalk client repository

https://copr-be.cloud.fedoraproject.org/results/%40spacewalkproject/spacewalk-2.9-client/epel-7-x86_64/