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é.