المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : لينكس كيف تعطل الخدمات غير الضرورية



ابو حجاج
25-05-2005, 11:07 AM
الموضوع يتكلم عن الديمونات مع غلق و فتح البورتات على الينكس



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



بإلقاء نظرة على ملف /etc/services يمكننا مشاهدة جميع المنافذ المعرفة لكل خدمة. اكتب الأمر less /etc/services لاستعراض محتويات الملف. ويمكننا أيضاً التعرف على اسم الخدمة من خلال الجزء أو العمود الأول، ثم يأتي بعده رقم المنفذ ونوع البروتوكول، ثم في الأخير الأسماء الأخرى لذات الخدمة إن وجدت (مثلا time تعرف أيضاً باسم timeserver)، بالإضافة إلى بعض التعليقات التوضيحية. ومن الجدير بالذكر أن أرقام المنافذ هذه موحدة لجميع أنظمة يونيكس. مثلاً تيلنت يأخذ رقم المنفذ 23، وإف تي بي يأخذ المنفذ رقم 21، وهكذا. ويمكن ملاحظة أن هناك نوعين من البروتوكولات: TCP و UDP، والفرق بينهم هو أن الأول يتأكد من أن البيانات المرسلة تم توصيلها إلى وجهتها، بينما الأخير لا تتوفر فيه هذه الميزة.



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



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



كل خدمة من الخدمات تم إعدادها بشكل منفصل لتعمل مع xinetd سواء داخل ملف /etc/xinetd.conf أو بملف خاص بها داخل المجلد /etc/xinetd.d . ألق نظرة داخل المجلد /etc/xinetd.d وتفحص محتواياته. سوف تجد مجموعة ملفات مخصصة لكل خدمة. أنظر مثلاً ماذا يحوي ملف telnet، لاحظ أن خادم تيلنت الحقيقي هو in.telnetd. في الغالب جميع الخادمات تبدأ بـ in وتنتهي بـ d لتدل على دايمن.



قد يقوم بعض المستخدمين بتفعيل بعض الخدمات أثناء تنصيب لينكس من دون انتباه منهم. ولا شك أن كل مستخدم لجهاز الكمبيوتر يتوقع من جهازه أن يعمل بأسرع صورة ممكنة، ولكن بعض الخدمات تستنزف موارد الجهاز وقد تعيق إتمامه لعمله على الوجه المطلوب. ولكن هذا لايعني أن لينكس غير قادر على القيام بأكثر من وظيفة في وقت واحد. ومن أجل رفع أداء الجهاز يجب تعطيل بعض الخدمات التي لانحتاجها. في البداية نفذ أمر ps ax لتأخذ فكرة عن العمليات النشطة التي يعالجها الجهاز. أيضاً نفذ الأمر netstat –lp (بشرط تنفيذه من حساب root) لتشاهد جميع منافذ الجهاز التي تكون في حالة الإنصات LISTEN وكذلك جميع البرامج التي تنصت على كل منفذ. ويفضل استخدام أمر less معه لأجل قراءة مخرجاته بشكل مجزء.



لكي نقوم بتعطيل خدمة ما، يلزمنا نقل الملف الخاص بها داخل المجلد xinetd.d إلى مجلد آخر، قم بإنشاء مجلد خاص بملفات الخدمات المعطلة داخل مجلد xinetd.d، وليكن اسمه disable (لا يمكن عمل ذلك إلا من حساب root) ثم أنقل ملف الخدمة المطلوب تعطيلها إليه. بعد ذلك يلزمنا إعادة تشغيل xinetd لكي تصبح التغييرات سارية المفعول، ويتم ذلك من خلال الأمر التالي:



/etc/rc.d/init.d/xinetd restart



وإذا أردت تفعيل إحدى الخدمات المعطلة من جديد، كل ما عليك فعله هو إعادة الملف الخاص بالخدمة إلى مكانه الأصلي (xinetd.d) ثم تكرر الأمر السابق.



فيما يلي بعض الخدمات غير الضرورية:



portmap, rpc.mountd, rpc.nfsd, smbd, nmpd, named, telnet, rlogin , rexec, ftp, finger





المراجع:



1) Linux Server Hacks, Rob Flickenger (O'Reilly & Associates, Inc., 2003, ISBN 0-596-00461-3).



2) Linux Pocket Guide, Daniel J. Barrett (O'Reilly & Associates, Inc., 2004, ISBN 0-596-00628-4).



3) Linux: Rute User's Tutorial and Exposition, Paul Sheer (Prentice Hall, 2002, ISBN 0-13-033351-4).

أعداد أخي الكريم محمد السعيد

أخوكم
أبو حجاج

mobarmeg
26-05-2005, 12:21 AM
شكرا لك يا بو حجاج وجزك الله الف خير

سلام عليكم