Serveurs Sécurisés · 4 min read · Feb 07, 2026

Serveurs Sécurisés : Construction de Paquets Avec EnGarde Secure Linux

Serveurs Sécurisés : Construction de Paquets Avec EnGarde Secure Linux

Contributeurs : Eckie Silapaswang et William Keys de Guardian Digital

Introduction

Bien que EnGarde Secure Linux n’inclue pas un environnement de développement “prêt à l’emploi”, tous les outils pour en configurer un sont disponibles via le Réseau Securisé de Guardian Digital. Le but de ce document est de vous fournir, en tant que développeur logiciel, les instructions pour configurer votre propre environnement de construction de paquets. Après avoir construit l’environnement, nous vous guiderons à travers la construction d’un paquet pour le langage de programmation orienté objet populaire, Ruby.

Configuration de Votre Environnement

Ce dont vous aurez besoin :

  • Une machine pour faire votre développement. Il n’est pas recommandé de faire cela sur une machine de production. Cette machine devrait être assez puissante, ou vous devriez avoir beaucoup de patience. Cette machine devrait avoir la dernière version d’EnGarde Secure Linux Community installée.
  • Des conseils sur la façon de construire des RPM. Il existe de nombreux HOWTO disponibles.

Une fois que vous avez tout ce qui précède, vous pouvez vous connecter en tant que root, passer à sysadm_r, et désactiver SELinux :

[root@engarde ~]# newrole -r sysadm_r  
Authenticating root.   
Password:
[root@engarde ~]# setenforce 0

Ensuite, vous devez installer les paquets suivants :

[root@engarde ~]# apt-get update   
Get:1 gdsn://updates.guardiandigital.com rapier release   
Fetched 478B in 0s (1794B/s)   
Get:1 gdsn://updates.guardiandigital.com rapier/core pkglist   
Get:2 gdsn://updates.guardiandigital.com rapier/core release   
Fetched 149kB in 0s (176kB/s)   
Reading Package Lists... Done   
Building Dependency Tree... Done
[root@engarde ~]# apt-get install rpm-build rpm-devel autoconf automake gcc gcc-c++ make patch binutils glibc-devel kernel-headers libstdc++-devel   
  
Reading Package Lists... Done   
Building Dependency Tree... Done   
The following NEW packages will be installed:   
autoconf automake binutils gcc gcc-c++ glibc-devel kernel-headers   
libstdc++-devel make patch rpm-build rpm-devel   
0 upgraded, 12 newly installed, 0 removed and 6 not upgraded.   
Need to get 48.3MB of archives.   
After unpacking 154MB of additional disk space will be used.   
...   
Committing changes...   
Preparing... ########################################### [100%]   
1:binutils ########################################### [100%]   
12:rpm-build ########################################### [100%]   
Done.

L’autre moyen d’installer les paquets nécessaires est via l’EnGarde WebTool :

Gestion des Paquets GDSN

Réseau Securisé de Guardian Digital : Interface de Gestion des Paquets

À ce stade, vous avez installé la plupart des paquets de développement de base. Au fur et à mesure que vous construisez des paquets qui se lient à d’autres paquets, vous devrez très probablement installer d’autres paquets -devel. Vous pouvez installer les paquets via WebTool ou en ligne de commande en utilisant apt-get.

[root@engarde ~]# echo "rpm-src gdsn://updates.guardiandigital.com/GDSNROOT rapier core" >> /etc/apt/sources.list

Ensuite, exécutez apt-get update :

[root@engarde ~]# apt-get update
[root@engarde ~]# apt-get source ruby   
Reading Package Lists... Done   
Building Dependency Tree... Done   
Need to get 4324kB of source archives.   
Get:1 gdsn://updates.guardiandigital.com rapier/core ruby 1.8.4-1 (srpm) [4324kB]   
Fetched 4324kB in 5s (861kB/s)   
1:ruby ########################################### [100%]

À ce stade, les sources du paquet sont installées dans /usr/src/engarde/SOURCES, et le fichier spec est dans /usr/src/engarde/SPECS :

...   
Group: Development/Languages   
Requires: %{name}-libs = %{version}-%{release}   
BuildRequires: readline readline-devel ncurses ncurses-devel gdbm   
gdbm-devel   
BuildRequires: glibc-devel autoconf gcc unzip   
BuildRequires: groff bison openssl-devel zlib-devel   
BuildRequires: db4-devel libtermcap-devel   
BuildRoot: %{_tmppath}/%{name}-%{version}-root   
...

Installez les paquets requis indiqués ci-dessus en utilisant apt-get :

[root@engarde ~]# apt-get install readline readline-devel ncurses ncurses-devel gdbm gdbm-devel glibc-devel autoconf gcc unzip groff bison openssl-devel zlib-devel db4-devel libtermcap-devel

À partir de là, vous devriez vérifier l’architecture de votre environnement. Allez dans le répertoire /usr/include et notez les liens symboliques ‘asm’ :

[root@xen8 include]# cd /usr/include [root@xen8 include]# rm asm   
[root@xen8 include]# ln -s ../src/linux/include/asm-i386/ asm  

Pour construire le paquet, utilisez rpmbuild (cette étape peut prendre un certain temps) :

[root@engarde SPECS]# rpmbuild -ba ruby.spec   
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.69447   
+ umask 022   
+ cd /usr/src/engarde/BUILD   
+ cd /usr/src/engarde/BUILD   
+ rm -rf ruby-1.8.4   
+ /bin/mkdir -p ruby-1.8.4   
+ cd ruby-1.8.4   
+ /usr/bin/gzip -dc /usr/src/engarde/SOURCES/ruby-1.8.4.tar.gz   
...   
Wrote: /usr/src/engarde/SRPMS/ruby-1.8.4-1.src.rpm   
Wrote: /usr/src/engarde/RPMS/i686/ruby-1.8.4-1.i686.rpm   
Wrote: /usr/src/engarde/RPMS/i686/ruby-libs-1.8.4-1.i686.rpm   
Wrote: /usr/src/engarde/RPMS/i686/ruby-devel-1.8.4-1.i686.rpm   
Wrote: /usr/src/engarde/RPMS/i686/ruby-docs-1.8.4-1.i686.rpm   
...  

Bien sûr, nous aimerions construire le paquet le plus récent possible pour Ruby. Au moment de cet article, la dernière version de Ruby est 1.8.6.

[root@xen8 SOURCES]# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gz   
--10:28:00-- ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gz   
...   
100%[==========================================================>]   
4,589,394 346.30K/s ETA 00:00   
  
10:28:17 (308.40 KB/s) - `ruby-1.8.6.tar.gz' saved [4589394]

Changez de répertoire vers le répertoire du fichier spec et éditez le fichier ruby.spec avec votre éditeur de texte préféré.

Release: 1   
to   
Release: 2

Nous changeons ensuite la version de Ruby de 1.8.4 à 1.8.6 :

%doc %{name}-%{version}/ToDo   
%doc %{name}-%{version}/doc/NEWS   
%doc tmp-ruby-docs/ruby/*   
to this:   
%doc %{name}-%{version}/ToDo   
%doc %{name}-%{version}/doc/NEWS-1.8.0   
%doc tmp-ruby-docs/ruby/*

Cela devrait suffire pour construire la source. Une dernière chose que vous devriez faire pour tout votre travail acharné est de vous créditer pour avoir assemblé ce paquet - allez à la fin du fichier spec et ajoutez-vous :

[root@engarde SPECS]# rpmbuild -ba ruby.spec   
...   
+ umask 022  
+ cd /usr/src/engarde/BUILD   
+ cd /usr/src/engarde/BUILD   
+ rm -rf ruby-1.8.6   
+ /bin/mkdir -p ruby-1.8.6  
+ cd ruby-1.8.6   
+ /usr/bin/gzip -dc /usr/src/engarde/SOURCES/ruby-1.8.6.tar.gz  
...   
Wrote: /usr/src/engarde/SRPMS/ruby-1.8.6-2.src.rpm   
Wrote: /usr/src/engarde/RPMS/i686/ruby-1.8.6-2.i686.rpm   
Wrote: /usr/src/engarde/RPMS/i686/ruby-libs-1.8.6-2.i686.rpm   
Wrote: /usr/src/engarde/RPMS/i686/ruby-devel-1.8.6-2.i686.rpm   
Wrote: /usr/src/engarde/RPMS/i686/ruby-docs-1.8.6-2.i686.rpm   
...

Excellent travail ! Vous venez de construire un paquet mis à jour pour la dernière version de Ruby !

Références

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.