Моя мета - обмежити доступ до контейнерів докера лише кількома публічними IP-адресами. Чи є простий, повторюваний процес для досягнення моєї мети? Розуміючи лише основи iptables під час використання параметрів за замовчуванням Docker, мені це дуже важко.
Я хотів би запустити контейнер, зробити його видимим для загальнодоступного Інтернету, але дозволити з'єднання лише від вибраних хостів. Я очікував би встановити політику INPUT за замовчуванням REJECT, а потім дозволити лише з'єднання від своїх хостів. Але правила NAT і ланцюги Docker заважають, і мої правила INPUT ігноруються.
Чи може хтось навести приклад того, як досягти своєї мети, враховуючи наступні припущення?
- Приймаюча громадськість IP 80.80.80.80 на eth0
- Приймає приватний IP 192.168.1.10 на eth1
docker run -d -p 3306:3306 mysql
- Блокуйте всі з'єднання з хостом / контейнером 3306, крім хостів 4.4.4.4 та 8.8.8.8
Я радий прив’язати контейнер лише до локальної ip-адреси, але мені знадобляться інструкції, як правильно встановити правила пересилання iptables, які переживуть процес докера та перезапуск хоста.
Спасибі!
--ctdir
? Я використовую-m conntrack --ctstate NEW --ctorigdstport 3306 --ctdir ORIGINAL