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 :
- Distribution automatisée d’Applications
- Gestion du changement
- Duplication de configuration et templating
- Gestion d’inventaire et d’assets.
- Centralisation des droits d’accès et des clés utilisateurs.
- Provisionning réseau
- Configuration distante.
- Mise à jour de système d’exploitation de masse ou partielle
- Déploiement de système d’exploitation à distance
- La métrologie des ressources consommées sur l’ensemble du parc géré.
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
- CentOS 7 (x86_64)
- 4 Go de mémoire (8 Go ne seront pas de trop en cas d’utilisation du même hôte pour la base de donnée)
- 80 Go au moins d’espace disque.
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.
- 69: TFTP (PXE)
- 80: Interface web de Spacewalk
- 443: Accès sécurisé via SSL.
- 4545: Monitoring Spacewalk
- 5222: Si vous souhaitez lancer des actions sur les serveurs guests du système.
- 5269: Pour communiquer avec les proxies Spacewalk.
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:
- Canaux de base : Un canal de base est composé de packages basés sur une architecture spécifique et une version de Red Hat Enterprise Linux.
- Canaux enfants : Un canal enfant est un canal associé à un canal de base contenant des paquets supplémentaires.
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 :
- Allez dans Systems et cliquez sur le nom du système.
- Sélectionnez l'onglet Configuration, puis l'onglet Deploy Files.
- Sur la page Deploy Files, cochez les cases des fichiers que vous souhaitez déployer, puis cliquez sur Deploy Files.
- Sur la page Confirmer le déploiement des fichiers, modifiez la planification si nécessaire, puis cliquez sur Schedule Deploy.
- 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:
- –profile choisit le profil;
- –results-arf indique à oscap que nous voulons que les résultats soient stockés sous la forme d'un fichier ARF dans un fichier appelé arf.xml.
- –report Demande à oscap de générer également un rapport HTML à côté de l'ARF.
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 :
- Les sections doivent être indiquées dans l'ordre. Sauf spécification contraire, les éléments contenus dans les sections n'ont pas à être placés dans un ordre spécifique. Tel est l'ordre de la section :
- Command section « Options de kickstart » for a list of kickstart options.
- The %packages section « Sélection de paquetages » for details.
- The %pre and %post sections.
- Les éléments qui ne sont pas obligatoires peuvent être omis.
- L'omission d'un élément obligatoire amène le programme d'installation à demander à l'utilisateur une réponse pour cet élément, exactement comme cela se passerait lors d'une installation normale. Une fois la réponse fournie, l'installation continue sans assistance (sauf s'il manque un autre élément).
- Les lignes commençant par le signe dièse (#) sont traitées comme des commentaires et ignorées.
- Pour les mises à niveau de kickstart, les éléments suivants sont requis :
- Langue
- Méthode d'installation
- Spécification du périphérique (si un périphérique est nécessaire pour exécuter l'installation)
- Configuration du clavier
- Le mot-clé upgrade
- Configuration du chargeur d'amorçage
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.
- La première consistera à utiliser l'assistant fournie dans la plateforme.
- La seconde sera de créer des bouts de code “SNIPPETS” rattaché à un profile.
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,
- Sélectionner le champs Install Centos 7, puis <TAB>
- Effacer le texte : inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
- Taper le texte suivant :
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 :
- Base OS
- EPEL
# 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