على خادم معدني عارية يتم تثبيت اثنين من الشياطين عامل الميناء وتشغيلها.
عامل الميناء الرئيسي الخفي يدير حاويات طلبي تعريض 80/443 إلى العالم الخارجي.
البرنامج المساعد عامل الميناء الخفي يدير بعض الحاويات التي يقدمها العميل والتي تتواصل مع طلبي عبر 80/443.
أود منح العميل حق الوصول إلى واجهة برمجة التطبيقات (2376) من البرنامج المساعد عامل الميناء الخفي بحيث يمكن للعميل نشر / بدء / إيقاف حاوياته الخاصة. سيتمكن العميل فقط من الوصول إلى واجهة برمجة التطبيقات وليس إلى المضيف (سش).
المشكلة التي أواجهها حاليا هي ، ماذا لو كان العملاء يديرون حاوية تفعل شيئا غير آمن مثل docker run -v /:/host/root Ubuntu rm -rf /host/root.
سؤالي هو ماذا يمكنني أن أفعل لمنع البرنامج المساعد عامل الميناء الخفي من تصاعد الجذر / أو أي دليل آخر خارج /home/user/,
هل هو خيار لبدء الخفي عامل الميناء في /home/user/?
هل يمكنني استخدام بعض لسم (وحدات الأمن لينكس سيلينوكس / أبارمور) السحر لمنع الخفي عامل الميناء لتركيب بعض أو كل مسارات المضيف باستثناء المستخدمين المنزل أو فار/عامل الميناء/ليبس?
يمكن --userns-remap مساعدتي لتحقيق هدفي?
هل هي أي خيارات أخرى متاحة باستثناء نظام رصد السفن?
ينتمي الخادم بالكامل إلى عميل واحد. لذا فإن الأمان أو تسرب البيانات ليس شاغلي الأساسي. ما أريد حقا لمنع هو أن شخصا ما في البرنامج المساعد الخفي يفعل شيئا غبيا ، التي تؤثر على الحاويات بلدي التي تعمل في عامل الميناء الرئيسي الخفي. وأود أن تبقي العجاف والتمسك عامل الميناء سير العمل فقط ولا لن لإعداد سير عمل إضافي لإنشاء فم.
بعد تغيير سياق الأمان إلى عامل ميناء واحد يمكن استخدامه:
$ sudo chcon -Rt svirt_sandbox_file_t sample_script.sh$ ls -lrtZ sample_script.sh -rw-------. 1 david david unconfined_u:object_r:svirt_sandbox_file_t:s0 20 Oct 3 17:18 sample_script.sh
الحاوية لديها الآن حق الوصول إلى الملف:
$ docker run -v /home/david/sample_script.sh:/sample_script.sh --rm ubuntu bash sample_script.shHello, world
نعم ، سيلينوكس يمنع هذا الهجوم. تبين أنه لا يعمل يجعل لعرض لطيف. استخدام عامل الميناء على توزيعة القائم على قبعة حمراء للوصول إلى حماية سيلينو. في التوزيعات القائمة على دبيان ، لم يتم الحفاظ على سيلينو تاريخيا بشكل جيد.