Comment sécuriser les accès aux conteneurs avec une liste blanche d’adresses IP dans Traefik

,
traefik white list ip

Dans un environnement où les applications et services sont conteneurisés, il est crucial de sécuriser l’accès aux conteneurs pour éviter toute intrusion non autorisée. Traefik, en tant que reverse proxy et load balancer, offre une solution efficace grâce aux middlewares IPWhitelist, permettant de restreindre l’accès à certaines adresses IP autorisées.

Dans cet article, nous verrons comment mettre en place une liste blanche d’IP pour sécuriser vos conteneurs gérés avec Traefik.


Pourquoi utiliser une liste blanche d’IP avec Traefik ?

L’activation d’une liste blanche d’IP permet de filtrer les connexions entrantes et d’autoriser uniquement les adresses IP de confiance. Cette approche est particulièrement utile pour :

  • Protéger les interfaces d’administration (ex : pgAdmin, PHPMyAdmin, outils internes).
  • Restreindre l’accès aux API privées.
  • Limiter les connexions à certaines plages IP spécifiques (ex : bureaux d’entreprise, VPN).

Mise en place d’un filtrage IP avec Traefik

1. Activer le middleware IPWhiteList

Traefik propose un middleware intégré qui permet de définir une liste d’adresses IP autorisées. Pour l’activer, il suffit d’ajouter la configuration suivante dans le docker-compose.yml ou via un fichier de configuration dynamique.

Exemple avec Docker Compose

services:
  traefik:
    image: traefik:v3
    container_name: traefik
    command:
      - "--entrypoints.web.address=:80"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    networks:
      - web

  whoami:
    image: traefik/whoami
    container_name: whoami
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`whoami.example.com`)"
      - "traefik.http.routers.whoami.entrypoints=web"
      - "traefik.http.middlewares.whitelist.ipwhitelist.sourcerange=192.168.1.0/24,203.0.113.42"
      - "traefik.http.routers.whoami.middlewares=whitelist"

networks:
  web:
    external: true

2. Explication de la configuration

  • traefik.http.middlewares.whitelist.ipwhitelist.sourcerange : Définit les adresses IP autorisées.
  • traefik.http.routers.whoami.middlewares=whitelist : Associe le middleware à la route whoami.
  • 192.168.1.0/24,203.0.113.42 : Permet l’accès aux IP du réseau interne 192.168.1.x et à une adresse IP publique spécifique 203.0.113.42.

3. Tester la sécurité

Pour vérifier que la restriction fonctionne :

  • Depuis une IP autorisée : Accès normal au service.
  • Depuis une IP non autorisée : Le serveur renvoie une erreur 403 (Forbidden).

Vous pouvez tester cela avec curl :

Si votre IP est bloquée, vous verrez une réponse 403 Forbidden.

curl -v http://whoami.example.com

Conclusion

En activant le middleware IPWhitelist dans Traefik, vous renforcez la sécurité de vos conteneurs en empêchant les accès non autorisés. Cette solution est idéale pour restreindre l’accès aux services sensibles et garantir une meilleure protection de vos applications.

Chez IsiNeva, nous mettons en place ces bonnes pratiques pour sécuriser les infrastructures de nos clients et garantir un environnement de travail fiable et optimisé.

Liens externes