سؤال

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

إذًا ما هو الحل الأفضل وسهل الإعداد والصيانة هنا؟هل من السهل إعداد صندوق حماية لينكس لوضع المستخدم على دبيان؟أو ربما سجن chroot؟أرغب في الوصول بسهولة إلى الملفات الموجودة داخل صندوق الحزن من الخارج.هذه واحدة من تلك الأوقات التي أصبح فيها من الواضح جدًا بالنسبة لي أنني مبرمج ولست مسؤول نظام.أي مساعدة سيكون محل تقدير كبير!

هل كانت مفيدة؟

المحلول

يمكن أن تكون سجون Chroot غير آمنة حقًا عند تشغيل بيئة رمل كاملة.يتمتع المهاجمون بإمكانية الوصول الكامل إلى وظائف kernel، ويمكنهم على سبيل المثال تحميل محركات الأقراص للوصول إلى النظام "المضيف".

أود أن أقترح عليك استخدام linux-vserver.يمكنك أن ترى linux-vserver كسجن chroot محسّن مع تثبيت دبيان كامل بداخله.إنه سريع حقًا لأنه يعمل ضمن نواة واحدة، ويتم تنفيذ جميع التعليمات البرمجية محليًا.

أنا شخصيًا أستخدم linux-vserver لفصل جميع خدماتي ولا توجد سوى اختلافات ملحوظة في الأداء.

الق نظرة على لينكس vsserver ويكي للحصول على تعليمات التثبيت.

تحياتي دينيس

نصائح أخرى

أؤيد ما يقوله زاردياس، لكن أوصي به أوبنفز بدلاً من.

إنه مشابه لـ Linux-Vserver، لذا قد ترغب في مقارنة هذين الاثنين عند السير في هذا الطريق.

لقد قمت بإعداد خادم ويب باستخدام خادم http وكيل (nginx)، والذي يقوم بعد ذلك بتفويض حركة المرور إلى حاويات OpenVZ مختلفة (استنادًا إلى اسم المضيف أو المسار المطلوب).داخل كل حاوية يمكنك إعداد Apache أو أي خادم ويب آخر (على سبيل المثال.nginx، lighttpd، ..).بهذه الطريقة، لن يكون لديك Apache واحد لكل شيء، ولكن يمكنك إنشاء حاوية لأي مجموعة فرعية من الخدمات (على سبيل المثال.لكل مشروع).

يمكن بسهولة تحديث حاويات OpenVZ تمامًا ("for i in $(vzlist);قم بإجراء ترقية vzctl exec apt-get؛منتهي")

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

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

للتأكد مما قيل، نادرًا ما تكون سجن CHRoot فكرة جيدة، على الرغم من النية، من السهل جدًا الهروب منها، في الواقع لقد رأيت ذلك من قبل المستخدمين عن طريق الخطأ!

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

أجد أنه من المدهش أن أحدا لم يذكر ذلك mod_chroot و suEXEC, ، وهي الأشياء الأساسية التي يجب أن تبدأ بها، وعلى الأرجح الأشياء الوحيدة التي تحتاجها.

يجب عليك استخدام SELinux.لا أعرف مدى دعمه على دبيان؛إذا لم يكن الأمر كذلك، فما عليك سوى تثبيت Centos 5.2 مع تمكين SELinux في جهاز افتراضي.لا ينبغي أن يتطلب الأمر الكثير من العمل، وأكثر أمانًا من أي عملية تجذير للهواة، وهي ليست آمنة كما يعتقد معظم الناس.يتمتع SELinux بسمعة طيبة لأنه يصعب إدارته، ولكن إذا كنت تقوم بتشغيل خادم ويب فقط، فلا ينبغي أن يكون ذلك مشكلة.قد يتعين عليك فقط القيام ببعض "sebool" للسماح لـ httpd بالاتصال بقاعدة البيانات، ولكن هذا كل ما في الأمر.

على الرغم من أن كل ما سبق يعد اقتراحات جيدة، إلا أنني أقترح أيضًا إضافة قاعدة iptables لمنع اتصالات الشبكة الصادرة غير المتوقعة.نظرًا لأن أول شيء تفعله معظم عمليات استغلال الويب الآلية هو تنزيل بقية حمولتها، فإن منع الاتصال بالشبكة يمكن أن يؤدي إلى إبطاء المهاجم.

يمكن استخدام بعض القواعد المشابهة لهذه (احذر، قد يحتاج خادم الويب الخاص بك إلى الوصول إلى بروتوكولات أخرى):Iptables -append outputing -m Owner -Ouid -Owner Apache -M State -state ، ذات الصلة -قبول Iptables -append outputire -M -مالك -Ouid Apache -protocol udp -destination -dest -port 53 -jump قبول iPtables -append outputing -m المالك -مالك apache -jump رفض

إذا كنت تستخدم Debian، فإن debootstrap هو صديقك إلى جانب QEMU أو Xen أو OpenVZ أو Lguest أو عدد كبير من الآخرين.

اصنع آلة افتراضية.جرب شيئًا مثل vmware أو qemu

ما هي المشكلة التي تحاول حقا حلها؟إذا كنت تهتم بما هو موجود على هذا الخادم، فأنت بحاجة إلى منع المتسللين من الدخول إليه.إذا كنت تهتم بما قد يفعله المتسللون بخادمك، فأنت بحاجة إلى تقييد قدرات الخادم نفسه.

لا يمكن حل أي من هاتين المشكلتين باستخدام المحاكاة الافتراضية، دون إصابة الخادم نفسه بالشلل الشديد.أعتقد أن الإجابة الحقيقية لمشكلتك هي:

  1. تشغيل نظام تشغيل يوفر لك آلية سهلة لتحديثات نظام التشغيل.
  2. استخدم البرنامج الذي يوفره البائع.
  3. النسخ الاحتياطي لكل شيء في كثير من الأحيان.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top