Mon objectif est de limiter l'accès aux conteneurs Docker à quelques adresses IP publiques. Existe-t-il un processus simple et reproductible pour atteindre mon objectif ? Ne comprenant que les bases d'iptables tout en utilisant les options par défaut de Docker, je trouve cela très difficile.
J'aimerais faire fonctionner un conteneur, le rendre visible sur l'Internet public, mais n'autoriser les connexions qu'à partir de certains hôtes. Je m'attendrais à ce que la politique d'entrée par défaut soit REJECT et qu'elle n'autorise que les connexions provenant de mes hôtes. Mais les règles et les chaînes NAT de Docker s'interposent et mes règles INPUT sont ignorées.
Quelqu'un peut-il me donner un exemple de la manière d'atteindre mon objectif en partant des hypothèses suivantes ?
- Hôte de l'IP publique 80.80.80.80 sur eth0
- Hôte IP privé 192.168.1.10 sur eth1
docker run -d -p 3306:3306 mysql
- Bloquer toutes les connexions vers l'hôte/le conteneur 3306 à l'exception des hôtes 4.4.4.4 et 8.8.8.8
Je suis heureux de lier le conteneur à l'adresse IP locale uniquement, mais j'aurais besoin d'instructions sur la manière de configurer correctement les règles de transfert iptables qui survivent aux redémarrages du processus de docker et de l'hôte.
Gracias.