Mon objectif est de limiter l'accès aux conteneurs Docker à seulement quelques adresses IP publiques. Existe-t-il un processus simple et reproductible pour atteindre mon objectif? Comprendre uniquement les bases d'iptables lors de l'utilisation des options par défaut de Docker, je trouve cela très difficile.
Je voudrais exécuter un conteneur, le rendre visible sur Internet public, mais autoriser uniquement les connexions à partir d'hôtes sélectionnés. Je m'attendrais à définir une politique d'entrée par défaut de REJET et à n'autoriser que les connexions de mes hôtes. Mais les règles et chaînes NAT de Docker se mettent en travers et mes règles INPUT sont ignorées.
Quelqu'un peut-il fournir un exemple de la façon d'atteindre mon objectif compte tenu des hypothèses suivantes?
- Hôte 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 toute connexion à l'hôte / conteneur 3306 sauf à partir des hôtes 4.4.4.4 et 8.8.8.8
Je suis heureux de ne lier le conteneur qu'à l'adresse IP locale, mais j'aurais besoin d'instructions sur la façon de configurer correctement les règles de transfert iptables qui survivent au processus de docker et aux redémarrages de l'hôte.
Merci!
--ctdir
? J'utilise-m conntrack --ctstate NEW --ctorigdstport 3306 --ctdir ORIGINAL