Guide d'administration — APT Repo Manager¶
Version : 1.0 — Mai 2026
Audience : Administrateurs système, responsables sécurité (RSSI), mainteneurs de paquets
Table des matières¶
- Accès à l'interface
- Tableau de bord
- Gestion des paquets
- 3.1 Liste et recherche
- 3.2 Upload d'un paquet
- 3.3 Import depuis une source APT amont
- 3.4 Promotion entre distributions
- Supervision sécurité — CVE et workflow RSSI
- SBOM et export de conformité
- Gestion des utilisateurs et rôles
- Tokens d'API pour CI/CD
- Paramètres système
- Statistiques et supervision
- Configuration des clients APT
- Sauvegarde et restauration
1. Accès à l'interface¶
L'interface web est accessible à l'adresse configurée lors du déploiement, par défaut :
La navigation principale se fait via la barre latérale gauche. Les sections disponibles dépendent du rôle de l'utilisateur connecté :
| Rôle | Accès |
|---|---|
viewer |
Dashboard, Paquets (lecture seule), Statistiques, SBOM |
uploader |
+ Upload, Import |
maintainer |
+ Suppression de paquets, Promotion |
rssi |
+ Section Sécurité (CVE review), Audit |
admin |
Accès complet, Utilisateurs, Paramètres |
L'authentification peut s'effectuer via compte local ou LDAP/AD selon la configuration (voir section 8).
2. Tableau de bord¶
Le tableau de bord est la première page affichée après connexion. Il offre une vue synthétique de l'état du dépôt.
Indicateurs clés¶
- Nombre de paquets : total de paquets hébergés dans le dépôt.
- Distributions : nombre de distributions configurées (ex. focal, jammy, noble, bookworm…).
- Dernière synchronisation : horodatage de la dernière synchro avec les sources APT amont.
Graphique de téléchargements¶
Le graphique affiche l'activité de téléchargement sur des fenêtres de 7, 30 ou 90 jours (sélecteur en haut à droite du graphique). Il permet de détecter rapidement les tendances d'utilisation.
Flux d'activité récente¶
Le flux liste les derniers événements du dépôt : uploads, imports, décisions RSSI, suppressions, modifications de paramètres. Chaque entrée indique l'utilisateur à l'origine de l'action et l'horodatage.
3. Gestion des paquets¶
3.1 Liste et recherche¶
La section Paquets affiche la liste complète des paquets hébergés avec, pour chacun :
- Nom et version
- Architecture (amd64, arm64, all…)
- Distribution cible
- Statut CVE (aucune vulnérabilité / en attente de revue / vulnérabilité confirmée)
Filtrer les paquets
Utilisez la barre de recherche pour filtrer par nom. Le sélecteur de distribution permet de restreindre l'affichage à une distribution spécifique.
Détail d'un paquet
Cliquez sur un paquet pour accéder à :
- Historique : toutes les versions importées ou uploadées avec leur statut.
- Détails CVE : liste des CVE détectées, score CVSS, score EPSS, indicateur CISA KEV.
- Export SBOM : générer le SBOM du paquet au format CycloneDX ou SPDX.
Suppression d'un paquet
Réservée aux rôles maintainer et supérieur. La suppression est définitive et inscrite dans l'audit trail. Une confirmation est demandée avant exécution.
3.2 Upload d'un paquet¶
Accédez à la section Upload via la barre latérale.
Étapes
- Glissez-déposez le fichier
.debdans la zone prévue (ou cliquez pour sélectionner un fichier). - Sélectionnez la distribution cible dans le menu déroulant.
- Cliquez sur Envoyer.
Pipeline de validation en temps réel
Dès réception, le fichier passe par les étapes suivantes (affichées en direct) :
| Étape | Description |
|---|---|
| Format | Vérification de la structure du paquet .deb |
| SHA256 | Calcul et vérification de l'empreinte du fichier |
| ClamAV | Analyse antivirus |
| CVE (Grype) | Analyse des vulnérabilités connues |
| GPG | Vérification de la signature cryptographique |
| Dépendances | Résolution des dépendances dans le dépôt |
Statuts possibles à l'issue de la validation
- Accepté : le paquet est publié dans le dépôt APT et immédiatement disponible.
- En attente de revue (
pending_review) : une ou plusieurs CVE ont été détectées. Le paquet est placé en quarantaine et une notification est envoyée au RSSI. - Rejeté : le paquet est refusé (virus détecté, signature invalide, format incorrect). Il est placé en quarantaine et ne sera pas publié.
3.3 Import depuis une source APT amont¶
La section Import permet d'importer des paquets directement depuis les sources Ubuntu ou Debian synchronisées.
Procédure
- Saisissez le nom du paquet dans la barre de recherche. L'index APT synchronisé est interrogé en temps réel.
- Sélectionnez le paquet et la version souhaitée dans les résultats.
- Cliquez sur Résoudre les dépendances pour visualiser l'arbre de dépendances complet.
- Cliquez sur Importer pour lancer le pipeline de validation.
Import par lot (batch)
Pour importer plusieurs paquets simultanément, cochez chaque paquet dans la liste de résultats puis cliquez sur Importer la sélection. Le pipeline s'exécute de manière séquentielle pour chaque paquet.
Remarque : les sources APT disponibles dépendent de la configuration (section Sources APT des Paramètres). Seules les sources activées sont interrogées.
3.4 Promotion entre distributions¶
La section Distributions liste les distributions configurées avec le nombre de paquets hébergés dans chacune.
Promouvoir un paquet
- Sélectionnez la distribution source.
- Identifiez le paquet à promouvoir dans la liste.
- Cliquez sur Promouvoir et sélectionnez la distribution cible.
- Confirmez l'opération.
La promotion est enregistrée dans l'audit trail. Le paquet promu est soumis au même pipeline de validation que lors d'un upload direct.
Migrer des paquets
L'option Migrer permet de déplacer un ensemble de paquets d'une distribution à une autre en une seule opération.
4. Supervision sécurité — CVE et workflow RSSI¶
File de revue CVE¶
La section Sécurité est accessible aux rôles rssi et admin. Elle centralise la gestion des vulnérabilités.
File de revue (Review Queue)
Liste tous les paquets au statut pending_review, c'est-à-dire en attente d'une décision RSSI. Pour chaque paquet :
- Nom, version, distribution
- CVE(s) détectée(s) avec score CVSS
- Score EPSS (probabilité d'exploitation)
- Indicateur CISA KEV (Known Exploited Vulnerability)
- SLA restant (délai de décision configuré par sévérité)
Tableau de bord des vulnérabilités
Vue synthétique classant toutes les vulnérabilités connues dans le dépôt par sévérité :
| Sévérité | Couleur |
|---|---|
| Critical | Rouge |
| High | Orange |
| Medium | Jaune |
| Low | Bleu |
Workflow de décision RSSI¶
- Un paquet uploadé ou importé déclenche une analyse CVE (Grype).
- Si une vulnérabilité est détectée selon la politique configurée (section Politique CVE), le paquet passe en statut
pending_review. - Une notification est envoyée via webhook (Slack/Teams/Mattermost) et/ou email.
- Le RSSI accède à Sécurité > File de revue.
- Il consulte les détails de chaque CVE, les scores EPSS et les indicateurs KEV.
- Il prend sa décision :
- Approuver : le paquet est publié dans le dépôt APT.
- Rejeter : le paquet reste en quarantaine avec une justification obligatoire.
- La décision, la justification et l'horodatage sont inscrits dans l'audit trail.
ClamAV¶
L'état de l'antivirus ClamAV est affiché dans la section Sécurité (version des signatures, date de dernière mise à jour). Un bouton Mettre à jour les signatures permet de déclencher une mise à jour manuelle immédiate.
5. SBOM et export de conformité¶
La section SBOM (Software Bill of Materials) permet de générer et d'exporter une liste exhaustive des composants logiciels présents dans le dépôt.
Paramètres d'export¶
| Paramètre | Options |
|---|---|
| Format | CycloneDX JSON (OWASP) ou SPDX JSON (ISO/IEC 5962) |
| Distribution | Toutes ou une distribution spécifique |
Interface¶
- Nombre de paquets inclus dans le SBOM sélectionné.
- Aperçu : affichage des 5 premiers composants pour vérification avant export.
- Export complet : téléchargement du fichier SBOM complet (nécessite une authentification valide).
Export par paquet¶
Depuis la fiche d'un paquet (section Paquets), il est possible d'exporter le SBOM individuellement pour ce paquet uniquement, au format souhaité.
Usage réglementaire¶
Les fichiers SBOM exportés sont conformes aux exigences NIS2 et aux recommandations de l'ANSSI pour la traçabilité des composants logiciels. Archivez-les conjointement aux journaux d'audit.
6. Gestion des utilisateurs et rôles¶
La section Utilisateurs est réservée aux administrateurs (admin).
Liste des utilisateurs¶
Affiche tous les comptes avec : nom d'utilisateur, rôle, date de dernière connexion, statut (actif/inactif).
Créer un utilisateur¶
- Cliquez sur Nouvel utilisateur.
- Renseignez les champs : nom d'utilisateur, mot de passe, rôle, nom complet, adresse email.
- Validez.
Le compte est immédiatement actif.
Modifier un utilisateur¶
- Rôle : modifiable via le menu déroulant dans la liste.
- Activer / Désactiver : le basculement est immédiat. Un utilisateur désactivé ne peut plus se connecter.
- Réinitialiser le mot de passe : génère un nouveau mot de passe temporaire affiché une seule fois.
- Supprimer : suppression définitive après confirmation.
Rôles disponibles¶
| Rôle | Description |
|---|---|
viewer |
Lecture seule |
uploader |
Upload et import de paquets |
maintainer |
+ Suppression, promotion |
rssi |
+ Revue CVE, audit |
admin |
Accès complet |
Authentification LDAP/AD¶
Si LDAP est configuré (section Paramètres > LDAP/AD), les utilisateurs peuvent se connecter avec leurs identifiants d'annuaire. Les groupes LDAP peuvent être mappés aux rôles applicatifs. L'auto-provisionnement crée automatiquement un compte local à la première connexion.
7. Tokens d'API pour CI/CD¶
Les tokens d'API permettent à des systèmes externes (pipelines CI/CD, scripts) d'interagir avec le dépôt sans utiliser de session interactive.
Créer un token¶
- Aller dans Paramètres > Tokens API (ou depuis la fiche utilisateur).
- Cliquer sur Créer un token.
- Renseigner :
- Nom : identifiant descriptif (ex.
gitlab-ci-prod). - Rôle : le rôle
uploaderest recommandé pour les pipelines de publication. - Expiration : optionnelle (laisser vide pour un token permanent).
- Cliquer sur Générer.
- Copier immédiatement le token — il ne sera plus affiché après fermeture de la fenêtre.
Utiliser un token¶
Ajoutez l'en-tête HTTP suivant à chaque requête API :
Exemple avec curl :
Exemple dans un pipeline GitLab CI :
upload:
script:
- |
curl -s -X POST \
-H "Authorization: Bearer $REPOD_TOKEN" \
-F "file=@monpaquet_1.0_amd64.deb" \
-F "distribution=jammy" \
http://REPO_HOST:8000/api/upload
Stockez le token dans les variables secrètes de votre outil CI/CD, jamais en clair dans le code source.
Révoquer un token¶
Depuis Paramètres > Tokens API, cliquez sur Révoquer en regard du token concerné. La révocation est immédiate.
8. Paramètres système¶
La section Paramètres est réservée aux administrateurs. Elle regroupe toutes les configurations globales de l'application.
Général¶
- URL de l'application : URL publique utilisée dans les notifications et les liens générés.
- Planification de la synchronisation : heure et minute de la synchronisation quotidienne avec les sources APT amont.
- Activer / Désactiver la synchronisation automatique.
Sources APT¶
Liste des sources Ubuntu et Debian disponibles. Activez ou désactivez individuellement chaque source selon les distributions à synchroniser.
Sources typiques disponibles :
- Ubuntu : focal (20.04), jammy (22.04), noble (24.04)
- Debian : buster (10), bullseye (11), bookworm (12)
Notifications¶
- URL du webhook : endpoint Slack, Microsoft Teams ou Mattermost pour les alertes automatiques (nouveaux paquets en attente, décisions RSSI, erreurs système).
- Bouton Tester : envoie un message de test au webhook configuré.
Email SMTP¶
Configurez l'envoi d'emails pour les notifications et alertes :
| Champ | Description |
|---|---|
| Hôte SMTP | Adresse du serveur de messagerie |
| Port | Généralement 587 (STARTTLS) ou 465 (TLS) |
| Identifiant / Mot de passe | Credentials du compte d'envoi |
| Expéditeur (From) | Adresse affichée dans les emails |
| Destinataire(s) (To) | Adresse(s) de réception des alertes |
| TLS | Activer/désactiver le chiffrement |
Le bouton Tester envoie un email de test aux destinataires configurés.
GPG¶
- Empreinte de la clé : fingerprint de la clé GPG utilisée pour signer les paquets.
- Clé publique : affichage et copie de la clé publique (à distribuer aux clients APT).
- Générer une nouvelle clé : crée une nouvelle paire de clés GPG. Attention : les clients APT devront mettre à jour leur trousseau.
LDAP/AD¶
Configuration de l'annuaire d'entreprise pour l'authentification centralisée :
| Champ | Description |
|---|---|
| Hôte | Adresse du serveur LDAP/AD |
| Port | 389 (LDAP), 636 (LDAPS) |
| SSL / STARTTLS | Mode de chiffrement |
| Validation du certificat TLS | Activer en production |
| DN de liaison (Bind DN) | Compte de service pour les requêtes LDAP |
| Mot de passe de liaison | Mot de passe du compte de service |
| Base DN | Racine de recherche dans l'annuaire |
| Filtre utilisateur | Filtre LDAP (ex. (objectClass=person)) |
| Mapping des attributs | Correspondance attributs LDAP → champs applicatifs |
| Mapping groupes → rôles | Association groupe LDAP à un rôle applicatif (5 rôles) |
| Auto-provisionnement | Créer automatiquement un compte à la première connexion |
Le bouton Tester vérifie la connectivité et l'authentification avec les paramètres saisis.
Rétention¶
- Durée de conservation des journaux d'audit : nombre de jours avant purge automatique.
- Durée de conservation des imports : nombre de jours avant nettoyage des fichiers d'import temporaires.
Politique CVE¶
Définit le comportement du pipeline de validation face aux vulnérabilités :
| Sévérité | Actions disponibles |
|---|---|
| Critical | block (rejet automatique) / review (file RSSI) / warn / allow |
| High | idem |
| Medium | idem |
| Low | idem |
Autres paramètres :
- SLA (jours) : délai maximum de décision par sévérité, suivi dans la file RSSI.
- Enrichissement automatique EPSS : récupère les scores de probabilité d'exploitation.
- Enrichissement automatique KEV : récupère les indicateurs CISA Known Exploited Vulnerabilities.
Validation¶
- Activer ClamAV : active/désactive l'analyse antivirus lors du pipeline.
- Activer Grype : active/désactive l'analyse CVE lors du pipeline.
- Taille maximale d'upload : limite en Mo pour les fichiers
.debuploadés.
9. Statistiques et supervision¶
Statistiques (Téléchargements)¶
La section Statistiques offre une vue détaillée de l'utilisation du dépôt.
Métriques globales
- Nombre total de téléchargements
- Nombre de paquets uniques téléchargés
- Nombre de clients uniques (adresses IP)
- Volume total servi (Go/Mo)
Graphique journalier
Histogramme des téléchargements sur 7, 30 ou 90 jours.
Top paquets téléchargés
Tableau des paquets les plus populaires avec barre de popularité relative.
50 derniers téléchargements
Liste détaillée incluant : adresse IP client, user-agent, nom du paquet, taille, horodatage.
Supervision (Health)¶
La section Supervision fournit un état de santé en temps réel du système. Elle se rafraîchit automatiquement toutes les 30 secondes.
Contrôles effectués
| Contrôle | Description |
|---|---|
| Volume Manifests | Espace disque utilisé par les manifestes |
| Volume Pool | Espace disque utilisé par les fichiers .deb |
| Volume Audit | Espace disque utilisé par les journaux d'audit |
| ClamAV | Version des signatures antivirus |
| Paquets | Compteurs par distribution et statut |
| Scheduler | Prochaines exécutions planifiées |
Indicateurs de remplissage disque
- Vert : < 75 % utilisé
- Orange : entre 75 % et 90 %
- Rouge : > 90 % (action requise)
Planifiez une expansion de stockage dès que l'indicateur passe en orange.
Journaux d'audit¶
La section Audit affiche le journal chronologique de toutes les actions effectuées dans l'application.
Filtres disponibles
- Par type d'action (upload, import, suppression, décision RSSI, modification paramètre…)
- Par utilisateur
- Par paquet
Export
Le journal d'audit peut être exporté au format JSONL pour archivage ou intégration dans un SIEM.
10. Configuration des clients APT¶
Pour qu'une machine cliente puisse utiliser le dépôt APT, elle doit être configurée pour lui faire confiance et connaître son adresse.
Méthode automatique (recommandée)¶
Une commande d'installation automatique est disponible dans la section Config Client de l'interface :
Ce script réalise toutes les étapes manuelles décrites ci-dessous.
Méthode manuelle¶
1. Importer la clé GPG publique
curl -sL http://REPO_HOST:8000/repos/dists/jammy/Release.gpg \
| gpg --dearmor \
> /etc/apt/trusted.gpg.d/repod.gpg
2. Déclarer le dépôt
Adaptez jammy au nom de la distribution cible (focal, noble, bookworm, etc.).
3. Mettre à jour le cache APT
4. Installer un paquet
Clé GPG¶
La clé GPG publique est accessible depuis Paramètres > GPG. Elle doit être redistribuée aux clients chaque fois qu'une nouvelle clé est générée.
11. Sauvegarde et restauration¶
Script de sauvegarde¶
Un script backup.sh est fourni à la racine du projet. Il sauvegarde les données critiques : pool de paquets, manifestes, base de données, journaux d'audit.
Sauvegarde manuelle (répertoire par défaut)
Sauvegarde vers un NAS ou stockage externe
Simulation (dry-run)
Affiche les fichiers qui seraient sauvegardés sans effectuer aucune opération.
Planification¶
Il est recommandé de planifier la sauvegarde quotidiennement via cron :
Restauration¶
Pour restaurer depuis une sauvegarde, arrêtez le service, remplacez les volumes Docker par les données sauvegardées, puis redémarrez :
Consultez le README du projet pour le détail des volumes Docker et leur correspondance avec les chemins de sauvegarde.
Données sauvegardées¶
| Données | Importance |
|---|---|
Pool de paquets (.deb) |
Critique |
| Manifestes APT | Critique |
| Base de données applicative | Critique |
Journaux d'audit (.jsonl) |
Haute |
| Configuration GPG | Haute |
| Paramètres de l'application | Moyenne |
Recommandations¶
- Testez la restauration régulièrement dans un environnement de test.
- Conservez au minimum 30 jours de sauvegardes.
- Stockez les sauvegardes hors du serveur hébergeant le dépôt (NAS, stockage objet S3-compatible).
- Chiffrez les archives de sauvegarde contenant des paquets propriétaires.
Guide généré pour APT Repo Manager — Mai 2026