Blog

  • Mise en place d’une PKI interne avec Step-CA

    Pourquoi mettre en place une PKI interne ?

    Mettre en place une PKI interne permet :

    • d’émettre ses propres certificats
    • de maîtriser leur durée de vie
    • d’automatiser leur renouvellement
    • de supprimer les certificats auto-signés non maîtrisés

    Par contre, il faudra prévoir d’e configurer ‘ajouter le certificat de l’autorité de certification sur chaque client.

    Dans cet article, nous allons voir comment déployer une autorité de certification interne avec step-ca.


    Pourquoi utiliser step-ca ?

    Smallstep step-ca est une autorité de certification open source développée par Smallstep.

    Avantages :

    • Installation simple
    • Compatible ACME (comme Let’s Encrypt)
    • Gestion d’identités X.509 et SSH
    • API REST
    • Intégration facile avec des scripts et outils d’automatisation
    • Support du renouvellement automatique

    Architecture recommandée

    Une PKI interne minimale comprend :

    • 1 CA root (idéalement offline)
    • 1 CA intermédiaire (utilisée pour signer les certificats)
    • 1 serveur step-ca
    • 1 mécanisme de distribution du certificat root vers les clients

    En environnement simple (lab ou PME), on peut commencer avec une seule CA hébergée sur un serveur sécurisé.


    Installation de step-ca (exemple sous Debian 12)

    1️⃣ Installation

    On trouve la documentation ici : https://smallstep.com/docs/step-ca/installation/#debianubuntu
    root@debian-pki:/home/bob# apt-get update && apt-get install -y --no-install-recommends curl gpg ca-certificates
    Atteint : 1 http://deb.debian.org/debian trixie InRelease
    Atteint : 2 http://deb.debian.org/debian trixie-updates InRelease
    Atteint : 3 http://security.debian.org/debian-security trixie-security InRelease
    Lecture des listes de paquets... Fait
    Lecture des listes de paquets... Fait
    
    oot@debian-pki:/home/bob# curl -fsSL https://packages.smallstep.com/keys/apt/repo-signing-key.gpg -o /etc/apt/keyrings/smallstep.asc
    cat << EOF > /etc/apt/sources.list.d/smallstep.sources
    Types: deb
    URIs: https://packages.smallstep.com/stable/debian
    Suites: debs
    Components: main
    Signed-By: /etc/apt/keyrings/smallstep.asc
    EOF
    apt-get update && apt-get -y install step-cli step-ca

    Vérification :

    oot@debian-pki:/home/bob# step version
    Smallstep CLI/0.29.0 (linux/amd64)
    Release Date: 2025-12-03T04:11:27Z
    
    

    2️⃣ Initialisation de la PKI

    
    
    root@debian-pki:/home/bob#  step ca init
    ✔ Deployment Type: Standalone
    What would you like to name your new PKI?
    ✔ (e.g. Smallstep): pki-lab
    What DNS names or IP addresses will clients use to reach your CA?
    ✔ (e.g. ca.example.com[,10.1.2.3,etc.]): debian-dns.local.lab
    What IP and port will your new CA bind to? (:443 will bind to 0.0.0.0:443)
    ✔ (e.g. :443 or 127.0.0.1:443): :443
    What would you like to name the CA's first provisioner?
    ✔ (e.g. you@smallstep.com): bob@local.lab█
    Choose a password for your CA keys and first provisioner.
    ✔ [leave empty and we'll generate one]: █
    
    Generating root certificate... done!
    Generating intermediate certificate... done!
    
    ✔ Root certificate: /root/.step/certs/root_ca.crt
    ✔ Root private key: /root/.step/secrets/root_ca_key
    ✔ Root fingerprint: ac47a133dcde6405d37f1ad87e3cb84e58dbaa54b9a825a99bf7cf4b25558f61
    ✔ Intermediate certificate: /root/.step/certs/intermediate_ca.crt
    ✔ Intermediate private key: /root/.step/secrets/intermediate_ca_key
    ✔ Database folder: /root/.step/db
    ✔ Default configuration: /root/.step/config/defaults.json
    ✔ Certificate Authority configuration: /root/.step/config/ca.json
    
    Your PKI is ready to go. To generate certificates for individual services see 'step help ca'.
    
    

    L’assistant va demander :

    • Nom de la CA
    • Nom DNS du serveur
    • Adresse IP
    • Mot de passe de protection de la clé privée

    À la fin, tu obtiens :

    • root_ca.crt
    • intermediate_ca.crt
    • fichiers de configuration

    3️⃣ Démarrage du service

    
    
    root@debian-pki:~# step-ca .step/config/ca.json 
    badger 2026/02/18 18:40:05 INFO: All 0 tables opened in 0s
    Please enter the password to decrypt /root/.step/secrets/intermediate_ca_key: 
    2026/02/18 18:40:13 Building new tls configuration using step-ca x509 Signer Interface
    2026/02/18 18:40:14 Starting Smallstep CA/0.29.0 (linux/amd64)
    2026/02/18 18:40:14 Documentation: https://u.step.sm/docs/ca
    2026/02/18 18:40:14 Community Discord: https://u.step.sm/discord
    2026/02/18 18:40:14 Config file: .step/config/ca.json
    2026/02/18 18:40:14 The primary server URL is https://debian-dns.local.lab:443
    2026/02/18 18:40:14 Root certificates are available at https://debian-dns.local.lab:443/roots.pem
    2026/02/18 18:40:14 X.509 Root Fingerprint: ac47a133dcde6405d37f1ad87e3cb84e58dbaa54b9a825a99bf7cf4b25558f61
    2026/02/18 18:40:14 Serving HTTPS on :443 ...
    

    Ou via systemd.


    Émission d’un certificat

    Exemple pour un serveur interne :

    
    
    
    
    
    step ca certificate srv-web01.infra.local srv-web01.crt srv-web01.key
    

    Le certificat est signé par la CA interne.

    Tu peux ensuite l’installer dans :

    • Nginx
    • Apache
    • HAProxy
    • Interface d’administration d’un firewall
    • Reverse proxy

    Activation du protocole ACME

    L’un des gros avantages de step-ca est le support natif d’ACME.

    Cela permet :

    • d’utiliser Certbot
    • d’automatiser le renouvellement
    • d’éviter toute gestion manuelle

    Exemple de configuration ACME :

    
    
    
    
    
    {
      "type": "ACME",
      "name": "acme"
    }
    

    Ensuite, un serveur peut demander son certificat automatiquement via ACME interne.


    Distribution du certificat root

    Point critique : tous les clients doivent faire confiance à la CA interne.

    Sur Linux :

    
    
    
    
    
    cp root_ca.crt /usr/local/share/ca-certificates/
    update-ca-certificates

    Sur Windows : via GPO
    Sur équipements réseau : import manuel du certificat root.


    Cas d’usage concrets

    En environnement réseau/sécurité (comme le tien), une PKI interne permet :

    • HTTPS sur interfaces d’administration de firewalls
    • TLS sur serveurs internes
    • Authentification mutuelle VPN
    • Wi-Fi entreprise (EAP-TLS)
    • Signature de certificats pour API internes
    • Certificats courts pour renforcer la sécurité

    Bonnes pratiques de sécurité

    • Protéger la clé privée de la CA
    • Sauvegarder les clés hors ligne
    • Conserver la root CA offline si possible
    • Utiliser des certificats courts (30 à 90 jours)
    • Automatiser le renouvellement
    • Mettre en place une CRL ou OCSP si nécessaire

    Conclusion

    Mettre en place une PKI interne n’est plus réservé aux grandes entreprises.

    Avec Smallstep step-ca, il est possible de :

    • déployer une autorité de certification en quelques minutes
    • automatiser totalement l’émission
    • sécuriser l’ensemble de l’infrastructure interne
  • Installer un DNS interne pour un lab (Debian + Bind9)

    Pourquoi mettre en place un DNS interne dans un lab ?

    Dans beaucoup de labs, on utilise des adresses IP en dur ou un simple fichier /etc/hosts. Ça fonctionne… jusqu’au jour où :

    • le lab grandit,
    • plusieurs services communiquent entre eux,
    • on veut se rapprocher d’une infrastructure réelle.

    Un DNS interne permet notamment de :

    • Résoudre des noms de machines sans dépendre d’Internet
    • Centraliser la résolution de noms
    • Simuler un environnement d’entreprise
    • Préparer des scénarios réalistes (AD, messagerie, reverse proxy, supervision…)
    (suite…)
  • Découvrir firewalld sous Debian 13

    firewalld est un gestionnaire de pare-feu dynamique, largement utilisé sur les distributions Red Hat (RHEL, Rocky, Alma, Fedora), mais également disponible sur Debian. Contrairement à une gestion directe de nftables ou iptables, firewalld apporte une couche d’abstraction basée sur des zones, des services et des règles persistantes, ce qui facilite l’administration quotidienne.

    (suite…)
  • Utiliser une Web UI avec Ollama sur Debian

    Après avoir vu comment installer Ollama et utiliser des modèles comme Mistral et LLaMA 3.2 en ligne de commande, une question revient souvent :

    Peut-on utiliser Ollama avec une interface web, plus conviviale qu’un terminal ?

    La réponse est oui. Dans cet article, nous allons voir comment utiliser une Web UI pour Ollama, afin d’interagir avec des modèles d’IA locale directement depuis un navigateur web.

    (suite…)
  • Installer Ollama sur Debian

    Introduction

    Ollama permet d’exécuter des modèles de langage puissants localement sur votre ordinateur, garantissant ainsi une confidentialité totale de vos données sans dépendre d’une connexion internet.

    Dans cet article, nous allons voir comment installer Ollama sur une machine Debian disposant de 12 Go de RAM. Ollama permet de télécharger et d’exécuter facilement des modèles de langage (LLM) comme Llama, Mistral ou Gemma, directement en local.

    (suite…)
  • Docker pour débutants

    Qu’est-ce que Docker ?

    Docker est une plateforme de conteneurisation qui permet d’empaqueter une application et toutes ses dépendances dans un conteneur standardisé. Imaginez un conteneur comme une boîte isolée qui contient tout ce dont votre application a besoin pour fonctionner : le code, les bibliothèques, les outils système et les configurations. L’avantage majeur ? Votre application fonctionnera de manière identique, que ce soit sur votre ordinateur portable, sur un serveur de production ou sur la machine d’un collègue. Fini les fameux « mais ça marche sur ma machine ! » qui sont la hantise des développeurs.

    (suite…)
  • 10 commandes Linux indispensables

    Quand on débute sous Linux, certaines commandes reviennent en permanence en administration système.
    Les connaître permet de lire des fichiers, analyser des logs, rechercher des informations et modifier des configurations efficacement.

    Cet article présente 10 commandes Linux essentielles, avec des exemples concrets, utilisables immédiatement sur Debian, Ubuntu et la plupart des distributions Linux.

    (suite…)
  • snmptranslate : Traduire les OID SNMP en un clin d’œil

    snmptranslate : Traduire les OID SNMP en un clin d’œil

    snmptranslate est un utilitaire Net-SNMP qui convertit les OID (identifiants d’objets) entre leurs différentes représentations. Simple mais indispensable pour tout administrateur réseau travaillant avec SNMP.

    Exemples de base

    Traduire un OID numérique en nom :

    $ snmptranslate 1.3.6.1.2.1.1.1.0
    SNMPv2-MIB::sysDescr.0

    Obtenir l’OID numérique à partir d’un nom :

    $ snmptranslate -On SNMPv2-MIB::sysName.0
    .1.3.6.1.2.1.1.5.0

    Afficher la description complète d’un objet :

    $ snmptranslate -Td SNMPv2-MIB::sysUpTime.0
    SNMPv2-MIB::sysUpTime.0
    sysUpTime OBJECT-TYPE
      SYNTAX TimeTicks
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION "The time since the network management portion..."

    Recherche et exploration

    Rechercher tous les objets contenant « interface » :

    $ snmptranslate -Tz | grep -i interface

    Afficher l’arborescence d’une MIB :

    $ snmptranslate -Tp -IR system
    +--system(1)
       |
       +-- -R-- String    sysDescr(1)
       +-- -R-- ObjID     sysObjectID(2)
       +-- -R-- TimeTicks sysUpTime(3)

    Obtenir le type de données d’un objet :

    $ snmptranslate -Td ifInOctets
    IF-MIB::ifInOctets
      SYNTAX Counter32

    Options utiles

    -IR : Recherche aléatoire (pas besoin du préfixe MIB complet)

    $ snmptranslate -IR -On sysName
    .1.3.6.1.2.1.1.5

    -TB : Afficher l’OID avec tous les nœuds parents

    $ snmptranslate -TB SNMPv2-MIB::sysDescr
    .iso.org.dod.internet.mgmt.mib-2.system.sysDescr

    -m ALL : Charger toutes les MIB disponibles

    $ snmptranslate -m ALL -IR hrSystemUptime
    HOST-RESOURCES-MIB::hrSystemUptime

    Cas pratiques

    Vérifier qu’une MIB propriétaire est bien chargée, explorer la structure d’objets inconnus, ou convertir rapidement des OID dans des scripts de monitoring. snmptranslate transforme des séquences numériques cryptiques en informations exploitables.

  • SNMPv2 et SNMPv3 sur un switch Cisco : tutoriel pratique avec snmpget et snmpwalk

    Dans cet article, nous allons utiliser le protocole SNMP sur un switch Cisco à l’aide des outils snmpget et snmpwalk.
    Objectif : comprendre comment interroger un équipement réseau et récupérer des informations utiles .

    Ce tutoriel est basé sur des environnements Cisco IOS et Debian/Ubuntu.

    (suite…)
  • Sécuriser son réseau Cisco : DHCP Snooping, Dynamic ARP Inspection et IP Source Guard

    Dans un réseau d’entreprise, les attaques de type DHCP rogue, ARP spoofing ou usurpation d’adresse IP sont fréquentes et simples à réaliser. Les switchs Cisco proposent plusieurs mécanismes de sécurité de niveau 2 pour se protéger efficacement.
    Dans cet article, nous allons voir comment configurer :

    • DHCP Snooping
    • Dynamic ARP Inspection (DAI)
    • IP Source Guard
    (suite…)