عامل الميناء & شوروال

أنا باستخدام شوروال على الخادم الخاص بي بسيطة جدار حماية مستقل وأود أن استخدام عامل الميناء كذلك.

باستخدام حاوية عامل الميناء و إعادة توجيه المنفذ يقوم عامل الميناء بإعداد قواعد/سلاسل إيبتبلس الخاصة به والتي سيتم قتلها إذا تم إعادة تشغيل شوروال. لذلك سوف تصبح الحاوية غير قابل للوصول.

هل تمكن أي شخص من حفظ / استعادة قواعد عامل الميناء عند إعادة تشغيل شوروال أو هل لدى أي شخص حل آخر?

انظر أيضا:

يجب أن تضمن تغييرات التكوين التالية تدفق حركة المرور بين عامل الميناء ومضيف شوروال. تم اختباره على شوروال 4.5.21.9 ولكن يجب أن ينطبق على أحدث الإصدارات:

/ الخ / شوروال / شوروال.أسيوط

تأكد من تمكين إعادة توجيه إب (معظم عناصر التكوين هي نعم / لا، ولكن هذا واحد هو"على"):

IP_FORWARDING=On

/ الخ / شوروال / ماسك

تمكين التنكر (نات) لشبكة عامل الميناء الخاصة بك (إذا كنت تستخدم شبكة مختلفة، أي إطلاق عامل الميناء مع --bip=#.#.#.#/#، ثم تغيير وفقا لذلك). التغيير eth0 إلى أي واجهة على الجهاز المضيف مع اتصال خارجي:

#INTERFACE:DEST         SOURCEeth0                    172.17.0.0/16

/ الخ / شوروال / واجهات

إضافة إدخال واجهة حتى شوروال يعرف أي واجهة dock المنطقة تتعلق:

#ZONE           INTERFACE               OPTIONSdock            docker0

/ الخ / شوروال / المناطق

إنشاء منطقة جديدة ؛ ملاحظة, docker طويل جدا وسيسبب خطأ" اسم منطقة غير صالح".

#ZONE   INTERFACEdock    ipv4

/ الخ / شوروال / السياسة

ربما تريد السماح لحاويات عامل الميناء بالتحدث إلى الجهاز المضيف و الإنترنت ، لذلك هذا هو نقطة انطلاق جيدة:

#SOURCE         DEST            POLICY# ...(other policies)...dock            all             ACCEPT# ...(other policies, catch-all)...

قد تحتاج أيضا مماثلة ACCEPT سياسة المرور من fw إلى dock، إذا لم تفتحه بالفعل مع fw إلى all.

يمكنك تشديد هذا الأمر كذلك في السياسة أو القواعد الملفات حسب الحاجة. على سبيل المثال ، لا يسمح ما سبق صراحة لحركة المرور الخارجية بالوصول إلى حاويات عامل الإرساء ؛ تحقق من المناطق/السياسات/القواعد الأخرى لذلك.

منذ قدم عامل الميناء ميزة عزل الشبكة، والحلول الأخرى المذكورة هنا لم تعد كافية إذا كنت ترغب في استخدام شبكات مخصصة. شوروال 5.0.6 يدخل دعم عامل الميناء بما في ذلك شبكات عامل الميناء. هذا:

  • يسمح شوروال وعامل الميناء أن تبدأ / توقف / إعادة تشغيل في أي أمر
  • يتجنب الحاجة إلى الحفاظ على البرنامج النصي التمديد

يمكنك التأكد من أن مجموعة قواعد عامل الميناء ينجو من إعادة تشغيل شوروال عن طريق إنشاء البرامج النصية التمديد الذي حفظ DOCKER سلسلة قبل إعادة التشغيل ، ومن ثم استعادته مرة أخرى بعد ذلك. لقد وضعت للتو وظيفة مع مثال على كيفية القيام بذلك، على الرغم من أنني متأكد من أنها بعيدة كل البعد عن الطريقة الوحيدة الممكنة.

فقط أحسب ذلك على صندوقي. تأكد / الخ / شوروال.أسيوط لديها:

IP_FORWARDING=Yes

عامل الميناء يعتمد على إعادة التوجيه ، وأنا متباعدة أن 'دمية' يضعها على 'لا' على جميع الخوادم الخاصة بي.

تحديث: ربما تحتاج أيضا إلى تنكر حركة المرور القادمة من عامل الميناء من واجهة وان الخاص بك.

تحرير /etc/shorewall/masq وسوف تحتاج إلى خط مماثل ل:

br0 172.17.0.0/12

في هذه الحالة ، واجهة وان بلدي هو في الواقع بر 0 (جسر) ، ولكن لك ربما يكون شيئا مثل إيث0. (استخدام ifconfig لرؤية الواجهات الخاصة بك وعناوين إب الخاصة بهم). على جهاز عامل الميناء يستخدم 172.17.0.0 / 24 وهو نطاق عنوان خاص رفك 1918. قد يختلف هذا على أنظمة أخرى ، ولكن يمكنك رؤية النطاق باستخدام ifconfig مرة أخرى للبحث عن واجهة docker0.

أحد الخيارات الممكنة هو تشغيل عامل الميناء مع net صافي = الخيار المضيف ، للسماح للحاويات الوصول إلى شبكة المضيف دون إعادة توجيه إب و نات.

يمكن إعادة تشغيل خدمة عامل الميناء دون التأثير على الحاويات قيد التشغيل ، ويمكن تشغيلها بعد إعادة تشغيل شوروال لإعادة تحميل قواعد محددة عامل الميناء. من الواضح أنه سيكون هناك وقت قصير حيث يتم تعطيل الشبكات إلى الحاوية (الحاويات).

وهذا صحيح على الأقل على بلدي عدد قليل من تثبيت ارشلينوكس.

إجراء التحديث لا بورغيت إيبتبل لذلك هذا إذا كنت ترغب فقط في تحديث القواعد أو السياسات ، يمكنك فقط تشغيل التحديث بدلا من إعادة التشغيل :

sudo shorewall refresh

ومن الواضح أن المشكلة لا تزال إذا كنت حقا بحاجة إلى إعادة تشغيل شوروال.بعد ذلك ، يجب عليك إعادة تشغيل عامل الإرساء وإعادة تشغيل الحاويات الخاصة بك.