هدفي هو الحد من الوصول إلى حاويات عامل الميناء إلى عدد قليل من عناوين إب العامة. هل هناك بسيط, عملية قابلة للتكرار لتحقيق هدفي? فهم فقط أساسيات إيبتبلس أثناء استخدام الخيارات الافتراضية عامل الميناء ، وأنا أجد أنه من الصعب جدا.
أرغب في تشغيل حاوية ، وجعلها مرئية للإنترنت العام ، ولكن لا تسمح إلا بالاتصالات من مضيفين محددين. أتوقع تعيين سياسة إدخال افتراضية للرفض ثم السماح بالاتصالات من مضيفي فقط. ولكن قواعد نات دوكر وسلاسل في الحصول على الطريق ويتم تجاهل قواعد الإدخال بلدي.
يمكن للشخص أن يقدم مثالا على كيفية تحقيق هدفي بالنظر إلى الافتراضات التالية?
استضافة الملكية الفكرية العامة 80.80.80.80 على إيث0
استضافة الملكية الفكرية الخاصة 192.168.1.10 على إيث1
docker run -d -p 3306:3306 mysql
حظر كل الاتصال بالمضيف / الحاوية 3306 باستثناء المضيفين 4.4.4.4 و 8.8.8.8
أنا سعيد لربط الحاوية إلى عنوان إب المحلي فقط ولكن سوف تحتاج إلى تعليمات حول كيفية إعداد قواعد إعادة توجيه إيبتبلس بشكل صحيح التي البقاء على قيد الحياة عملية عامل الميناء وإعادة تشغيل المضيف.
شيئان يجب وضعهما في الاعتبار عند العمل مع قواعد جدار حماية عامل الميناء:
لتجنب القواعد الخاصة بك يجري مضروب من قبل عامل الميناء ، استخدم DOCKER-USER سلسلة
يقوم عامل الميناء بتعيين المنفذ في PREROUTING سلسلة من nat الجدول. يحدث هذا قبل filter القواعد ، لذلك --dest و --dport سوف نرى إب الداخلي وميناء الحاوية. للوصول إلى الوجهة الأصلية ، يمكنك استخدام -m conntrack --ctorigdstport.
على سبيل المثال:
iptables -A DOCKER-USER -i eth0 -s 8.8.8.8 -p tcp -m conntrack --ctorigdstport 3306 --ctdir ORIGINAL -j ACCEPTiptables -A DOCKER-USER -i eth0 -s 4.4.4.4 -p tcp -m conntrack --ctorigdstport 3306 --ctdir ORIGINAL -j ACCEPTiptables -A DOCKER-USER -i eth0 -p tcp -m conntrack --ctorigdstport 3306 --ctdir ORIGINAL -j DROP
ملاحظة: بدون --ctdir ORIGINAL، وهذا من شأنه أيضا تطابق حزم الرد يعود للاتصال من الحاوية إلى المنفذ 3306 على بعض الخادم الآخر ، وهو يكاد يكون من المؤكد ليس ما تريد! أنت لا تحتاج بدقة هذا إذا مثلي القاعدة الأولى هي -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT، حيث سيتعامل ذلك مع جميع حزم الرد، ولكن سيكون من الآمن الاستمرار في استخدامها --ctdir ORIGINAL على أي حال.
على عكس عامل الميناء سلسلة لا يتم إعادة تعيين على بناء / بدء الحاويات. لذلك يمكنك إضافة هذه الأسطر إلى تكوين إيبتبلس / البرنامج النصي لتوفير الخادم حتى قبل تثبيت عامل الميناء وبدء الحاويات:
تسمح قواعد إعادة توجيه عامل الإرساء بجميع عناوين البرامج المتكاملة للمصدر الخارجي بشكل افتراضي. للسماح فقط إب أو شبكة محددة للوصول إلى الحاويات ، إدراج قاعدة نفي في الجزء العلوي من سلسلة تصفية عامل الميناء. على سبيل المثال ، لتقييد الوصول الخارجي بحيث المصدر الوحيد إب 8.8.8.8 يمكن الوصول إلى الحاويات ، يمكن إضافة القاعدة التالية: iptables -I DOCKER -i ext_if ! -s 8.8.8.8 -j DROP