Si vous avez suivi les articles précédents, vous savez désormais créer un paquet Deb et créer un dépôt Apt. Nous allons maintenant décrire la signature des paquets et du dépôt à l’aide GnuPG.
On va commencer par l’installer :
1 2 3 |
$ sudo apt-get update && sudo apt-get upgrade -y $ sudo apt-get install gnupg |
Générer la clé GPG de signature
Note: Il peut être intéressant de créer la clé avec le compte root si c’est lui qui met à jour reprepro. Ce n’est pas obligatoire et si vous ne souhaitez pas le faire, vous pourrez modifier un peu le script /var/reprepro/update
pour manipuler les droits. Je vous laisse voir les modifications à y apporter dans ce cas.
Nous allons commencer par générer la clé. L’opération prend un certain temps, que je ne peux préciser puisque j’ai fini par baisser les bras et aller me coucher en laissant tourner GNU PG toute la nuit.
1 |
Rien de compliqué, on laisse systématiquement les valeurs par défaut. Je reprends :
1 |
Selon Debian, l’utilisation d’un commentaire, comme dans l’exemple « le poète », est déconseillée. On ne signe pas quelque chose en mettant ce type de commentaire, ce à quoi j’adhère.
C’est maintenant que l’on s’attaque à la partie extrêmement longue, la génération de la clé à proprement parler :
1 |
La paire de clés privée / publique est comme toujours au format binaire. Contrairement à cette dernière, une représentation ASCII de la clé publique utilise un jeu réduit de symboles qui transite très facilement par tout moyen de communication. Nous allons maintenant générer cette représentation texte qui permettra à vos usagers de faire confiance à votre dépôt Apt comme à vos paquets Deb.
1 2 3 4 5 6 7 8 9 |
$ gpg --armor --export ********@****.** --output > ********@****.**.gpg.key -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1 (...) -----END PGP PUBLIC KEY BLOCK----- |
Signer un paquet Deb
Si vous utilisez la procédure Debian pour créer vos paquets, dpkg-buildpackage
détectera automatiquement votre clé et l’utilisera pour les signer.
Avec la procédure simplifiée que nous avons vu ensemble, ce ne sera pas le cas. Nous allons utiliser dpkg-sig
.
1 |
$ sudo apt-get install dpkg-sig |
Entre le moment où vous avez créé votre paquet Deb et le moment ou vous l’avez ajouté à votre dépôt Apt, vous allez maintenant pouvoir le signer :
1 |
Builder
étant le rôle du signataire. On n’a pas besoin ici de préciser la clé à utiliser, dpkg-sig
va prendre la clé binaire que nous venons de créer dans votre profil utilisateur.
Signer un dépôt Apt
Nous allons maintenant voir comment signer votre dépôt, ce qui épargnera à vos utilisateurs lors de l’installation avec apt-get
les avertissements du type :
1 |
Si vous avez mis en place votre dépôt Apt comme nous l’avons vu dans l’article précédent, vous pouvez le réinitialiser en supprimant sa base de données et la partie frontale :
1 |
$ sudo rm -rf /var/reprepro/debian/db /var/www/html/debian/* |
Nous allons mettre à jour notre configuration de distribution et y intégrer la directive SignWith à chaque distribution que nous souhaitons signer :
1 |
Lorsque SignWith vaut yes
, reprepro ira chercher la clé dans votre profile. Vous pouvez aussi au lieu de yes
indiquer l’ID de la clé. Vous pouvez retrouver cet id grâce à la commande :
1 |
Il s’agit ici de la partie F787300E
de la ligne qui commence par sub
.
Enfin, nous allons modifier les options de reprepro pour qu’il nous demande le mot de passe de la clé :
1 2 3 4 5 6 7 |
verbose ask-passphrase basedir /var/reprepro/debian outdir /var/www/html/debian |
Installer la signature du dépôt Apt
Pour pouvoir bénéficier de votre dépôt signé, vos utilisateurs vont devoir installer votre signature dans leur configuration Apt. Au premier chapitre de cet article, nous avons créé une version texte de votre clé publique, que nous avons enregistré dans le fichier [votre adresse email].gpg.key
à l’aide de la commande gpg --armor
.
Nous allons placer cette clé à la racine du serveur web afin qu’elle soit facilement téléchargeable. Dans notre configuration d’exemple, il s’agit du dossier /var/www/html/
.
Vos utilisateurs peuvent désormais l’ajouter en une seule ligne de commande :
1 |
Après un apt-get update
, vous constaterez que vos apt-get install
n’affichent plus d’avertissement à l’installation de vos paquets Deb.
Un commentaire