Académique Documents
Professionnel Documents
Culture Documents
الدصدار 14.04
ترجمة
»سطر أوامر ليننسكس« وشاركت في تأليف كتاب »تعلتتم البرمجتتة بلغتتة .«PHP
أكتتتتتب حال صيتتتتا فتتتتي أكاديميتتتتة حستتتتوب ،ويمسكنتتتتك التواصتتتتل معتتتتي عتتتتبر بريتتتتدي
. اللسكتروظني:
هذا الكتاب
ن
أظنتج هذا السكتاب برعاية شركة حسوب وأكاديمية حسوب.
أكاديمية حسوب
تهتتتدف أكاديميتتتة حستتتوب إلتتتى تتتتوفير مقتتتال ت ودروس عاليتتتة
Academy.hsoub.com
شركة حسوب
Hsoub.com
▲
الفهرس
تقديم 11 .........................................................
رافقتتتت زيتتتادة استتتتخدام شتتتبسكة الظنتتتترظنت زيتتتادصة كتتتبيرصة فتتتي عتتتدد الحواستتتيب التتتتي تعمتتتل
وختتتتواديم الملفتتتا ت وخلفتتته؛ وقتتتد أثبتتتت ظنظتتتام ليننسكتتتتس Linuxتفتتتتوقه فتتتي مجتتتال الختتتتواديم،
صا بعد الظنتشار الواسع لتوزيعة أوبنتو الخاصة بتتالخواديم؛ التتذي نيعنتتى هتتذا التتدليل بشتترح
وخصو ص
لذا جاء هذا السكتاب كترجمة للدليل الرسمي لدارة أوبنتو للخواديم » .«Ubuntu Server Guide
آمتتل أن يسكتتون إضتتافصة مفيتتد صة للمسكتبتتة العربيتتة؛ وأن يفيتتد القتتارئ العربتتي فتتي تعلتتم إدارة أحتتد أشتتهر نظنظتتم
ي التوفيق.
تشغيل الخواديم .والله ول ي
هذا السكتاب مرختتص بمتتوجب رخصتة المشتتاع البتداعي » Creative Commonsنظنستب النمصتننف -
http://creativecommons.org/licenses/by-sa/3.0
أه صل بتتتك فتتتي دليتتتل إدارة ختتتواديم أوبنتتتتو! ستتتتجد هنتتتا معلومتتتا ت
ت حتتتول تثتتتبيت وإعتتتداد مختلتتتف
تطبيقا ت الخادوم؛ يوضح هذا الدليل طريقة إجراء المهام لتهيئة وتخصيص ظنظامك خطوصة بخطوة.
يفترض هذا الدليل أظنك علتى درايتتة أساستيتة بنظتام أوبنتتو ،بعتض معلومتا ت التثتتبيت مغطتاةة
.1الدعم
هنالتتك طريقتتتان نتتتدنعم فيهمتتا ظنستتخة الختتادوم متتن أوبنتتتو :التتدعم التجتتاري ،ودعتتم المجتمتتع؛
حيث أن الدعم التجتتاري الرئيستي )وتمويتل التطتتوير( متتتوفر متن شتركة كاظنوظنيسكتال )Canonical
،(Ltd.حيث يوفرون عقود دعتم ذا ت سع تر مقبول على كل حاسوب مسكتبي ،أو على كتل الختتادوم.
توزيعتتة ممسكنتتة ،نيتتونفر التتدعم عتتبر عتتددة قتتوائم بريديتتة ،وقنتتوا ت ،IRCوالمنتتتديا ت ،والمتتدوظنا ت ،وكتتذلك
ويسكي … إلخ .يمسكن أن تسكون السكمية السكبيرة متن المعلومتا ت نمنشتدتتة ،لسكتن يمسك ن لعبتارة بحتث جيتدة فتي
محرك البحث أن توفر إجابصة لسئلتك ،راجع صفحة »دعم أوبنتو« لمزيتد من المعلوما ت.
يوفر هذا الفصل لمحصة عامصة سريعصة عن تثتتبيت ظنستخة الختتادوم متتن أوبنتتتو ،14.04للمزيتتد متتن
.1التحضير للتثبيت
يشرح هذا القسم النواحي المختلفة التي يجب أن تؤخذ بعين العتبار قبل البدء بالتثبيت.
تتتتتدعم ظنستتتتخة الختتتتادوم متتتتن أوبنتتتتتو 14.04ثلث معماريتتتتا ت رئيستتتتية :إظنتتتتتل ،x86و ،AMD64
و ARM؛ يعتترض الجتتدول التتتي مواصتتفا ت العتتتاد المستحستتنة؛ لسكتتن اعتمتتاصدا علتتى استتتخدامك للنظتتام،
ربما يمسكنك تشغيل النظام بأقل من هذه المواصفا ت ،لسكن ل ينصح أبصدا بتجاهل هذه القتراحا ت.
1 خادوم
1.75غيغابايت 1غيغابايت 512ميغابايت
غيغاهرتز )قياسي(
300 خادوم
1.4غيغابايت 700ميغابايت 192ميغابايت
ميغاهرتز )الحد الدظنى(
تتوفر ظنستتخة الختادوم أساصستتا مشتتتر صكا لجميتع أظنتواع برمجيتا ت الختادوم ،حيتث تمثتتل تصتتميصما
مصتتغصرا يتتوفر منصتتت صة للختتدما ت المطلوبتتتة ،كختتدما ت مشتتاركة الملفتتا ت أو الطابعتتتا ت ،أو استضتتافة
هنالك بعض الختلفا ت بين ظنسخة الخادوم وسطح المسكتب فتتي أوبنتتتو ،عليتتك أن تلحتتظ أن
كل النستتتختين نتستتتتخدمان مستتتتودعا ت aptظنفستتتها ،ممتتتا يجعتتتل متتتن الستتتهل تثتتتبيت تطتتتبيق متتتن
تطبيقا ت الخادوم على ظنسخة سطح المسكتب ،وكذلك هو الحال في ظنسخة الخادوم.
تسكمتتتن الختلفتتتا ت بيتتتن النستتتختين فتتتي عتتتدم وجتتتود بيئتتتة النوافتتتذ Xفتتتي ظنستتتخة الختتتادوم،
في أوبنتو 10.10وما قبلها ،كان لنسختي الخادوم وسطح المسكتتتب أظنويتتة مختلفتتة؛ لسكتن أوبنتتتو
لتتم تعتتد تفصتتل الظنويتتة الخاصتتة بتتالخواديم والظنويتتة الشتتاملة ) ،(genericحيتتث دمجتتتا فتتي ظنتتواة
شاملة واحدة لتقليل عبء صياظنة النواة طوال فترة دعم الصدارة.
ملحظظظة :عنتتدما نتشتتدغل ظنستتخة 64بتتت متتن أوبنتتتو علتتى معالجتتا ت 64بتتت ،فلتتن تسكتتون محتتدوصدا بستتعة عنتتاوين
الذاكرة.
وأي ص
ضتتا علتتى كتتتاب » «Linux Kernel in a Nutshellالتتذي هتتو مصتتدر رائتتع للمعلومتتا ت حتتول
الخيارا ت المتوفرة.
يجدر بك قبل تثبيت ظنسخة الخادوم من أوبنتو أن تتأكد أنن جميع البياظنا ت على الخادوم قتتد
نظن ش
سنخت احتياطصيا ،راجع »الفصل التاسع عشر :النسخ الحتياطي«؛ لخيارا ت النسخ الحتياطي.
إذا لم تسكن هذه أول مرة نيث نبت فيهتتا ظنظتام تشتغيل علتى حاس وبك ،فربمتا علي ك إعتادة تقستيم
في أي وقت تعيد فيه تقسيم قرصك الصتتلب ،كتن مستتتعصدا لن تخستر جميتتع البياظنتا ت عليته
في حال ارتسكبت خط صأ أو حدث شيء متا بش سكل خاطئ أثنتاء التقستيم؛ وذلتك علتى الرغتم م ن أنن
أي ظنظتام تشتغيل متن قترص مضتغوط؛ وعلتى النقيتض متن ظنستخة ستطح المسكتتب ،ل تحتتوي ظنس خة
الخادوم على ظنظام تثبيت رسومي؛ حيث نتستخشدم ظنسخة الخادوم واجهصة ظنصيصة عو ص
ضا عنها.
هنالك بعض الخيارا ت الضافية لتثبيت ظنسخة الختتادوم متتن أوبنتتتو الموجتتودة فتتي قائمتتة •
القلع الرئيستتية ،يمسكنتتك تثتتبيت ختتادوم أوبنتتتو أساستتي ،أو تفحتتص قتترص CD-ROM
والتأكتتد متتن خلتتوه متتن العطتتاب ،أو التحقتتق متتن ذاكتتترة النظتتام ) ،(RAMأو القلع متتن
القرص الصلب الول ،أو إصلح ظنظتتام معطتوب؛ ستتناقش بقيتة هتذا القستم كيفيتتة تثتبيت
يسأل المثبت عن اللغة التي سيستخدمها ،وبعد ذلك سنيطنلب منك أن تختار موقعك. •
الخطوة التالية هي ستؤالك عتتن تحديتتد تخطيتتط لوحتتة المفاتيتتح الخاصتتة بتتك ،يمسكنتتك أن •
تطلب من المثبت أن يحاول أن يحددها لك ،أو بإمسكاظنك اختيارها يدوصيا من القائمة.
ثتتتم سيسكتشتتتف المثبتتتت إعتتتدادا ت العتتتتاد لتتتديك ،ثتتتم ستتتيحاول ضتتتبط إعتتتدادا ت الشتتتبسكة •
باستتتخدام ،DHCPإذا لتتم نتتتشرد استتتخدام DHCPفتتي الشاشتتة التاليتتة ،فتتاختر »رجتتوع«،
سنينعدد مستخد ةم جديد ،وسيحصل هذا المستخدم على امتيازا ت الجذر باستخدام الداة .sudo •
بعد إكمال إعدادا ت المستخدم ،سنتسأل عدما إذا أرد ت تشفير مجلد المنزل. •
ثم بإمسكاظنك الختيار بين ع ددة خيارا ت لضبط تخطيتتط القتترص الصتتلب ،بعتتد ذلتتك سنتستتأل •
عن القترص التذي تريتد تثتبيت النظتام عليته ،ستحصتل علتى ظنافتذا ت للتأكيتد قبتل أن تعيتد
كتابتتتة جتتتدول القستتتام أو قبتتتل إعتتتداد LVMاعتمتتتاصدا علتتتى تخطيتتتط القتتترص الصتتلب؛ إذا
اختر ت ،LVMفس نتسأل عتن حجتم القستم الجتذر المنطقتي؛ لخيتارا ت القتراص المتقدمتة،
الخطتتوة التيتتة فتتي عمليتتة التثتتبيت هتتي تقريتتر كيفيتتة تحتتديث النظتتام ،حيتتث هنتتاك ثلثتتة •
خيارا ت:
بتتدون تحتتديثا ت تلقائيتتة :وهتتذا متتا يتطلتتب متتن المتتدير أن يستتجل التتدخول إلتتى •
تثتتتبيت التحتتتديثا ت المنيتتتة تلقائصيتتتا :وهتتتذا متتتا ستتتيثبت حزمتتتة unattended- •
تملتتك الن الخيتتار لتثتتبيت ،أو عتتدم تثتتبيت ،العديتتد متتن مجموعتتا ت الحتتزم؛ راجتتع القستتم •
الحزم التي تريد تثبيتها ،للمزيد من المعلوما ت ،اظنظر القسم »الداة .«Aptitude
فتتتي النهايتتتة ،آختتتر خطتتتوة قبتتتل إعتتتادة القلع هتتتي ضتتتبط الستتتاعة علتتتى تتتتوقيت UTC •
)التوقيت العالمي(.
ملحظة :إذا لم تسكن راضصيا ع ن العتدادا ت الفتراضتية ف ي أديتة مرحلتة متن مراحتل التثتبيت ،فاستتخدم خاص ية
»رجتتتوع« الظتتتاهرة فتتتي أ ديتتتة ظنافتتتذة لسكتتتي تتتتذهب لقائمتتتة التثتتتبيت المفصتتتلة ،التتتتي تستتتمح لتتتك بتعتتتديل العتتتدادا ت
الفتراضية.
ربمتتا احتجتتت فتتي ظنقطتتة متتا أثنتتاء عمليتتة التثتتبيت إلتتى قتتراءة صتتفحة المستتاعدة التتتي يزودهتتا
ظنظتتام التثتتبيت ،عندئتتتذ اضتتغط علتتى .F1متترصة أختترى ،راجتتع »دليتتل تثتتبيت أوبنتتتو« للحصتتول علتتى
تعليما ت تفصيلية.
لديك خلل عملية تثبيت ظنسخة الخادوم خيا ةر لتثتتبيت حتتزم إضتتافية متتن القتترص المضتتغوط،
ض عام.خادوم :Mailهذه المجموعة نتحددد حزصما متنوعة مفيدة لخادوم بريد ذي غر ت •
قاعتتتدة بياظنتتتا ت :PostgreSQLهتتتذه المجموعتتتة تحتتتدد حتتتزم العميتتتل والختتتادوم لقواعتتتد •
بياظنا ت .PostgreSQL
وليننسكس مصعا.
خادوم جافا »تومسكتتا ت« :نتثدبتتت هتذه المجموعتة ختتادوم » ،«Apache Tomcatوالعتماديتتا ت •
اللزمة لعمله.
مضيف آل ت وهمية :تتضمن الحزم اللزمة لتشغيل آل ت وهمية تعتمد على .KVM •
تحديد الحزم يدوصيا :تنفيذ aptitudeمما يسمح لك باختيار الحزم فرادى يدوصيا. •
نتثنبت مجموعتا ت الحتزم باستتخدام الداة ،Taskselأحتد أهتم الفروقتا ت بيتن أوبنتتو )أو دبي ان(
وغيرها من توزيعا ت غنو/ليننسكس هي أن الحزم عندما نتثنبت فإظنها نتضنبط ضتتبصطا منطقصيتتا ،وتستتألك فتتي
بعتتض الحيتتان عتتن المعلومتتا ت الضتتافية المطلوبتتة؛ وبشتتسكل مشتتابه ،عنتتد تثتتبيت مجموعتتة حتتزم فتتإن
تستطيع مشاهدة قائمة بمجموعا ت الحزم المت وفرة بإدختتال المتر التتي فتي شمنحتث الطرفيتة
tasksel --list-tasks
ملحظة :سنيعنرض أي ص
ضا ف ي الناتتج مجموعتا ت الح زم متن التوزيعتا ت الخ رى المبينتة علتى أوبنتتو ،مثتل كوبنتتو
) ،(Kubuntuوايتتتديوبوظنتو ) ،(Edubuntuلحتتتظ أي ص
ضتتتا أظنتتتك تستتتتطيع استتتتدعاء المتتتر taskselلوحتتتده ،التتتذي
سيعرض لك قائمصة بمختلف مجموعا ت الحزم المتوفرة.
تستطيع معرفة الحزم المثبتة مع أي مجموعة باستخدام الخيار --task-packages؛ علتتى ستتبيل
المثال ،لعرض الحزم المثبتة مع مجموعة الحزم الخاصة بخادوم ،DNSفإظننا ظندخل المر التي:
bind9-doc
bind9utils
bind9
إذا لتتم نتثدبتتت أديتتة مجموعتتة حتتزم أثنتتاء عمليتتة التثتتبيت ،لسكنتتك مثصل قتترر ت أن تجعتتل ختتادوم
التي من الطرفية:
.3الترقية
هنالك عدة طرق للترقية من إصدارة أوبنتتو لخترى ،س يعطيك هتذا القستم لمحتصة عتن طريقتتة
الترقية المستحسنة.
مثنبتة تلقائصيا.
يمسكن تحتديث الظنظمتتة المبينتتة علتى دبيتان باستتخدام المتر ،apt-get dist-upgradeلسكتن
في ضبط النظام ،الذي قد يسكون لزصما في بعض الحيان بين الصدارا ت.
do-release-upgrade
do-release-upgrade -d
تحذير :التحديث إلى إصدارة تطويرية هو أمر غير مستحسن في البيئا ت الظنتاجية.
.4التثبيت المتقدم
أو اختصتتاصرا (RAIDهتتي طريقتتة لستتتخدام عتت ددة أقتتراص صتتلبة لتتتوفير تتتوازن بيتتن زيتتادة مروظنتتة
ووثوق دية تخزين البياظنا ت ،و /أو زيتتادة أداء القتتراءة والسكتابتتة ،وذلتتك بالعتمتتاد علتتى مستتتوى RAID
المطنبتتق؛ ويمسكتتن تطتتبيق RAIDإمتتا بطريقتتة برمجيتتة )حيتتث نيعلتتم ظنظتتام التشتتغيل عتتن القرصتتين
المستتتخدمين ،ويصتتون العلقتتة بينهمتتا( ،أو عتتن طريتتق العتتتاد )حيتتث يضتتاف متحسكتتم ختتاص يجعتتل
ظنظام التشغيل يعتقد أظنه يتعامل مع قرص واحد ،ويتحسكم بالقراص تحسكصما »خفصيا«(.
النستتخة البرمجيتتة متتن RAIDالموجتتودة فتتي الصتتدارا ت الحاليتتة متتن ليننسكتتس )وأوبنتتتو( هتتي
مبنيتتة علتتى محتترك » «mdadmالتتذي يعمتتل عمصل ممتتتاصزا ،وحتتتى أظنتته أفضتتل متتن متحسكمتتا ت RAID
»الفيزيائية«؛ سيد يلك هذا القسم على طريقة تثتبيت ظنس خة الختادوم متن أوبنت و باستتخدام قستنمي
RAID1علتتى قرصتتين صتتلبين منفصتتلين ،واحتتد متتن أجتتل ظنظتتام ملفتتا ت الجتتذر ) ،(/والختتر لتتذاكرة
التبديل).(Swap
التقسيم
انت شبع تعليما ت التثبيت إلى أن تصل إلى خطوة تقسيم القراص ،عندها:
اختر القرص الصلب الول ،ووافق على » هل تريد إظنشاء جدول تجزئة جديد وفارغ على .2
هتتتذا الجهتتتاز؟« ،أعتتتد هتتتذه الخطتتتوة لجميتتتع الجهتتتزة التتتتي تريتتتدها أن تصتتتبح جتتتزصءا متتتن
مصفوفة .RAID
.3اختر »المساحة المتاحة« في أول قرص ،ثم حدد »إظنشاء جزء ]قسم[ جديد«.
اختر بعدها المساحة التخزينية لهذا القسم ،سيسكون هذا القسم هو القسم الخاص بتتذاكرة .4
التبديل ،والقاعدة العامة لحجم ذاكرة التبديل هي أن تسكون ضتعف حجتم ذاكتترة الوص ول
العشوائي ) ، (RAMاختر المستاحة التخزينيتة للقستم ،ثتم اختتر »أولتي« ،ثتم »فتي البدايتة«
ملحظة :ل نيستح نسن دوصمتا أن يسكتون حجتم ذاك رة التخزيتن ضتعف حجتم التذاكرة ،وخصو ص
صتا ف ي الظنظمتة التتي
تملتتك مقتتداصرا كتتبيصرا متتن التتذاكرة ،يتوقتتف حستتاب الحجتتم التخزينتتي لقستتم ذاكتترة التبتتديل علتتى طريقتتة استتتخدام
النظام.
اختر سطر » طريقة الستخدام« من العلى ،الذي يسكتتون افتراضتتصيا »ظنظتتام ملفتتا ت ،«Ext4 .5
وغيدره إلى »حجم فيزيائي لمصفوفة ) «RAIDأو »السكتلة الجسمية لتتت ، («RAIDثتتم اختتتر
.6ولتهيئة قسم الجذر ) (/فاختر »المساحة المتاحة« مترصة أختترى علتى القتترص الصتلب الول،
اختر ما تبقى من مساحة القرص التخزينية ،ثم اضغط على متابعة ،ثم »أولي«. .7
وكما في قرص ذاكرة التبديل ،اختتتر » طريقتتة الستتتخدام« ثتتم »حجتتم فيزيتتائي لمصتتفوفة .8
،«RAIDثم اختتر ستتطر »وستم إمسكاظنيتتة القلع« ،وغيرهتتا إلتى »ممنسكتتن« ،ثتم اختتر »اظنتهتى
أعد تنفيذ الخطوا ت من ثلثة إلى ثماظنية للقراص والقسام الخرى. .9
إعداد RAID
ن
بعد أن أدعند ت القسام ،يمسكن الن ضبط المصفوفة:
عد إلى صفحة »تقسيم القراص« الرئيسية ،واختر »تهيئة مصفوفة RAIDالبرمجية« بالعلى. .1
لهذا المثال ،اختر » ،«RAID1لسكن إن كنت تستخدم ضبصطا مختلصفا ،فاختر النوع الملئتتم ) .4
ملحظة :ستحتاج إلى ثلثة أقراص على القل لستخدام ،RAID5أما استتتخدام RAID0أو ،RAID1فيلزمتتك
قرصين فقط.
أد ش
ختتتل رقتتتم الجهتتتزة الفعالتتتة ) ،(2أو مقتتتدار القتتتراص الصتتتلبة التتتتي عنتتتدك والتتتتي ترغتتتب .5
أدختتل رقتتم القتتراص البديلتتة )فتتي حالتتة حتتدوث عطتتب فتتي أحتتد القتتراص( ،التتذي هتتو »«0 .6
اختتتتر القستتتام التتتتي تريتتتد استتتتخدامها ،عموصمتتتا ،ستتتتسكون ... sda1, sdb1, sdc1إلتتتخ. .7
ستتطابق الرقام غال صبا ،وستختلف الحرف للدللة على اختلف القراص الصلبة.
.8لقسم ذاكرة التبديل ،اختر ،sda1و ،sdb1ثم اختر »متابعة« للذهاب للخطوة التية.
أعد الخطوا ت من ثلثة إلى سبعة لقسم الجذر ) (/باختيار ،sda2و .sdb2 .9
التهيئة
يجتتتب أن تحصتتتل الن علتتتى قائمتتتة بتتتالقراص الصتتتلبة وأجهتتتزة ،RAIDالخطتتتوة التيتتتة هتتتي
صتتتلله
التهيئتتتة وإعتتتداد ظنقتتتاط الوصتتتل لجهتتتزة RAID؛ عامتتتل جهتتتاز RAIDكقتتترص صتتتلب ،هديئتتته و ش
كالمعتاد.
اختر »استخدام كت« ،ثم اختر »ذاكرة التبديل« ،ثم »اظنتهى إعداد الجزء ]القسم[«. .2
اختر »ظنقطة الوصل« ،واضبطها على » - /جذر ظنظام الملفا ت« ،عددل الخيتارا ت الخترى كمتا .5
إذا اختر ت وضع قستم الجتذر فتي مصتفوفة ،RAIDفسيستتألك المثبتت إذا كنتت تريتتد القلع
قتتد يحصتتل خلتتل فتتي القتترص فتتي ظنقطتتة متتا متتن حيتتاة الحاستتوب؛ وعنتتدما يحصتتل ذلتتك وقتتت
استتتخدام مصتتفوفة RAIDبرمجيتتة ،فسيضتتع ظنظتتام التشتتغيل المصتتفوفة فتتي متتتا يتتدعى »الحالتتة
إذا أصتتبحت المصتتفوفة فتتي الحالتتة المتتتدهورة -ربمتتا لحتتدوث تلتتف فتتي البياظنتتا ت -فعنتتدها تحتتاول
ظنسخة الخادوم من أوبنتو افتراضتتصيا القلع إلتى initramfsبعتتد ثلثيتتن ثاظنيتتة ،وعنتتدما يسكتمتتل إقلع
،initramfsفسيظهر شمنحث لمدة خمس عشرة ثاظنية يسمح لك بالختيار بين إقلع النظام أو محاولة
استرداده يدوصيا؛ ربما ل يسكون القلع إلى محث initramfsهو الستتلوك المطلتتوب ،وخصو ص
صتتا إن كتتان
الحاسوب في مسكان بعيد عنك .يمسكن إعداد القلع إلى مصفوفة متدهورة بعدة طرق:
العملية عتن الخيتارا ت الضتافية المتعلقتتة بالمصتفوفة ،كالمراقبتتة ،وتنبيهتتا ت البريتتد ...إلتخ.
أد ش
خل المر التي لعداد :mdadm
BOOT_DEGRADED=ture
عندما يقلع الخادوم ،اضغط على Shiftلفتح قائمة جروب ).(Grub •
بعد أن نيق شلع النظام ،تستتطيع إمتتا إصتتلح المصتفوفة )اظنظتتر قستتم »صتياظنة مصتتفوفا ت «RAID
للتفاصيل( أو ظنسخ المعلوما ت المهمة إلى جهاز آخر بسبب عطب في العتاد.
يمسكتتن أن نتعتتشرض الداة mdadmحالتتة المصتتفوفة ،أو تستتتطيع إضتتافة أو إزالتتة أقتتراص فتتي
المصفوفة ...إلخ.
سنتشاشبه مخرجا ت المر السابق مخرجا ت المتتر mdadm -D؛ عتتددل /dev/sda1لسكتتل قتترص
وبالترتيب.
يمسكن أن نتنبندل حالة القرص في بعض الحيان إلتى »نمنعتاب« ) ،(faultyحتتى وإن لتم يسكتن
فيه خلل فيزيائي؛ من المفيد في كثير من الحيان إزالة القرص من المصفوفة ،ثتتم إعتتادة
إضافته؛ وهذا ما يجعل القرص نيزانمن مر صة أخرى مع المصفوفة؛ وإذا لم يزامن القرص مع
يحتوي الملف /proc/mdstatعلى معلوما ت مفيدة حول حالة أجهزة RAIDفي النظام:
cat /proc/mdstat
]Personalities : [linear] [multipath] [raid0] [raid1] [raid6
][raid5] [raid4] [raid10
]md0 : active raid1 sda1[0] sdb1[1
]10016384 blocks [2/2] [UU
>unused devices: <none
إذا احتجتتتت لستتتتبدال قتتترص معطتتتوب ،فيجتتتب أن يعتتتاد تثتتتبيت محمتتتل القلع »جتتتروب«
ب .مصادر
إن موضتتوع مصتتفوفا ت RAIDهتتو موضتتوع معقتتد ظنتيجتتصة لتتوفرة الطتترق التتتي يمسكتتن ضتتبط
حجتتوم تخزينيتتة علتتى قتترتص واحتتد أو أقتتراتص صتتلبة متعتتددة؛ ويمسكتتن إظنشتتاء حجتتوم LVMعلتتى
الحجوم ،مما يضيف مروظنصة كبيرصة للنظام عندما تتغير المتطلبا ت التشغيلية.
لمحة عامة
تأثيةر جاظنبي لقوة ومروظنة LVMهو درجة كبير ةة من التعقيتد؛ ويجتدر بنتا التعتترف علتى بعتض
الحجم الفيزيائي ) :(PVالقرص الصلب الفيزيائي ،أو قسم في قتترص ،أو قستتم مصتتفوفة •
مجموعظظة الحجظظوم ) :(VGالتتتي نتصتتننع متتن حجتتم فيزيتتائي واحتتد أو أكتتثر؛ ويمسكتتن أن نتونستتع •
مجموعتتة الحجتتوم بإضتتافة المزيتتد متتن الحجتتوم الفيزيائيتتة ،حيتتث تسكتتون مجموعتتة الحجتتوم
كقرص صلب وهمي ) ،(virtual disk driveالذي نيننشأ منه المزيد من الحجوم المنطقية.
حجم منطقي ) :(LVالذي يشتتبه القستتم فتتي الظنظمتتة الختترى )التتتي ليستتت ،(LVMحيتتث •
نيه نيتتأ الحجتتم المنطقتتي بنظتتام الملفتتا ت المطلتتوب ) ،Ext3أو ،XFSأو... JFSإلتتخ ،(.ويسكتتون
التثبيت
سيشرح المثال في هذا القسم طريقة تثبيت ظنسخة الخادوم من أوبنتو مع وصل مجلد /srv
جتتزصءا متتن مجموعتتة الحجتتوم؛ وسيضتتاف حجتتم فيزيتتائي آختتر بعتتد التثتتبيت لشتترح كيتتف يمسكتتن أن
ت عددة لستخدام ،LVMالخيار الول »مودجه -استخدام القتترص بتتأكمله هنالك خيارا ن
ت تثبي ت
وإعداد «LVMالذي يسمح بإعطاء جزء من المساحة التخزينية المتوفرة لستخدامها فتي ،LVM
والخيار الخر »مودجه -استتتخدام القتترص بتتأكمله وإعتتداد LVMمشتتدفر« ،أو إعتتداد القستتام وضتتبط
LVMيدو صيا؛ والطريقة الوحيدة لهذه اللحظة لعداد النظام لستخدام LVMوالقسام العتيادية
انت شبع خطوا ت التثبيت إلى أن تصل إلى خطوة »تقسيم القراص« ،عندها: .1
.3اختتتر القتترص الصتتلب ،ثتتم فتتي الشاشتتة التاليتتة اختتتر »ظنعتتم« للتترد علتتى الرستتالة »هتتل تريتتد
ثم أظنشئ أقسام ،/bootو ،swapو /بأي ظنظام ملفا ت تريد. .4
ولظنشاء /srvباستخدام ،LVMفأظنشتتئ قستتصما منطقصيتتا جديتصدا ،ثتم غيتتر »طريقتة الستتخدام« .5
إلى »حجم فيزيائي لتخزين ،«LVMثم اختر »اظنتهى إعداد الجزء ]القسم[«.
اختر الن » إعداد مدير الحجوم المنطقية« في العلى ،ثم اختتتر »ظنعتتم« لسكتابتتة التعتتديل ت .6
إلى القرص.
.7والن اختر »إظنشاء مجموعة حجوم« في »إعدادا ت «LVMفي الشاشة التاليتتة ،ثتتم اختتتر
استتصما لمجموعتتة الحجتتوم ،وليسكتتن ، vg01أو أي شتتيء يصتتفها أكتتثر متتن ذلتتك؛ وبعتتد اختيتتار
الحجوم النمن نشأة منذ قليل ،وأدخل اسصما للحجم المنطقي الجديد )على سبيل المثتتال srv
لظنه اسم ظنقطة الوصل المخطط لها( ثم اختر المساحة التخزينية ،التي ستسكون القسم
بأكمله ،ل تننس أظنه يمسكنك دائصمتتا زيادتهتتا لح صقتتا ،ثتتم اختتتر »إظنهتتاء« ويجتتب أن تعتتود لشاشتتة
»تقسيم القراص«.
.9لضافة ظنظام ملفا ت إلى LVMالجديد ،اختر القسم تحت » ،«LVM VG vg01, LV srv
أو أي اسم قد اخترته في الخطوة السابقة ،ثم اختر »طريقتتة الستتتخدام« ،واضتتبط ظنظتتام
الملفتتتا ت كالمعتتتتاد باختيتتتار /srvظنقطتتت صة للوصتتتل ،ثتتتم اضتتتغط علتتتى »اظنتهتتتى إعتتتداد الجتتتزء
.10فتتي النهايتتة ،اختتتر » إظنهتتاء التجزئتتة وكتابتتة التغيتترا ت إلتتى القتترص« ،ثتتم وافتتق علتتى إجتتراء
بإكمتتال مثالنتتا المتعلتق بحجتتم LVMواستتخدامه كنقطتتة وصتل لمجلتتد ،/srvفستتيناقش هتتذا
القستتم إضتتافة قتترص صتتلب آختتر ،وإظنشتتاء حجتتم فيزيتتائي ) ،(PVوإضتتافته إلتتى مجموعتتة الحجتتوم
) ،(VGوتوسيع الحجم المنطقي ، srvثم في النهاية توسيع ظنظتتام الملفتا ت؛ يفتتترض هتذا المثتتال أنن
ن
صا صلصبا ثاظنصيتتا قتد أضتتيف إلتتى النظتتام ،وفتتي هتتذا المثتتال ،ستيسكون استمه /dev/sdbوسنستتخدم
قر ص
القرص بأكمله كحج تم فيزيائي ) بإمسكاظنك إظنشاء أقسام واستخدامها كحجوم فيزيائية مختلفة(.
تحذير :تأكد أظنه ليس لديك قرص صلب باسم /dev/sdbقبل تنفيذ الوامر التيتتة ،قتتد تخستتر بعتتض البياظنتتا ت إذا
ظننفذ ت هذه الوامر على قرص غير فارغ.
المتتتتدادا ت الفيزيائيتتتة الحتتترة /الحجتتتم ) الحجتتتم التخزينتتتي التتتذي حتتتددته( ،ستتتنعتبر أن المستتتاحة
الفارغة هي ) PE 511مما يساوي 2غيغابايت إذا كتتان حجتتم PEهتو 4ميغابتتايت( ،وسنستتخدم كتل
المساحة الفارغة المتاحة ،ل تننس استخدام رقم - PEأو الحجم التخزيني الحر -المتوفر عندك.
يمسكن توسيع الحجم المنطقي بعددة طرق ،وسنشرح كيفية استخدام PEلتوسعة حجم منطقي:
إن الخيتتتار -lيستتتمح بتوستتتعة الحجتتتم المنطقتتتي باستتتتخدام ،PEيستتتمح الخيتتتار -Lللحجتتتم
المنطقي بأن نيو نسع باستخدام الميغا ،أو الغيغا ،أو التيرابايت ...إلخ.
حتتتى وإن كتتان متتن المفتتترض أظنتته باستتتطاعتك توستتيع ظنظتتام ملفتتا ت ext3أو ext4دون فصتتله
أوصل ،لسكن من العادا ت الجيدة فصله على أدية حتال وتفحتص ظنظتام الملفتا ت؛ وبهتذا لتن تختدرب شتيصئا فتي
اليوم الذي تريد فيه تقليل الحجم المنطقي )إذ يسكون فصل ظنظام الملفا ت في هذه الحالة إلزامصيا(.
الوامتتتر التيتتتة لظنظمتتتة الملفتتتا ت EXT3أو ،EXT4إذا كنتتتت تستتتتخدم أظنظمتتتة ملفتتتا ت أختتترى،
الخيار -fيجبر الداة e2fsckعلى تفحص ظنظام الملفا ت وإن كان يبدو »ظنظيصفا«.
ثم ش
صل ظنظام الملفا ت وتأكد من حجمه التخزيني:
د .مصادر
مقالة أخرى جيدة هي » «Managing Disk Space with LVMفي موقع O'Reilly •
المدعو .LinuxDevCenter.com
ا .مقدمة
يشير تفريغ اظنهيار النواة ) (Kernel Crash Dumpإلى جزء من محتويا ت ذاكرة الوصول
العشتتوائي غيتتر الدائمتتة التتتي نتن نستتخ إلتتى القتترص عنتتدما يتعتترض تنفيتتذ النتتواة إلتتى اضتتطراب متتا،
لبعض تلتك الحتداث )الرتيتتاع ،أو ،(NMIستيسكون رد فعتتل النتواة تلقائصيتتا ،ونتطنلتق آليتتة تفريتغ
التتذاكرة ،وعنتتدما تقتتع إحتتدى الحتتداث الستتابقة ،فيجتتب معرفتتة الستتبب الرئيستتي للتمسكتتن متتن تجنبتته
عندما يحدث ارتياع النواة ،فإن النواة تعتمد على آلية kexecلتعيتتد القلع بستترعة لنستتختة
جديتتتد تة متتتن النتتتواة فتتي القستتتم المحفتتتوظ متتتن التتتذاكرة المحجتتوزة عنتتتدما أقلتتتع النظتتتام )اظنظتتتر فتتتي
الستتفل( ،وهتتذا يستتمح لمنطقتتة التتذاكرة المتبقيتتة أن تبقتتى دون أن نتلنمتتس لنستتخها ظنستتصخا آمصنتتا إلتتى
وسيطة التخزين.
ج .التثبيت
د .الضبط
USER_KDUMP=1
ه .التحقق
للتأكد من أن آلية تفريغ اظنهيار النواة مفنعلة ،فهنالتك عتددة أم ور يجتب التحق ق منهتتا ،تأكتد أوصل
من أن نمعاشمل القلع crashkernelموجوةد )لحظ أن السطر التيتتة قتد نقدستتنمت لسكتي تظهتتر فتي
cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.2.0-17-server root=/dev/mapper/PreciseS-
↪ root ro crashkernel=384M-2G:64M,2G-:128M
]crashkernel=<range1>:<size1>[,<range2>:<size2>,...][@offset
↪ range=start-[end] 'start' is inclusive and 'end' is exclusive.
crashkernel=384M-2G:64M,2G-:128M
إذا كاظنت قيمة الذاكرة في النظام أقل من 384ميغابايت ،فل نتبقي علتتى شتيء )هتتذه هتتي •
إذا كتتتتاظنت قيمتتتتة التتتتذاكرة فتتتتي النظتتتتام بيتتتتن 384ميغابتتتتايت و 2غيغابتتتتايت )بمتتتتا فيهتتتتا 2 •
إذا كان حجم الذاكرة في النظام أكبر من 2غيغابايت ،فحافظ عندها على 128ميغابايت. •
ثاظن صيتتا ،يجتتب التأكتتد متتن أن النتتواة قتتد حتتافظت علتتى مسكتتان التتذاكرة المطلوبتتة للداة kdump
باستخدام:
تحظظذير :ستتيؤدي اختبتتار آليتتة تفريتتغ اظنهيتتار النتتواة إلتتى إعتتادة إقلع النظتتام ،وقتتد يستتبب ذلتتك فقتتداصظنا للبياظنتتا ت فتتي
حمتت تل شتتديد؛ إذا أرد ت اختبتتار الليتتة فتأكتتد متتن أن ظنظامتتك ل يجتتري أديتتة
بعتتض الحيتتان إذا كتتان النظتتام تحتتت ش
عمليا ت مهمة ،أو أنظنه تحت حمل خفيف جصدا.
cat /proc/sys/kernel/sysrq
ن
إذا أعي ند ت القيمة " صفر" ،فإن تلك الميزة معطلة ،وعليك تنفيذ المر التي لتفعيلها:
بعتتد فعتتل ذلتتك ،يجتتب أن تصتتبح المستتتخدم الجتتذر حيتتث ل يسكفتتي استتتخدام sudo؛ وعليتتك
وإذا كنت تستخدم اتصاصل شتتبسك صيا ،فستتتفقد تواصتتلك متتع النظتتام ولهتتذا متتن الفضتتل أن تختتتبر
ذلك عندما تسكون موصو صل للنظام عبر طرفية محلية ،مما يجعل عملية تفريغ النواة ظاهرصة أمامك.
sudo -s
[sudo] password for ubuntu:
# echo c > /proc/sysrq-trigger
[ 31.659002] SysRq : Trigger a crash
[ 31.659749] BUG: unable to handle kernel NULL pointer
dereference at )(null
]>[ 31.662668] IP: [<ffffffff8139f166
sysrq_handle_crash+0x16/0x20
[ 31.662668] PGD 3bfb9067 PUD 368a7067 PMD 0
[ 31.662668] Oops: 0002 [#1] SMP
[ 31.662668] CPU 1
....
لقد ناقت شطنعت بقية السجل ،لسكن يجب أن تشاهد أن النظتام قتد أعيتد إقلعته فتي مسكتان متا فتي
عند الكمال ،س نيعاد تشغيل النظتام لحتالته العتياديتتة ،وستتجد ملتتف تفريتغ اظنهيتتار النتواة فتي
مجلد :/var/crash
ls /var/crash
linux-image-3.0.0-12-server.0.crash
ز .مصادر
تفريغ اظنهيار النواة هتو موضتوع واستع يتحتتاج إلتتى ختبرا ت فتتي ظنتواة ليننسكتتس ،تستتطيع إيجتاد
مقالتتة »تحليتل تفريتغ اظنهيتتار ظنتواة ليننسكتتس« ) هتذه المقالتتة مبنيتة علتى فيتدورا ،لسكنهتا تشتترح •
توفر أوبنتو ظنظام إدارنة حزتم شتام تل للتثتبيت والترقيتة والضتبط وإزالتة البرمجيتا ت ،بالضتافة
إلتتى تتتوفير الوصتتول إلتتى أكتتثر متتن 35000حزمتتة برمجيتتا ت مننظمتتة؛ وأي ص
ضتتا متتن ميتتزا ت ظنظتتام إدارة
هنالك عدة أدوا ت متوفرة للتعامتتل متع ظنظتتام إدارة الحتتزم الختاص بتأوبنتو ،بتدصءا متن الدوا ت
البسيطة التي تعمل من سطر الوامر ،التي يمسكن بستتهولتة أتمتتنة عملهتتا متن متتدراء النظتتام ،ووصتوصل
إلى واجهة رسومية بسيطة تسكون سهلصة على الوافدين الجدد لنظام أوبنتو.
.1مقدمة
ن
أشتتتت نتق ظنظتتتتام إدارة الحتتتتزم فتتتتي أوبنتتتتتو متتتتن ظنفتتتتس النظتتتتام المستتتتتخدم فتتتتي توزيعتتتتة دبيتتتتان
غنتتو/لي ننسكتتس .تحتتتوي ملفتتا ت الحتتزم علتتى جميتتع الملفتتا ت اللزمتتة ،والبياظنتتا ت الوصتتفية ،والتعليمتتا ت
لتشغيل وظيفة معينة أو برظنامج محدد على حاسوبك العامل بنظام تشغيل أوبنتو.
تسكتتتتتون لملفتتتتتا ت حتتتتتزم دبيتتتتتان عتتتتتادصة اللحقتتتتتة » ،«.debوتتواجتتتتتد غالصبتتتتتا فتتتتتي مستتتتتتودعا ت
) ،(repositoriesالتتتتي هتتتي مجموعتتتا ت متتتن الحتتتزم الموجتتتودة فتتتي وستتتائط مختلفتتتة ،كتتتأقراص
،CD-ROMأو على الظنترظنت؛ تلك الحزم نمصنرفة ) (compiledمسبصقا إلى صيغة ثنائية في غتالب
الحيان ،لذلك يسكون تثبيتها سريصعا ،وبالتالي ل تحتاج لبناء البرمجية من المصدر.
الحتتتزم الضتتتافية التتتي تتطلبهتتتا حزمتتتة رئيستتتية لداة الوظيفتتة المطلوبتتتة أداصء ستتليصما؛ علتتتى ستتتبيل
المثتتتال ،حزمتتتة تركيتتتب السكلم المستتتماة festivalتعتمتتتد علتتتى حزمتتتة ،libasound2التتتتي تتتتوفر
مسكتبة الصو ت ALSAالضرورية لتشتغيل الصتو ت ،ولسكتتي يعمتل festivalعمصل صتحيصحا ،يجتتب أن
نيثنبت هو وجميع اعتمادياته؛ حيث نتجري أدوا ت إدارة البرمجيا ت في أوبنتو ذلك تلقائصيا.
.2الداة dpkg
dpkgهو مدير حزم للظنظمة المبينة على دبيان؛ حيث يمسكنه تثتبيت ،وحتذف ،وبنتتاء الحتتزم،
ولسكتتن علتتى النقيتتض متتن بقيتتة أظنظمتتة إدارة الحتتزم ،ل يمسكنتته أن نينتتدزل ونيثدبتتت الحتتزم أو اعتمادياتهتتا
dpkg -l
وبالعتماد على عدد الحزم المثبتة على ظنظامك ،يمسكن أن نيودلد المر السابق ظناتصجا ضخصما متتن
البياظنتتا ت؛ تستتتطيع تمريتتر الناتتتج عتتبر أظنبتتوب للداة grepلمعرفتتة فيمتتا إذا كتتاظنت حزمتتة معينتتة قتتد
استتتتبدل استتتم الحتتتزم التتتتي تريتتتد البحتتتث عنهتتتا ،أو جتتتزصءا منتتته ،أو تعتتتبيصرا ظنمطصيتتتا )regular
لعرض الملفا ت المثبتة بواسطة حزمة ما ،في هذه الحالة حزمة ،ufwفأد ش
خل المر:
dpkg -L ufw
إذا لم تسكن متأكصدا أدية حزمة قد ثبتت ملصفا ما ،فالمر dpkg -Sسيخبرك ،على سبيل المثال:
dpkg -S /etc/host.conf
base-files: /etc/host.conf
ملحظة :العديد من الملفا ت تونلد تلقائ صيا أثناء عملية تثبيت الحزمة ،وعلى الرغتم متن أن تلتتك الملفتتا ت موجتتودة
في ظنظام الملفا ت ،فقد ل يعلم dpkg -Sأدية حزمة تنتمي إليها تلك الملفا ت.
ضع اسم ملف الحزمة التي تريد تثبيتها عندك بدصل من .zip_3.0-4_i386.deb
تحذير :ليتس من المستحستن ف ي معظتم الحتال ت إلغتاء تثتبيت الح زم باستتخدام ،dpkgم ن الفضتل استتخدام
متتدير حتتزم يستتتطيع حتتل مشتتاكل العتماديتتا ت للتأكتتد متتن أن النظتتام فتتي حالتتة »متينتتة« ،فعلتتى ستتبيل المثتتال،
استخدام dpkg -r zipسيحذف حزمة ،zipلسكن أدية حزم تعتمتد عليهتا ستتتبقى مثبتتصة ولسكنهتا لتتن تعمتل بصتتورة
صحيحة.
.3الداة Apt-Get
إن الداة apt-getهتتي أداة ستتطر أوامتتر مفيتتدة جتتصدا ،إذ تتعامتتل متتع »أداة التحزيتتم المتقدمتتة«
) ،([APT] Advanced Packaging Toolونتن دفذ مهاصما كتثبيت حزم البرمجيا ت الجديدة ،وترقيتتة
الحزم البرمجية الموجودة ،وتحديث فهرس قائمة الحزم ،وحتى ترقية كامل ظنظام أوبنتو.
كتون هتذه الداة أداصة ستطرية ) أي تعمتل متن ستطر الوامتر( ،فتإن للداة apt-getمزايتا كتثيرصة
تتميتتز بهتتا عتتن غيرهتتا متتن أدوا ت إدارة الحتتزم المتتتوفرة فتتي أوبنتتتو لمتتدراء الختتواديم ،إحتتدى تلتتك
المزايا هي سهولة الستخدام في جلستا ت الطرفيتة البستيطة )عتبر ،(SSHوقابليتة الستتخدام فتي
سسكربتا ت إدارة الظنظمة ،التي يمسكن أن تؤتمت باستخدام أداة جدولة المهام .cron
تثتتبيت حزمتتة :عمليتتة تثتتبيت الحتتزم باستتتخدام أداة apt-getهتتي عمليتتةة ستتهلةة جتتصدا؛ فعلتتى
سبيل المثال ،اكتب المر التي لتثبيت حزمة ماسح الشبسكة :nmap
تلميح :يمسكنك تحديد أكثر من حزمة لتث نبت أو تحذف ،وذلك بتمرير أستماء تلتك الح زم كوستائط للمتر apt-get
مفصولصة بفراغا ت.
إن إضافة الخيتار --purgeإلتى المتر apt-get removeس يجعل apt-getيحتذف ملفتا ت
إعتتدادا ت الحزمتتة أي ص
ضتتا ،ربمتتا يسكتتون -أو ل يسكتتون -هتتذا متتا تريتتده؛ استتتخدم هتتذا الخيتتار بعتتد أختتذ
الحيطة والحذر.
تحتتديث فهتترس قائمتتة الحتتزم :إن فهتترس حتتزم APTهتتو قاعتتدة بياظنتتا ت للحتتزم المتتتوفرة فتتي
ن
فلتحديث فهرس الحزم المحلي والحصتول علتى آختتر التعتتديل ت التتي أجرنيتتت علتى المستتتودعا ت،
لمعلوما ت حول كيفية الترقية إلى إصدارة جديدة من أوبنتو ،ألشق ظنظرصة على قسم »الترقية«.
العمليا ت التتتي أجريتتت بواستطة الداة ،apt-getكتثتبيت وحتتذف الحتتزم ،سنتستنجل فتتي ملتف
السجل ./var/log/dpkg.log
للمزيتتتد متتتن المعلومتتتا ت حتتتول استتتتخدام ،APTراجتتتع »دليتتتل مستتتتخدم APTفتتتي دبيتتتان«،
أو اكتب:
apt-get help
.4الداة Aptitude
ستتتيعطيك تشتتتغيل Aptitudeدون خيتتتارا ت ستتتطر الوامتتتر واجهتتتصة ظنصتتتيصة لنظتتتام التحزيتتتم
المتقتتدم ) ،(APTالعديتتد متتن وظتتائف إدارة الحتتزم الشتتائعة ،كتتالتثبيت ،والحتتذف ،والترقيتتة يمسكتتن
حدوث تضارب في أزرار الوامر؛ يمسكنك بدء واجهة ذا ت قوائم من Aptitudeبسكتابة المر التي
sudo aptitude
ستشتتاهد شتتريط القائمتتة فتتي أعلتتى الشاشتتة عنتتدما يبتتدأ ،Aptitudeوجزأيتتن تحتتته ،يحتتتوي
الجتتزء العلتوي علتتى تصتتنيفا ت الحتزم ،كتتالحزم الجديتدة ،والحتزم غيتتر المثبتتتة؛ وأمتتا الجتزء الستتفلي
ل واجهتتنة
عمليتتة استتتخدام Aptitudeلدارة الحتتزم هتتي عمليتتة مباشتترة إلتتى حتتتد متتا؛ وتجعتت ن
المستتتخدشم متتن المهتتام الشتتائعة أمتتصرا هيصنتتا ليقتتام بتته؛ متتا يلتتي أمثلتتةة عتتن كيفيتتة تنفيتتذ وظتتائف إدارة
تثبيت الحتزم :لتثتبيت حزمتة متا ،حت ددد الحزمتة فتي تصتنيف »الحتزم غيتر المثبتتة« ،وذلتك •
باستتتخدام أزرار الستتهم فتتي الحاستتوب وزر ،Enterعدلتتم علتتى الحتتزم النمتتراد تثبيتهتتا ثتتم
اضغط على زر ،+حيتث ستيتب ندل لتون مدخلتتة الحزمتتة إلتتى اللتون الخضتتر ،ممتا يشتير إلتى
أظنها قد نحددند ت للتثبيت؛ اضغط الن على الزر gلظهار ملخص عن الفعال التي ستتنتجرى
علتى الحتزم ،اضتغط علتى gمترصة أخترى ،وس نيطنلب منتك أن تصتبح جتذصرا لكمتال التثتبيت،
اضغط على ،Enterوسنيط نلب منك إدخال كلمة المرور ،أدخل كلمة المرور لتصتتبح جتذصرا؛
فتتي النهايتتة ،اضتتغط علتتى gمتترصة أختترى ،فس نتستتأل عتتن تنزيتتل تلتتك الحزمتتة اضتتغط علتتى
حذف الحزم :لحتذف حزمتة متا ،حتتدد الحزمتة فتي تصتنيف »الحتزم المثبتتة« ،وذلتك باستتخدام •
أزرار السهم في الحاسوب وزر ،Enterعدلم على الحزم النمراد حتتذفها ثتتم اضتتغط علتتى زر "،"-
حيث سيتب ندل لون مدخلة الحزمتة إلتى اللتون التوردي ،ممتا يشتير إلتى أظنهتا قتد نحتددند ت للحتذف؛
اضغط الن على الزر gلظهار ملختص عتن الفعتتال التتي ستنتجرى علتتى الحتزم ،اضتتغط علتى g
متتر صة أختترى ،وستتيطلب منتتك أن تصتتبح جتتذصرا لكمتتال التثتتبيت ،اضتتغط علتتى ،Enterوستتنيطلب
منتتك إدختتال كلمتتة المتترور ،أدختتل كلمتتة المتترور لتصتتبح جتتذصرا؛ فتتي النهايتتة ،اضتتغط علتتى gمتترصة
تحديث فهرس الحزم :لتحديث فهرس الحزم ،اضغط ببساطة على الزر ،uوسنتسأل عدمتتا •
إذا كنتتت تريتتد أن تصتتبح جتتذصرا وتسكمتتل التحتتديث ،اضتتغط علتتى ،Enterوستتنتطالب بسكلمتتة
المتترور ،أدختتل كلمتتة المتترور لتصتتبح جتتذصرا ،وستتيبدأ تحتتديث فهتترس الحتتزم؛ اضتتغط علتتى
Enterعلى زر OKفي مربع الحوار الذي سيظهر عندما تنتهي عملية التنزيل.
ترقية الحزم :لترقية الحزم ،عليك أوصل تحديث فهرس الحزم كما و د
ضح سابصقا ،ثم اضغط •
علتتى الحتترف Uلتحديتتد جميتتع الحتتزم التتتي لهتتا تحتتديثا ت ،اضتتغط الن علتتى التتزر gحيتتث
ستتنيعنرض لتتك ملختتص عتتن الفعتتال التتتي ستتنتجرى علتتى الحتتزم ،اضتتغط علتتى gمتترة أختترى،
وستت نيطلب منتتك أن تصتتبح جتتذصرا لكمتتال التثتتبيت ،اضتتغط علتتى ،Enterوستتنتطالب بسكلمتتة
المرور ،أدخل كلمة مرور الجذر ثم اضغط على gمرة أختترى ،وسنتستتأل عتتن تنزيتتل الحتتزم،
العمود الول من المعلوما ت الظاهر في الجزء العلوي في قائمتتة الحتتزم يعترض حالتتة الحزمتتة،
:cالحزمة غير مثبتة ،لسكن إعدادا ت الحزمة ما زالت باقيصة على النظام. •
:uملفا ت الحزمة قد نف ن
ك ضغطها ،لسكن الحزمة لم نتنعدد بعد. •
للختتروج متتن ،Aptitudeاضتتغط علتتى حتترف ، qووافتتق أظنتتك تريتتد الختتروج؛ يمسكتتن الوصتتول
يمسكنتتتتك استتتتتخدام Aptitudeكتتتتأدا تة ستتتتطرية )تعمتتتتل متتتتن ستتتتطر الوامتتتتر( استتتتتخداصما شتتتتبيصها
باستخدام apt-get؛ فلتثبيت حزمة nmapمع جميع العتماديتا ت اللزمتة ،كمتا فتي مث ال ،apt-get
راجتتتتتع صتتتتتفحا ت التتتتتدليل manلمزيتتتتتد متتتتتن المعلومتتتتتا ت حتتتتتول الخيتتتتتارا ت الستتتتتطرية للداة
.aptitude
.5التحديثات التلقائية
يمسكن استخدام الحزمة unattended-upgradesلتثبيت تحديثا ت الحزم تلقائصيا ،ويمسكن
ضتتبطها لتحتتديث كتتل الحتتزم ،أو تثتتبيت التحتتديثا ت المنيتتة فقتتط؛ لسكتتن أوصل يجتتب تثتتبيت الحزمتتة
vim /etc/apt/apt.conf.d/50unattended-upgrades
ليوافق ما تحتاج:
{ Unattended-Upgrade::Allowed-Origins
;""Ubuntu trusty-security
// ;""Ubuntu trusty-updates
;}
ويمسكن أي ص
ضا وضع بعض الحتزم فتي » القائمتتة الستوداء« ممتا يتؤدي إلتى عتدم تحتديثها تلقائييتتا؛
{ Unattended-Upgrade::Package-Blacklist
// ;""vim
// ;""libc6
// ;""libc6-dev
// ;""libc6-i686
;}
إعدادا ت aptالمناسبة:
;"APT::Periodic::Update-Package-Lists "1
;"APT::Periodic::Download-Upgradeable-Packages "1
;"APT::Periodic::AutocleanInterval "7
;"APT::Periodic::Unattended-Upgrade "1
الضتتتبط الستتتابق نيحتتتددث فهتتترس الحتتتزم ونينتتتدزل ونيث دبتتتت جميتتتع الترقيتتتا ت المتتتتوفرة كتتتل يتتتوم
ملحظة :يمسكنك قراءة المزيد عن خيارا ت ضبط aptالزمنية في ترويسة سسكربت ./etc/cron.daily/apt
ا .الشعارات
النظام نيف د
صل فيه الحزم التي تحتاج إلى ترقية ،أو التي تتعرض لمشاكل.
حزمتتتتة أختتتترى مفيتتتتدة هتتتتي ،apticronالتتتتتي تضتتتتبط عمصل مجتتتتدوصل ) (cronلرستتتتال بريتتتتد
إلسكتروظني لمتدير النظتام ،يحتتوي علتى معلومتا ت حتول أ ديتة حتزم فتي النظتام لهتتا تحتديثا ت مت وفرة،
أد ش
خل المر التي في سطر الوامر لتثبيت حزمة :apticron
"EMAIL="root@example.com
.6الضبط
الضتتتتتتتبط الختتتتتتتاص بمستتتتتتتتودعا ت أداة التحزيتتتتتتتم المتقدمتتتتتتتة ) (APTنمختتتتتتتنزةن فتتتتتتتي ملتتتتتتتف
بإمسكاظنك تعديل الملف لتفعيتل المستتودعا ت أو تعطيلهتا؛ علتى ستبيل المثتال ،لتعطيتل ضترورة
إدراج القتترص المضتتغوط الختتاص بتتأوبنتو فتتي كتتل متترة نتجتترى فيهتتا عمليتتة علتتى الحتتزم ،فضتتع رمتتز
بالضتتافة إلتتى مستتتودعا ت الحتتزم الرستتمية المدعومتتة المتتتوفرة لوبنتتتو ،هنالتتك مستتتودعا ت
مصتتاظنة متتن المجتمتتع تمنحتتك إمسكاظنيتتة تثتتبيت اللف متتن الحتتزم الضتتافية ،أشتتهر اثنيتتن منهتتا همتتا
لسكنهما مصاظنان من المجتمع ،حيث يوفران حزصما آمنة لستخدامها على حاسوبك.
تحظظذير :لحتتظ أن أييتتا متتن مستتتودعي » «Universeو » «Multiverseل يحتويتتان حزصمتتا مدعومتتصة رستتمصيا متتن
أوبنتو ،وهذا يعني أظنها قد ل تسكون هنالك تحديثا ت أمنية لتلك الحزم.
هنالك مصادر عديدة للحزم ،وأحياصظنا توفر تلك المصادر حزمصة واحدصة فقتتط ،فتتي هتتذه الحالتتة،
تسكتتون مصتتادر الحزمتتة متتوفرة متتن مطتتور تطتتبيق واحتتد؛ يجتتب أن تسكتتون حتتذصرا جتتصدا عنتتد استتتخدام
مصادر غير قياسية للحزم؛ وعليك -على أي حال -البحث عن المصدر جيصدا قبل القيتتام بأيتتة عمليتتة
تثبيت ،فقد تجعل بعض تلك الحزم من النظام غير مستقتر أو ل يؤدي وظائفه في بعض الجواظنب.
مصادر.7
أغلبيتتة المعلومتا ت التتي نأع ش
التتي يتتوفر،طيتت فتتي هتتذا الفصتل موجتتودةة فتي صتفحا ت التتدليل
▲ | 56
دليل إدارة خواديم أوبنتو 14.04 - إدارة الحزم
مقالتتة » ،«APT HOWTOوصتتفحة التتدليل ،man apt-getتتتوفر معلومتتا ت مفيتتدة عتتن •
راجع صفحة الدليل man aptitudeللمزيد من الخيارا ت الخاصة بأداة .Aptitude •
تتسكتتون الشتتبسكا ت متتن جهتتازين أو أكتتثر ،كأظنظمتتة الحواستتيب والطابعتتا ت وغيرهتتا متتن المعتتدا ت
المتعلقتتة بهتتا والتتتي يمسكتتن أن تتصتتل إمتتا باستتتخدام كبتتل فيزيتتائي أو بتتالروابط اللستتلسكية؛ وذلتتك
.1ضبط الشبكة
تأتي أوبنتو مع عدد من الدوا ت الرسومية لضبط أجهزة الشتتبسكة ،هتتذا السكتتتاب متتونجه لمتتدراء
،ethXحيتتث تمثتتل Xقيمتتصة رقميتتصة ،ونتعتتنرف أول بطاقتتة إيتتثرظنت بالستتم ،eth0والثاظنيتتتة بالستتم
يمسكنك استخدام المر ifconfigكما يلي للتعرف على جميع بطاقا ت إيثرظنت بسرعة:
برمجيتت ةة أختترى تستتاعدك فتتي التعتترف علتتى جميتتع بطاقتتا ت الشتتبسكة المتتتوفرة فتتي ظنظامتتك هتتي
المر lshw؛ نيظشهر المر lshwفي المثال التي بطاقة إيثرظنت واحدة باستتمها المنطقتتي ،eth0متتع
، net.rulesإذا أرد ت التحسكتتم فتتي بطاقتتة التتتي ستحصتتل علتتى استتم منطقتتي معيتتن ،فتتابحث عتتن
الستتتطر التتتذي يطتتتابق عنتتتوان MACالفيزيتتتائي للبطاقتتتة ،وعتتتددل قيمتتتة NAME=ethXإلتتتى الستتتم
هتتتتو برظنامتتتتج نيظشهتتتتر ويعتتتت ددل إعتتتتدادا ت بطاقتتتتة إيتتتتثرظنت كالمفاوضتتتتة التلقائيتتتتةethtool إن
(؛ هتتذا البرظنامتتجWake-on-LAN) WoL وخاصية الستيقاظ عند وصول إشارة معينة من شبسكة
▲ | 61
دليل إدارة خواديم أوبنتو 14.04 - الشبسكا ت
ن
التغيرا ت التي أجريت بالداة ethtoolهي تغيتترا ت مؤقتتة ،وستتزول بعتد إعتادة القلع ،إذا
أرد ت الحفاظ على تلك الخيارا ت ،فأضف أمر ethtoolالذي تريده إلى عبارة ) pre-upالتي نتننفذ
يوضح المثال التي كيتف يمسكتن ضتبط إعتدادا ت بطاقتتة نمعنرفتة علتى أظنهتتا eth0بسترعة منفتذ
auto eth0
iface eth0 inet static
pre-up /sbin/ethtool -s eth0 speed 1000 duplex full
ملحظة :علتتى الرغتم متن أن المثتتال الستابق يستتخدم الطريقتتة » ،«staticإل أظنتته يعمتتل متع الطتترق الخترى أي ص
ضتتا،
كاستتتخدام DHCP؛ فتتالغرض متتن المثتتال الستتابق هتتو توضتتيح المسكتتان الصتتحيح لوضتتع عبتتارة pre-upفتتي ملتتف
إعدادا ت البطاقة وحسب.
سيشتتتترح القستتتتم التتتتتي طريقتتتتة إعتتتتداد عنتتتتاوين IPلنظامتتتتك ،وضتتتتبط البوابتتتتة )(gateway
يمسكتتتتتن استتتتتتخدام الوامتتتتتر القياستتتتتية عنتتتتتد الضتتتتتبط المتتتتتؤقت للشتتتتتبسكة ،كتتتتتالمر ipو ifconfig
و routeالتتتي يمسكنتتك إيجادهتتا فتتي أغلتتب أظنظمتتة تشتتغيل غنتتو/ليننسكتتس؛ تستتمح لتتك هتتذه الوامتتر بضتتبط
العدادا ت التي تأخذ حيز التنفيذ فورصيا ،لسكنها ليست دائمة؛ أي أظنها لن تبقى نمفنعلصة بعد إعادة التشغيل.
وقنتاعIP لتعتديل عنتوان: بالطريقتتة التيتةifconfig استخدم المر، مؤقصتاIP لضبط عنوان
ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:15:c5:4a:16:5a
inet addr:10.0.0.100 Bcast:10.0.0.255
Mask:255.255.255.0
inet6 addr: fe80::215:c5ff:fe4a:165a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:466475604 errors:0 dropped:0 overruns:0
frame:0
TX packets:403172654 errors:0 dropped:0 overruns:0
carrier:0
collisions:0 txqueuelen:1000
RX bytes:2574778386 (2.5 GB) TX bytes:1618367329
(1.6 GB)
Interrupt:16
حيث عليك تغييتتر: بالطريقة التيةroute يمسكنك استخدام المر،لضبط البوابة الفتراضية
▲ | 63
دليل إدارة خواديم أوبنتو 14.04 - الشبسكا ت
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
إذا كنت تحتاج إلى DNSلعدادا ت شبسكتك المؤقتة ،فيمسكنتتك إضتتافة عنتتاوين IPلختتواديم DNS
فتتي الملتتف ،/etc/resolv.confلسكتتن ليتتس متتن المستحستتن عموصمتتا تعتتديل الملتتف /etc/resolv.conf
مباشر صة ،لسكن هذا ضبط مؤقت وغيتر دائتتم؛ يوضتح المثتال التتي طريقتة إضتافة عنتاوين ختادونمي DNS
إلتتى ملتتف /etc/resolv.conf؛ التتتي يجتتب أن نتبتتندل إلتتى الختتواديم الملئمتتة لشتتبسكتك؛ شتترةح مطتتول عتتن
nameserver 8.8.8.8
nameserver 8.8.4.4
إذا لتتتم تعتتتد بحاجتتتة لهتتتذا الضتتتبط وتريتتتد مستتتح كتتتل إعتتتدادا ت IPمتتتن بطاقتتتة معينتتتة ،فعليتتتك
ملحظة :عملية إزالة ضبط IPباستخدام المتر ipل تمستح محتويتا ت ملتتف ،/etc/resolv.confفعليتتك حتتذف
أو تعديل محتوياته يدوصيا.
لعداد الخادوم لسكي يستخدم DHCPلسناد العنوان ديناميسكصيا ،فأضتتف الطريقتتة dhcpإلتتى
،/interfacesيفترض المثال التي أظنك نتشعدد بطاقة إيثرظنت الولى المعنرفة باسم :eth0
auto eth0
iface eth0 inet dhcp
بإضافة ضبط للبطاقة كما في المثال السابق ،يمسكنك أن تفدعل البطاقة باستتتخدام المتتر ifup
لعتتتداد ظنظامتتتك لستتتتخدام عنتتتوان IPثتتتابت ،فاستتتتخدم الطريقتتتة staticفتتتي عبتتتارة »عائلتتتة
:تتطلبها شبسكتك
auto eth0
iface eth0 inet static
address 10.0.0.100
netmask 255.255.255.0
gateway 10.0.0.1
:ifup يمسكنك أن تفدعل البطاقة باستخدام المر،بعد إضافة ضبط للبطاقة كما في المثال السابق
loopback بطاقة
ولهتتا عنتوان،lo معنرفة من النظام بالستتم،( ) التي هي المضيف المحليloopback إن بطاقة
ifconfig lo
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2718 errors:0 dropped:0 overruns:0 frame:0
TX packets:2718 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:183308 (183.3 KB) TX bytes:183308 (183.3 KB)
▲ | 66
دليل إدارة خواديم أوبنتو 14.04 - الشبسكا ت
عن ضبط بطاقة loopbackتلقائ صيا ،ومن المستحسن أن تبقي علتتى العتتدادا ت الفتراضتتية متتا لتتم
auto lo
iface lo inet loopback
إن استبيان السماء ) (Name resolutionالذي يتعلق بشبسكا ت ،IPهو عملية ربط عناوين
IPإلى أسماء المضيفين ،جاع صل من السهل تمييز الموارد على الشبسكة؛ سيشتترح القستتم التتتي كيتتف
نينعتتتدد النظتتتام لستتتتبيان الستتتماء باستتتتخدام ،DNSوستتتجل ت أستتتماء المضتتتيفين الثابتتتتة )static
.(hostname records
ت ل تحتتتاج لتعتتديله إل ظنتتادصرا ،أو كتتان تقليدصيا ،كان الملف /etc/resolv.confملف ضتتب ت
ط ثتتاب ت
نيعندل تلقائصيا عبر عميل DHCP؛ أما حالصيا فيمسكتتن أن نيبتددل الحاستوب بيتتن شتبسكتة وأخترى متتن حيتن
لخر ،وأصبح نيستخندم إطار العمل resolvconfلنتنت يبع هذه التغيرا ت وتحديث إعدادا ت استتتبيان
الستتتماء تلقائ صيتتتا؛ فتتتي الواقتتتع هتتتو وستتتيط بيتتتن البرامتتتج التتتتي تتتتوفر معلومتتتا ت استتتتبيان الستتتماء،
نينغتتنذى Resolvconfبالمعلومتتا ت عتتبر مجموعتتة متتن الستتسكربتا ت التتتي تتعلتتق بإعتتدادا ت بطاقتتة
الشبسكة ،الفرق الوحيد بالنسبة للمستتتخدم هتي أن أديتة تعتديل ت حتدثت علتتى ملتف /etc/resolv.conf
لضبط استبيان السماء ،أضف عناوين IPلخواديم السماء الملئمة لشبسكتك في ملتتف /etc/
تضمين سطر واحد يبدأ باسم الخيار مع السابقة dns-مما ينتج ملصفا شبيصها بالملف التي:
يمسكتتتتن أن نيستتتتتخندم الخيتتتتار searchمتتتتع عتتتتددة أستتتتماء ظنطاقتتتتا ت ،وستتتتنتلنحق طلبيتتتتا ت DNS
و » .«dev.example.com
إذا كنت تريد البحث في عددة ظنطاقا ت فرعية ،فسيسكون ملف الضبط كالتي:
إذا كنت تحاول عمل pingللمضيف ذي السم ،server1فسيطلب النظام تلقائصيا طلبية DNS
لسم النطاق السكامل ) ،([FQDN] Fully Qualified Domain Nameفي الترتيب التي:
server1.example.com .1
server1.sales.example.com .2
server1.dev.example.com .3
إذا لتتم نيعنثتتر علتتى أديتتة مطابقتتا ت ،فستتيزودظنا ختتادوم DNSبنتيجتتة » ،«notfoundوستفشتتل
طلبية .DNS
يمسكن تعريف أسماء ثابتة للمضيفين تربط بين اسم المضيف وعنوان IPفي ملف /etc/hosts؛
المدخل ت فتي ملتف hostsستستبق طلبي ا ت DNSافتراض صيا ،هتذا يعنتي لتو أن ظنظامتك ح اول تفس ير
اسم مضيف ،وكان هذا السم يطابق مدخلصة فتي ملتف ،/etc/hostsفلتن يحتاول البحتث فتي ستجل ت
تتعرف الخواديم الموصولة بعدد قليل من المتوارد الشتبسكية عل ى بعضتها باستتخدام أستماء المضتيفين
المثتتال التتتي هتتو ملتتف ،hostsحيتتث ظنجتتد عتتدصدا متتن الختتواديم المحليتتة قتتد نعدرنفتتت بأستتماء
127.0.0.1 localhost
127.0.1.1 ubuntu-server
10.0.0.11 server1 vpn server1.example.com
10.0.0.12 server2 mail server2.example.com
10.0.0.13 server3 www server3.example.com
10.0.0.14 server4 file server4.example.com
ن
ملحظة :لحظ أن كتل ختادوم متتن الختواديم فتي المثتال الستابق قتد أعطتي أستماصء بديلتصة بالضتتافة إلتتى أستتمائها
الساسية ،وأسماء النطاقا ت السكاملة؛ حيت نرشبنط server1مع السم ،vpnو server2نيشتتار إليته بالستتم ،mail
و server3بالسم ،wwwو server4بالسم .file
التتتترتيب التتتذي يتدبعتتته ظنظامتتتك لختيتتتار طريقتتتتة لتحويتتتل أستتتماء المضتتتيفين إلتتتى عنتتتاوين IP
نمنتنحنسكتتتةم بتتته متتتن ملتتتف إعتتتدادا ت »نمنبتتتددل خدمتتتة الستتتماء« )([NSS] Name Service Switch
الموجود في /etc/nsswitch.conf؛ وكما نذشكتت نر فتتي القستتم الستتابق ،فتتإن أستماء المضتتيفين الثابتتتة
المعنرفة في ملتف /etc/hostsتستبق استتتخدام ستجل ت DNS؛ المثتتال التتتي يحتتوي علتتى الستطر
:filesالمحاولتتتة أو صل للحصتتتول علتتتى العنتتتاوين متتتن ملتتتف أستتتماء المضتتتيفين الثابتتتتة فتتتي •
./etc/hosts
لتعديل ترتيب طرائتق استتبيان الستماء ) (name resolutionالمتتذكورة آظنصفتتا ،يمسكنتك بسكتتل
بستتتاطة تعتتتديل قيمتتتة عبتتتارة » «hostsللقيمتتتة التتتي تريتتتدها؛ علتتتى ستتتبيل المثتتتال ،لتتتو كنتتتت تفضتتتل
استتتخدام Unicast DNSالقتتديم ،بتتدصل متتن ،Mulitcast DNSفتستتتطيع تغييتتر تلتتك السلستتلة
إظنشاء جسر ) (bridgeبين عدة بطاقا ت شبسكية هو ضبط متقتتدم جتتصدا ،لسكنتته مفيتتد كتتثيصرا فتتي
حال ت عديدة ،أحتد تلتك الحتال ت هتو إظنشتتاء جستتر بيتن عتتدة اتصتتال ت شتبسكية ،ثتم استتخدام جتدار
ظناري لترشيح ) (filterما يمر بين قسمين من الشتبسكة؛ حالتةة أخترى هتي استتخدام إحتدى البطاقتتا ت
لتمسكيتتتن »الل ت الوهميتتة« ) (Virtual Machinesمتتن الوصتتول إلتتى الشتتتبسكة الخارجيتتتة؛ يشتترح
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
ملحظة :أد ش
خل القيم الملئمة لبطاقتك الفيزيائية ،والشبسكة عندك.
بالبطاقا ت التي تسكدون جزصءا من الجسر؛ راجع صفحة الدليل man brctlلمزيد من المعلوما ت.
ه .مصادر
هنالك وصل ت في صتفحة ويسكتتي أوبنتتو » «Networkتشتتير إلتى مقتتال ت تشتترح الضتتبط •
.resolvconf
ت أختتتترى لملتتتتف
صتتتتفحة دليتتتل man interfacesتحتتتتوي علتتتتى تفاصتتتتيل عتتتتن خيتتتتارا ت •
./etc/network/interfaces
صتتتفحة دليتتتل man dhclientتحتتتتوي علتتتى تفاصتتتيل عتتتن الخيتتتارا ت الختتترى لضتتتبط •
للمزيتد متن المعلومتا ت ح ول ض بط عميتل ،DNSراجتع صتفحة التدليل man resolver؛ •
راجتتع أي ص
ضتتا الفصتتل الستتادس متتن السكتتتاب المنشتتور متتن Linux Network» : O'Reilly
وخدمة السماء.
لمزيتتتتد متتتتن المعلومتتتتا ت حتتتتول الجستتتتور ،راجتتتتع صتتتتفحة التتتتدليل ،man brctlوصتتتتفحة •
.2بروتوكول TCP/IP
إن بروتوكول التحسكم فتي ظنقتل البياظنتا ت ) (Transmission Control Protocolوبروتوكتول
الظنترظنت ) (Internet Protocolالمستمى اختص اصرا TCP/IPهتو معيتار يضتم مجموعتة بروتوكتول ت
ت
مطتتتتور صة فتتتتي ظنهايتتتتة الستتتتبعينا ت متتتتن القتتتترن الماضتتتتي متتتتن وكالتتتتة مشتتتتاريع أبحتتتتاث التتتتدفاع المتقدمتتتتة
مختلف أظنواع الحواسيب وشبسكا ت الحواسيب؛ إن بروتوكول TCP/IPهو العصتتب المحتترك للظنتتترظنت،
المسكوظنتتان الرئيستتيان متتن مسكوظنتتا ت TCP/IPيتعتتاملن متتع مختلتتف ظنتتواحي شتتبسكة الحاستتوب؛
يتعامتتل متتع طريقتتة تتتوجيه ) (routingالتترزم الشتتبسكية مستتتخدصما متتا يستتمى » «IP Datagram
كوحتتتدة رئيستتتية للمعلومتتتا ت الشتتتبسكية؛ تتسكتتتون IP Datagramمتتتن ترويستتتة ،يتبعهتتتا رستتتالة .إن
بروتوكول التحسكتم فتي ظنقتل البياظنتا ت هتو » «TCPمتن ،TCP/IPونيمدسكتتن مضتيفي الشتبسكة متن إظنشتتاء
ن
بروتوكتتول TCPأن البياظنتتا ت التتتي أرشستتنلت بواستتطة تلتتك التصتتال ت سنتنستتنلم وتصتتل إلتتى مضتتيف
ن
الشبسكة النمستقشبل كما أرشسنلت تماصما وبنفس الترتيب من النمرشسل.
يتسكتتتون ضتتتبط TCP/IPمتتتن عتتتددة عناصتتتر التتتتي يمسكتتتن أن نتغ نيتتتر بتعتتتديل ملفتتتا ت العتتتدادا ت
الملئمتتة ،أو باستتتخدام حلتتول مثتتل ختتادوم »بروتوكتتول ضتتبط المضتتيف التتديناميسكي« ) Dynamic
صالحة لعملء الشبسكة تلقائصيا ،يجب أن نتضبط قيم تلك العدادا ت ضبصطا صحيصحا لسكي تساعد فتتي
عنوان :IPهو سلسة ظنصية فريدة نيع نبر عنها بأربع مجموعا ت من أرقتتام تتتتراوح بيتتن الصتتفر •
) ،(0ومئتتتان وخمتتةس وخمستتون ) ،(255مفصتتولةة بنقتتط ،وكتتل أربعتتة أرقتتام تمثتتل ثماظنيتتة ) (8
بتتتا ت متتن العنتتوان التتذي يسكتتون طتتوله السكامتتل اثنتتان وثلثتتون ) (32بصتتتا ،نتستتمى هتتذه الصتتيغة
قناع الشبسكة :قنتاع الشتبسكة الفرعيتة )أو باختصتار :قنتاع الشتبسكة ] ،([netmaskهتو قنتاع •
ثنتتائي يفصتتل قستتم عنتتوان IPالمهتتم للشتتبسكة ،عتتن قستتم العنتتوان المهتتم للشتتبسكة الفرعيتتة
) (Subnetwork؛ علتتى ستتبيل المثتتال ،فتتي شتتبسكة ذا ت الفئتتة ،(Class C network) C
IPللشتتبسكة ،ويستتمح لختتر بتتايت متتن عنتتوان IPأن يبقتتى متاصحتتا لتحديتتد المضتتيفين علتتى
الشبسكة الفرعية.
عنتتوان الشتتبسكة :يمثتتل عنتتوان الشتتبسكة ) (Network Addressالبايتتتا ت اللزمتتة لتمثيتتل •
الجتتزء الختتاص متتن الشتتبسكة متتن عنتتوان ،IPعلتتى ستتبيل المثتتال ،المضتتيف صتتاحب العنتتوان
حيتتتث يمثتتتل الرقتتتم 12البتتتايت الول متتتن عنتتتوان ) IPجتتتزء الشتتتبسكة( ،وبقيتتتة الصتتتفار فتتتي
البايتا ت الثلثة المتبقية تمثتل قيتم مضتتيفين محتمليتن فتتي الشتبسكة؛ وفتي مضتتيف شتبسكة
168.1.0التتتتتتذي يحتتتتتتدد أول ثلثتتتتتتة بايتتتتتتتا ت متتتتتتن شتتتتتتبسكة ذا ت الفئتتتتتتة Cوالتتتتتتتي هتتتتتتي
عنوان البث :عنوان البث ) (Broadcast Addressهو عنوان IPيسمح لبياظنا ت الشتتبسكة •
بتتأن نترنستتل إلتتى كتتل المضتتيفين مصعتتا فتتي شتتبسكة محليتتة بتتدصل متتن إرستتالها لمضتتيف محتتدد.
هتتذا العنتتوان لبتتث الرستتائل لسكتتل مضتتيف علتتى شتتبسكة الظنتتترظنت ،لن الموجهتتا ت ) (routers
تحجبها؛ ومن الملئتم أن نيضت نبط عن وان البتث لمطابقتة شتبسكة فرعيتة محتددة ،علتى س بيل
المثال ،في شبسكة خاصة ذا ت الفئة ،Cأي ،192.168.1.0يسكون عنوان البث 192.168.1
.255؛ نتونلد رسائل البث عادصة من بروتوكول ت شتتبسكدية مثتتل بروتوكتتول استتتبيان العنتتاوين
عنتتتوان البوابتتتة :إن عنتتتوان البوابتتتة ) (Gateway Addressهتتتو عنتتتوان IPالتتتذي يمسكتتتن •
الوصول عبره إلى شبسكة معينة أو إلتتى مضتتيف معيتتن علتى شتتبسكة؛ فتتإذا أراد أحتتد مضتتيفي
الشبسكة التواصل مع مضتي تف آختر ،ولسكتن المضتيف الختر ليتس عل ى ظنفتس الشتبسكة ،فيجتب
عندئ تذ استخدام البوابة؛ في حال ت عديدة ،يسكون عنوان البوابة في شبسكتة ما هتتو المتتوجه
) (routerعلى تلك الشتبسكة ،التتذي بتدوره نيمتت درر البياظنتتا ت إلتى بقيتتة الشتتبسكا ت أو المضتيفين
كمضيفي الظنترظنت على سبيل المثال .يجب أن تسكتتون قيمتتة عنتتوان البوابتتة صتتحيحصة ،وإل
فلن يستطيع ظنظامك الوصول إلى أي مضيف خارج حدود شبسكته ظنفسها.
أسماء مضيفي الشبسكة وتحويلها إلى عناوين IP؛ هنالك ثلث طبقا ت من عناوين ختتادوم
الستتتتتماء ،التتتتتتي يمسكتتتتتن أن نتحتتتتت ندد بتتتتتترتيب استتتتتتخدامها :ختتتتتادوم الستتتتتماء الرئيستتتتتي
) ،(Tertiaryولسكتتي يستتتطيع ظنظامتتك استتتبيان أستتماء أستتماء مضتتيفي الشتتبسكة وتحويلهتتا
إلى عناوين IPالموافقة لهم ،فيجب عليك تحديتد عنتاوين ختادوم الستماء التذي تثتق بته
خدمتتتة شتتتبسكتك ،لسكتتتن هنالتتتك ختتتواديم أستتتماء عديتتتدة متتتتوفرة مجاصظنتتتا للعمتتتوم ،كختتتواديم
تنبيه :إن عنوان ،IPوقناع الشبسكة ،وعنوان الشبسكة ،وعنوان البث ،وعنوان البوابة نتحندد عتتادصة بالمسكتتان الملئمتتة
لهتتا فتتي ملتتف ،/etc/network/interfacesعنتتاوين ختتادوم الستتماء نتحتتندد عتتادة فتتي قستتم nameserverفتتي
ملتتف ،/etc/resolve.confللمزيتتد متتن المعلومتتا ت ،راجتتع صتتفحة التتدليل لسكتتتل متتن interfacesو resolv.conf
على التوالي وبالترتيب ،وذلك بسكتابة الوامر التية في محث الطرفية:
يمدثتتل تتتوجيه (IP Routing) IPالوستتائل اللزمتتة لتحديتتد واكتشتتاف الطتترق فتتي شتتبسكا ت
TCP/IPبالضافة إلى تحديد بياظنا ت الشبسكة التي سنترنسل ،نيستتتخشدم التتتوجيه متتا يستتمى »جتتداول
التتتوجيه« ) (routing tablesلدارة تمريتتر رزم بياظنتتا ت الشتتبسكة متتن مصتتدرها إلتتى وجهتهتتا؛ وذلتتك
عتتادة بواستتطة عقتتد شتتبسكدية وستتيطة تستتمى »موجهتتا ت« )(routers؛ وهنالتتك ظنوعتتان رئيستتيان متتن
يشتمل التوجيه الثابت على إضافة توجيها ت IPيدوييا إلى جدول توجيها ت النظام ،ويتم ذلتتك
عادصة بتعديل جدول التوجيها ت باستخدام المر route؛ يتمتع التوجيه الثابت بعددة مزايا تميتتزه عتتن
التتتوجيه التتديناميسكي ،كستتهولة استتتخدامه فتتي الشتتبسكا ت الصتتغيرة ،وقابليتتة التوقتتع )نيحنستتب جتتدول
التوجيها ت مستب صقا دائصمتا ،وهتتذا متتا يتؤدي إلتتى استتتخدام ظنفتتس المستار فتي كتتل متترة( ،ويتؤدي إلتى ش
حمتتتل
قليتتتتل علتتتتى الموجهتتتتا ت الختتتترى ووصتتتتل ت الشتتتتبسكة ظنتيجتتتتصة لعتتتتدم استتتتتخدام بروتوكتتتتول ت التتتتتوجيه
محتتتدوةد للشتتتبسكا ت الصتتتغيرة ،ول يمسكتتتن أن يتونستتتع توستتتصعا ستتتهصل ،ويصتتتعب عليتتته التتتتأقلم متتتع ظنقصتتتان
أو فشل معدا ت الشبسكة في الطريق المسلوك ظنتيجصة للطبيعة الثابتة لذاك الطريق.
نيعنت نمد على التوجيه الديناميسكي في الشبسكا ت السكبيرة ذا ت احتمتتال ت عديتتدة للطتترق الشتتبسكية
المسلوكة من المصتتدر إلتتى الوجهتتة ،ونتستتتخ ندم بروتوكتتول ت تتوجيه خاصتتة ،كتتبروتوكول معلومتتا ت
الموجه )] ،(Router Information Protocol [RIPالذي يتتونلى أمتتر التعتتديل ت التلقائيتتة فتتي
جداول التوجيه ،مما يجعل من التوجيه الديناميسكي أمصرا ممسكصنتتا؛ وللتتوجيه التتديناميسكي مزايتتا عتتددة
عن التوجيه الثابت ،كإمسكاظنية التوسع بستتهولة ،والتتتأقلم متتع ظنقصتتان أو فشتتل معتتدا ت الشتتبسكة خلل
ظنتيج صة لخطأ بشري في جداول الت وجيه .لسكتن التتوجيه التديناميسكي ليتس كتامصل ،ويتأتي متع عيتوب،
كالتعقيد ،وال ش
حمل الزائتد علتى الشتبسكة بستبب التواصتل بيتن الموجهتا ت ،التتي ل تفيتد المستتخدمين
لتصتتحيح الخطتتاء ،وضتتماظنصة لتستتليم البياظنتتا ت عتتبر متتا نيعتتنرف بالمصتتطلح »التحسكتتم فتتي الجريتتان«
) ،(flow controlنيح ددد التحسكم في الجريان متى يجب إيقاف ظنقل البياظنا ت ،وإعادة إرسال الرزم
ن
التي أرشسنلت ساب صقا والتتي واجهتتة مشتتاكل كالتصتادما ت )(collisions؛ إذ أنن التأكيتتد علتتى الوصتول
التدقيق والسكامتتل للبياظنتتا ت عتبر بروتوكتول TCPهتو أمتر جتوهري فتي عمليتتة تبتتادل البياظنتتا ت المهمتة
أمتتا بروتوكتتول (User Datagram Protocol ) UDPعلتتى الجهتتة الختترى ،هتتو بروتوكتتول
عديم التصتتال ) ،(connectionlessالتذي ظنتتادصرا متتا يتعامتتل متع عمليتتا ت ظنقتل البياظنتتا ت المهمتتة لظنته
يفتقر إلى التحسكم في جريان البياظنا ت أو أ دية طريقة أخرى للتأكد متتن توصتتيل البياظنتتا ت عملصيتتا؛ لسكتتن
والصورة ،حيث أظنه أسرع بسكثير من TCPلظنه ل يحتوي على آليتة لتصحيح الخطاء والتحسكم في
الجريان ،وفي الماكن التي ل يهم فيها فقدان بعض الرزم الشبسكية كثيصرا.
بروتوكول الظنترظنت ) (IPالذي نيعتتنرف فتتي (Request For Comments) RFCذي الرقتتم #792
ويتتدعم التحسكتتم فتتي احتتتواء التترزم الشتتبسكية والخطتتاء ورستتائل المعلومتتا ت ،نيستتتخندم بروتوكتتول
ICMPبتطبيقتتتا ت شتتبسكدية كتتأداة ،pingالتتتتي تستتتتطيع تحديتتتد إذا متتتا كتتتان جهتتتاةز متتتا متاصحتتتا علتتى
الشبسكة ،أمثلة عن رسالة الخطأ النمعاندة من - ICMPالتتتي تسكتتون مفيتتدصة لمضتتيفي الشتتبسكة وللجهتتزة
و .العفاريت
العفتتاريت ) (Daemonsهتتتي تطبيقتتتا ت ظنظتتتام خاصتتة التتتتي تعمتتل عتتادصة عمصل دائصمتتا فتتي الخلفيتتة،
ت للوظائف التي توفرها من التطبيقا ت الخرى ،يتمحور عمتل العديتد متن العفتاريت حتول
وتنتظر طلبيا ت
الشبسكة ،وبالتالي فإن عتد صدا كتبيصرا متن العفتاريت ال تي تعمتل فتي الخلفيتة فتي ظنظتام أوبنتتو نت ودفر وظتائف
تتعلتتق بالشتتبسكة؛ بعتتض المثلتتة عتتن عفتتاريت الشتتبسكة تتضتتمن »عفريتتت بروتوكتتول ظنقتتتل النتتص الفتتائق«
و »عفريتتت الصتتدفة المنتتة« ) ،([sshd] Secure SHell Daemonالتتذي يتتوفر طريقتصة للتتدخول المتتن
عتتن نبعتتد وإمسكاظنيتتا ت ظنقتتل الملفتتا ت؛ و »عفريتتت بروتوكتتول الوصتتول إلتتى رستتائل الظنتتترظنت« ) Internet
ز .مصادر
تتوفر صفحا ت دليتل لبروتوكولي TCPو IPالتي تحتوي على معلوما ت قيدمة. •
راجع أي ص
ضا المصدر التي من .«TCP/IP Tutorial and Technical Overview » :IBM •
هو خدمة شبسكة نتف دعل إسناد إعدادا ت الشبسكة إلى الحواستتيب المضتيفة متن ختتادوم بتدصل متتن إعتتداد
كتتل مضتتيف شتتبسكي يتتدوصيا؛ حيتتث ل تملتتك الحواستتيب النمعتتندة كعملتء لخدمتتة DHCPأديتتة تحسكتتم
من مزايا استخدام DHCPهتو أن أي تغييت تر فتتي إعتتدادا ت الشتبسكة -علتتى ستتبيل المثتال تغييتر
عنتوان ختتادوم -DNSستيتم فتتي ختتادوم DHCPفقتط ،وست نيعاد ضتبط جميتتع مضتتيفي الشتبسكة فتتي
استعمال خادوم DHCPإضافة حواسيب جديدة إلى الشبسكة ،فل حاجة للتحقتق متن تتوفر عنتوان
IP؛ وسيقل أي ص
ضا التضارب في حجز عناوين .IP
تتضتتمن هتتذه الطريقتتة استتتخدام DHCPللتعتترف علتتى عنتتوان مميتتز لعتتتاد كتتل كتتر ت شتتبسكة
خادوم DHCPباستخدام بطاقتة الشتتبسكة المعدينتتة مستبصقا؛ وهتتذا يضتتمن أن نيستتنند عنتوان معديتن إلتى
سنيستتشند ختتادوم - DHCPفتتي هتتذه الطريقتتة -عنتتوان IPمتتن مجموعتتة متتن العنتتاوين )تستتمى
،poolأو فتتي بعتتض الحيتتان rangeأو (scopeلمتتدة متتن الزمتتن )يستتمى ذلتتك بالمصتتطلح (lease
التتتي نتضتت نبط فتتي الختتادوم ،أو حتتتى يختتبر العميتتل الختتادوم أظنتته لتتم يعتتد بحاجتتتة للعنتتوان بعتتد الن؛
وسيحصل العملء في هذه الطريقة على خصائص الضبط ديناميسكييا وف ق المبتدأ »التذي يتأتي أوصل،
نيخندم أوصل«؛ وعندما ل يسكون عميتتل DHCPمتواجت صدا علتتى الشتتبسكة لفتتترة محتددة ،فستتينتهي وقتت
الضبط المخصص له ،وسيعود العنتوان المستند إليته إلتى مجموعتة العنتاوين لستتخدامه متن عملء
DHCPالخرين؛ أي أ نظنته فتتي هتتذه الطريقتتة ،يمسكتتن » تتأجير« أو استتتخدام العنتوان لفتترة متن الزمتن؛
وبعد هذه المدة ،يجب أن يطلب العميل من الخادوم أن يعيد تأجيره إياه.
سنيستتشند ختتادوم - DHCPفتتي هتتذه الطريقتتة -عنتتوان IPإستتنا صدا دائصمتتا إلتتى جهتتاز معيتتن ،ويتتتم
اختيار هذه العنوان من مجموعة العناوين المتوفرة؛ نيضنبط عادصة DHCPلسكي نيستتشند عنواصظنتتا مؤقصتتتا
يمسكن اعتبار آخر طريقتين »تلقائينتين« ،لظنه في كل حالة نيسشند ختتادوم DHCPالعنتتوان دون
يتتتتتأتي أوبنتتتتتتو متتتتتع ختتتتتادوم وعميتتتتتل ،DHCPالختتتتتادوم هتتتتتو dynamic host) dhcpd
أن يث نبتتتت علتتتى جميتتتع الحواستتتيب التتتتي تريتتتدها أن نتنعتتتدد تلقائصيتتتا ،كل البرظنتتتامجين ستتته ن
ل التثتتتبيت،
ا .التثبيت
ربما تحتاج أي ص
ضا إلى تعديل /etc/default/isc-dhcp-serverلتحديد البطاقتتا ت الشتتبسكية
ب .الضبط
ربمتتا ستتيربسكك ظهتتور رستتالة خطتتأ عنتتد اظنتهتتاء التثتتبيت ،لسكتتن الخطتتوا ت التيتتة ستستتاعدك فتي
ضبط الخدمة:
في الحال ت الكثر شيوصعا ،كل ما تريد أن تفعله هو إسناد عناوين IPإستتناصدا عشتتوائصيا ،يمسكتتن
ظنتيجة العدادا ت السابقة هي ضبط خادوم DHCPلعطتتاء العملء عنتاوين IPتتتتراوح متتن
وقصتتتتا محتتتد صدا؛ عتتتدا ذلتتتك ،فستتتيسكون وقتتتت اليجتتتار القصتتتى للعنتتتوان هتتتو 7200ثاظنيتتتة؛ و»سينصتتتح«
الخادونم العميتت ن
ل أن يستتتخدم 192.168.1.254كبوابتتة افتراضتتية ،و 192.168.1.1و 192.168.
ي .DNS
1.2كخادونم د
ج .مصادر
.dhcpd.conf
بسيطة :يطلب العميل الوقت الحالي من الخادوم ثم يستخدمه لمزامنة ساعته الداخلية.
هنالك السكثير من التعقيدا ت خلتتف هتتذا التفستتير البستتيط ،فهنالتتك درجتتا ت متتن ختواديم NTP؛
فالدرجتتتة الولتتتى متتتن ختتتواديم NTPتتصتتتل بستتتاعا ت ذرديتتتة ) ،(atomic clockوالدرجتتتة الثاظنيتتتة
بسكتتثير ممتتا تظتتن ،فهنالتتك عامتتل لختتذ التتتأخير فتتي التصتتال ت بعيتتن العتبتتار ،وتعتتديل التتوقت فتتي
طريقة ل نتف شسد وظيفة جميع العمليا ت التي تعمل في الخادوم؛ ولحسن الحظ أنن كتتل هتتذا التعقيتتد
يأتي أوبنتو افتراضصيا مع الداة ،ntpdateوستعمل عند القلع لتضبط وقتك وفصقا لخادوم
NTPالخاص بأوبنتو:
ntpdate -s ntp.ubuntu.com
يحستتب عفريتتت ntpالظنزيتتاح فتتي ستتاعة وقتتت النظتتام ،ويعتتددلها باستتتمرار ،لتتذلك لتتن يسكتتون
هنالك تصحيحا ت كبيرة ستؤدي إلى اختلل في السجل ت ) (logsعلى سبيل المثال .لسكن سيسكون
ثمن ذلك هو القليل من طاقة المعالجة والذاكرة ،ولسكن هذا ل نيذنكر بالنسبة إلى الخواديم الحديثة.
التثبيت.ج
الضبط.د
، لضتتافة أو إزالتتة الستتطر التتتي تحتتوي علتتى عنتتاوين الختواديم/etc/ntp.conf عددل الملف
▲ | 88
دليل إدارة خواديم أوبنتو 14.04 - الشبسكا ت
و .مصادر
.1مقدمة عن DM-Multipath
يستتمح لتتك »ربتتط الجهتتزة بطتترتق متعتتددة« ) DM-] Device mapper multipathing
([Multipathبضبط طرق متعددة للدخل والخرج ) (I/Oبين عقد الخادوم ومصفوفا ت التخزيتتن
في جهاز واحد .طرق الدخل والخرج تلتك هتي اتصتال ت SANفيزيائي ة التتي تتض من أكبتاصل منفصتلصة
الدخل والخرج ،ونينششئ جهاصزا جديصدا يحتوي على طرق مجنمعة؛ يودفر هذا الفصل ملخ ص
صا عن ميتتزا ت
DM-Multipathالجديتتتدة لنستتتخة الختتتادوم 12.04متتتن أوبنتتتتو؛ وبعتتتد ذلتتتك ستتتيوفر الفصتتتل ظنظتتترة
لم تعد تعمل المتحققا ت من الولوية كملفا ت ثنائية بحد ذاتها ،بل كمسكتبا ت مشتتتركة؛ ونعتتددل
ضا اسم قيمة المفتاح ) (keyلهذه الميزة تعديصل طفيصفا ،اظنسخ الخاصية المسماة prio_callout
أي ص
إلى ،prioوع ددل الوسيط الممرر إلى المتحقق من الولوية ،حيث لم يعد يهم تمريتتر مستتار النظتتام؛
مثال عن التحويل:
{ device
"vendor "NEC
"product "DISK ARRAY
prio_callout mpath_prio_alua /dev/%n
prio alua
}
ولما كان ملف الضبط الخاص بتعتتدد الطترق نيف دستر جميتع ثنائيتتا ت »المفتتاح/القيمتتة« ويتترى إن
المستحسن أن نتضاف الخاصتتية prioقبتل بدايتة عمليتة الظنتقتتال للصتدار الحتتدث ،ثتتم يمسكنتك أن
ضتتبط »فعتتال/غيتتر فعتتال« )(active/passive؛ فنيستتتخندم -فتتي الضتتبط الستتابق -ظنصتتف عتتدد
الطرق في آن واحتتد للتدخل أو الخترج ،وإذا فشتل مسكتون متن مسكوظنتا ت طريتق التدخل أو الخترج
)السكبل ،أو المبدل ،أو المتحسكم( ،فسيتحول DM-Multipathإلى طريق آخر بديل.
) ،(active/activeحيتتث يتتوزع التتدخل أو الختترج بيتتن الطتترق عتتبر آليتتة ،round-robin
إذا كاظنت مصفوفة التخزيتتن الخاصتتة بتتك تتتدعم ،DM-Multipathلسكنهتتا غيتتر مضتتبوطة افتراضتتصيا
في هذا الملتتف ،فربمتتا تحتتتاج لضتتافتها إلتتى ملتتف ضتبط ،(multipath.conf) DM-Multipath
للمزيتتد متتن المعلومتتا ت ،راجتتع القستتم »ملتتف ضتتبط .«DM-Multipathتتطلتتب بعتتض مصتتفوفا ت
ت التخزيتتن تعتتام صل خا ص
صتتا متتع أخطتتاء التتدخل أو الختترج ،وتبتتديل الطتترق؛ وهتتذا متتا يتطلتتب وحتتدا ت
الوصف المسكون
إعادة توجيه الدخل أو الخرج ،ودعم تجاوز الفشل للطرق ،ولمجموعا ت وحدة النواة
الطرق. dm_multipath
يء ة
يراقب الطرق ،وعندما يفشل طريق ما ثم يعود إلى العمل ،فإظنه يه د
مبدل ت مجموعة الطريق؛ ويوفر تعديل ت تفاعلية لجهزة
عفريت multipathd
multipath؛ ويجب إعادة تشغيل هذا العفريت عندما تحدث أدية
الجهاز .من الضروري استخدام هذا المر للقسام المبنية على DOSمع
المر kpartx
،DM-Multipathنيونفر المر kpartxفي حزمة خاصة به ،لسكن
إظنشاء ملف ضبط فارغ ،/etc/multipath.confالذي سيعيد تعريف ما سيلي ذكره لحصقا. .2
.3إذا كان ذلك ضرورصيا ،حدرر ملف ضبط multipath.confلتعتتديل القيتتم الفتراضتتية ،ثتتم
.2أجهزة Multipath
سيعامل كل طريتتق متن عقتتدة الختادوم إلتى متحسكتتم التخزيتن كجهتتاز منفصتتل إذا لتم تستتتعمل
، DM-Multipathحتى لو كان طريق الدخل أو الخرج يصل ظنفس عقدة الختتادوم بنفتتس متحسكتتم
التخزيتتن ،حيتتث يتتوفر DM-Multipathطريقتتصة لتنظيتتم طتترق التتدخل أو الختترج منطقصيتتا ،وذلتتك
لسكتتل جهتتاز متعتتدد الطتترق ) (multipath deviceمعتترف عتتالمي ) ،(WWIDالتتذي يضتتمن أن
يسكتتون فريتتصدا عالمصيتتا ،ول يمسكتتن تعتتديله؛ نيضتتنبط استتم جهتتاز multipathافتراضتتصيا إلتتى WWID
الخاص بتته؛ لسكتتن يمسكنتتك ضتبط خيتتار user_friendly_namesفتي ملتتف إعتتدادا ت multipath
الذي يجعل DM-Multipathيستخدم أسماصء بديلة فريدة لسكل عقدة من الشسكل .mpathn
علتتتى ستتتبيل المثتتتال ،إذا كتتتاظنت عقتتتدةة متتتا ذا ت جهتتتانزي HBAموصتتتولصة إلتتتى متحسكتتتم تخزيتتتن
بمنفتتذين عتتبر مبتتدل FCغيتتر نمقنستتتم لمنتتاطق ،فتتإظنه يتترى أربعتتة أجهتتزة ،/dev/sda :و ،/dev/dsb
يعيد توجيه الدخل أو الخرج لهذه الجهزة الربعتتة وفصقتا لضتبط ،multipathوعنتدما يفنعتل خيتار
الجهتتزة الجديتتدة التتتي توضتتع تحتتت ستتيطرة DM-Multipathفتتي مسكتتاظنين مختلنفيتتن فتتي مجلتتد
نتننشتتتأ الجهتتتزة فتتتي /dev/mapperفتتتي مرحلتتتة مبسكتتترة متتتن عمليتتتة القلع ،استتتتخدم هتتتذه
الجهزة للوص ول إلتى الجهتتزة المتعتددة الطترق ،عل ى ستبيل المثتال عنتد إظنشتاء الحجتوم المنطقيتة
) .(logical volumesأديتتة أجهتتزة متتن النمتتط /dev/dm-nنتستتتخندم داخلصيتتا فقتتط ،ول يجتتب أن
للمزيتتتد متتتن المعلومتتتا ت حتتتول ضتتتبط multipathالفتراضتتتي ،بمتتتا فتتتي ذلتتتك خيتتتار الضتتتبط
استم جهتتاز multipathإلتى استتم متن اختيتتارك باستتتخدام الخيتار aliasفتي قستتم multipaths
فتتي ملتتف ضتتبط multipath؛ للمزيتتد متتن المعلومتتا ت حتتول قستتم multipathsفتتي ملتتف ضتتبط
multipathهو فريد بالنسبة للعقدة ،لسكن ليس مضموصظنا أن يسكون هو ظنفسه فتتي جميتتع العقتتد التتتي
تستتتتخدم جهتتتاز .multipathوبشتتتسكل مشتتتابه ،إذا استتتتخدمت الخيتتتار aliasللجهتتتاز فتتتي قستتتم
multipathsفي ملف الضبط ،multipath.confفإن السم لن يسكون ذاته متناستتصقا تلقائصيتتا فتتي
جميتع العقتد فتي الشتبسكة العنقوديتة .هتذا لتن يتؤدي إلتى حتدوث صتعوبا ت إذا كنتت تستتخدم LVM
لظنشتتتاء أجهتتتزة منطقيتتتة متتتن جهتتتاز العقتتتدة .لسكتتتن إن كنتتتت تتطلتتتب أن تسكتتتون أستتتماء جميتتتع أجهتتتزة
multipathفتتتتتتتتتي كتتتتتتتتتتل عقتتتتتتتتتتدة متناغمتتتتتتتتتت صة ،فتتتتتتتتتتإظنه متتتتتتتتتتن المستحستتتتتتتتتتن أن تتتتتتتتتتتترك الخيتتتتتتتتتتار
وبشسكل مشابه ،إذا أرد ت ضبط استتم بتتديل للجهتتاز ،لسكنتتك تريتتده أن يسكتتون متناستتصقا فتتي جميتتع
العقد في الشبسكة العنقودية ،فعليك أن تتأكد أن الملف /etc/multipath.confهو ظنفستته فتتي كتتل
واحد.
عطل جميع أجهزة multipathفي حواسيبك البقية بتطبيق الوامر التية: •
اظنستتخ ملتتف multipath.confمتتن الجهتتاز الول إلتتى جميتتع الجهتتزة البقيتتة فتتي الشتتبسكة •
العنقودية.
أعتتد تفعيتتل عفريتتت multipathdفتتي جميتتع الجهتتزة الختترى فتتي الشتتبسكة العنقوديتتة •
عديدة؛ تستطيع تعتتديل هتتذه الخاصتتيا ت لجهتتاز multipathمعيتتن بإظنشتتاء مدخلتتة ) (entryلتتذاك
الجهاز في قسم multipathsفي ملف إعدادا ت .multipathلمزيتتد متتن المعلومتتا ت حتتول قستتم
بعتتد إظنشتتاء أجهتتزة ،multipathيمسكنتتك استتتخدام أستتماء أجهتتزة multipathكمتتا لتتو كنتتت
/mpathaكحجم فيزيائي:
يمسكنتتك استتتخدام جهتتاز LVMالفيزيتتائي الناتتتج لظنشتتاء مجموعتتة حجتوم LVMكمتتا لتو كنتت
ملحظة :لو كنت تحتاول إظنشتتاء حجتتم LVMفيزيتتائي علتى كامتتل الجهتتاز التتذي ضتتبطت عليته أقستاصما ،فسيفشتتل
تنفيذ المر .pvcreate
كبنيتتتة تحتيتتتة للجهتتتزة الفيزيائيتتتة؛ فعليتتتك تضتتتمين مرشتتتحا ت ) (filtersفتتتي ملتتتف lvm.conf
لستتتتثناء هتتتذه القتتتراص التتتتي تسكتتت دون البنيتتتة التحتيتتتة لجهتتتزة multipath؛ وهتتتذا لظنتتته لتتو كتتتاظنت
المصتتفوفة تغيتتر تلقائ صيتتا الطريتتق الفعتتال إلتتى طريتتق غيتتر فعتتال عنتتدما تتلقتتى دخصل أو خرصجتتا ،فتتإن
multipathس يتجاوز الفشتل ،لسكنته »سيفشتل« عنتدما يتفحتص LVMالطريتق غيتر الفعتال إذا لتم
نترنشح تلك الجهزة ،سيعرض LVMرستتالة تحتذير عنتدما يحتتدث ذلتتك فتتي مصتتفوفا ت »فعتتال/غيتر
فعال« )التي تتطلب أمصرا لجعتتل الطريتتق غيتتر الفعتتال فعتتاصل( .لترشتتيح جميتتع أجهتتزة SCSIفتتي ملتتف
متتتن الضتتتروري بعتتتد تحتتتديث ملتتتف /etc/lvm.confأن نيحتتتندث initrdلتتتذلك سنيننستتتخ هتتتذا
الملف هناك ،حيث يهم المرشح كثيصرا أثناء القلع؛ ظنفذ المر:
update-initramfs -u -k all
ملحظة :في كل مرة نيحندث فيها ملف /etc/lvm.confأو ،/etc/multipath.confفيجب إعادة بنتتاء initrd
ب عندما تسكون القوائم السوداء والمرشتحا ت ضتروريصة للحفتتاظ علتتى ضتب ت
ط لتطبيق هذه التغيرا ت ،هذا المر واج ة
للتخزين ذي بنيتة صلبتة.
.multipath-tools-boot
ضا القائمة السوداء الداخلية ،وإذا لم نتسكنتشف أدية طرق بعتتد تشتتغيل ،multipath -ll
ويستعمل أي ص
فيجب توفير طريق لزيادة درجة السهاب لكتشاف لماذا لم نيننشأ .multipathخذ بعين العتبتتار
الرجوع إلى توثيق شركة SAN؛ توجد أمثلة عن ملفا ت الضتبط فتي /usr/share/doc/multipath
ملحظة :لتجاوز حالة خاصتتة فتي multipathdعنتتدما ل يتتتوفر ملتتف ،/etc/multipath.confعندئتتتذ ل يعيتتد
المتتر الستتابق أديتتة مخرجتتا ت كنتيجتتتة لعمليتتة الدمتتج بيتتن /etc/multipath.confوقاعتتدة البياظنتتا ت فتتي التتذاكرة؛
فلحل ذلك ،إما أن تعدرف ملف /etc/multipath.confفارغ باستخدام المر touch؛ أو أن تعيتتد تعريتتف القيمتتة
الفتراضية كما يلي:
{ defaults
user_friendly_names no
}
وأعد تشغيل :multipathd
sudo service multipath-tools restart
سيعيد المر » «show configقاعدة البياظنا ت الحية.
install disk-detect/multipath/enable=true
>/dev/mapper/mpath<X
لبعض الحواسيب بطاقتتا ت SCSIلقراصتتها المحليتة؛ وليتس متتن المستحستن استتخدام DM-
Multipathلهذه القراص ،ستظهر العملية التية كيفية تعديل ملف ضبط multipathلتجاهل
وع دلمهتتا كتلتتك الموجتتودة فتتي القائمتتة الستتوداء؛ إن،حتتدد أديتتة أقتتراص هتتي القتتراص الداخليتتة
لحتتتظ أظنتتته مضتتتبوط أصتتتلصيا فتتتي ملتتتف ضتتتبط، هتتتو قتتترص داخلتتتي- فتتتي هتتتذا المثتتتال- /dev/sda
راجتتع القستتم،multipath ؛ للمزيتتد متتن المعلومتتا ت حتتول ظناتتتج ختترج المتترmultipath خريطتتة
▲ | 103
دليل إدارة خواديم أوبنتو 14.04 - ربط الجهزة متعدد الطرق
لسكتتي نيمننتتع رابتتط الجهتتزة متتن ربتتط /dev/sdaفتتي خرائتتط multipathالخاصتتة بتته ،فعتتددل
الرغتتم متتن أظنتتك تستتتطيع جعتتل الجهتتاز sdaضتتمن القائمتتة الستتوداء باستتتخدام النتتوع ،devnode
لسكنها لن تسكون طريقصة آمنصة لظننا ل يمسكتتن أن ظنضتتمن أن /dev/sdaستتيبقى بنفتتس الستتم عنتتد إعتتادة
التشغيل؛ لضتتافة أجهتتزة منفصتلة إلتى القائمتتة الستوداء ،فيمسكنتتك استتخدام WWIDلتذاك الجهتتاز،
/etc/multipath.confلحجبه:
{ blacklist
wwid SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1
}
لعتترضmultipath -ll يمسكنتتك تنفيتتذ المتتر،للتحقتتق فيمتتا إذا ظنجحتتت عمليتتة إزالتتة الجهتتاز
للتأكتتد متتن أن الجهتتاز المضتتاف إلتتى القائمتتة.multipath -ll للمزيتتد متتن المعلومتتا ت حتتول المتتر
كمتتا فتتي المثتتال التتتي؛ حيتتثmultipath فتستتتطيع تنفيتتذ المتتر،ضتتف متترصة ثاظنيتتصة
الستتوداء لتتم ني ن
sudo multipath
▲ | 105
دليل إدارة خواديم أوبنتو 14.04 - ربط الجهزة متعدد الطرق
يتضتتمن DM-Multipathافتراضتت صيا دعصمتتا لغلبيتتة مصتتفوفا ت التخزيتتن التتتي تتتدعم DM-
، Multipathقيتم العتتدادا ت الفتراضتية ،بمتتا فيهتتا الجهتتزة المدعومتتة ،يمسكتن أن توجتتد فتي ملتتف
.multipath.conf.defaults
إذا احتجت لضافة جهاز تخزين غير مدعوم افتراضتتصيا كجهتتاز multipathمعتتروف ،فعتتدل
على سبيل المثال ،لضافة معلوما ت حول سلسة ،HP Open-Vفستتتبدو المدخلتتة كمتتا يلتتي،
{ devices
{ device
"vendor "HP
"product "OPEN-V.
getuid_callout "/lib/udev/scsi_id --whitelisted
"--device=/dev/%n
}
}
للمزيد من المعلوما ت حول قسم الجهزة في ملف الضبط ،اظنظر قسم »ملف ضبط الجهزة«.
path.conf؛ ويمسكنك إضافة مصفوفا ت التخزين غير المدعومة افتراضصيا في ملتف العتتدادا ت إن
ستتتحتاج -فتتي ملتتف ضتتبط -multipathإلتتى تحديتتد القستتام التتتي تحتتتاج لهتتا للضتتبط التتذي
تريتتده ،أو إذا أرد ت تغييتر القيتم الفتراضتتية المضتبوطة فتتي ملتف multipath.conf.defaults؛
إذا كاظنت هنالك أقسام ليست متعلقة ببيئة عملك ،أو التي ل تحتاج إلتتى تجتتاوز قيمهتتا الفتراضتتية،
فإظنك تستطيع أن تتركها وقبلها رمز التعليق ،كما كاظنت في الملف البتدائي.
يمسكن العثور على ظنسختة مليئتة بالتعلقيا ت من مثاتل عن ملف العدادا ت في المسار:
/usr/share/doc/multipath-tools/examples/multipath.conf.annotated.gz
:blacklistقائمة بالجهزة التي ل تدخل بعين العتبار عند استخدام .multipath •
كان يجب أن تسكون في القائمة السوداء ،وذلك وفصقا لضبط قسم القائمة السوداء.
:multipathإعدادا ت لصفا ت أجهزة multipathالفردية ،ستتجاوز هذه القيتتم متتا هتتو •
:devicesالعتتدادا ت لسكتتل متحسكتتم متتن متحسكمتتا ت التخزيتتن ،هتتذه القيتتم ستتتتجاوز تلتتك •
المحتتتددة فتتتي قستتتم defaultsفتتتي ملتتتف الضتتتبط ،إذا كنتتتت تستتتتخدم مصتتتفوفة تخزيتتتن
عنتتتتتدما نيحتتتتتددد النظتتتتتام خاصتتتتتيا ت جهتتتتتاز ،multipathفتتتتتإظنه يتحقتتتتتق أوصل متتتتتن إعتتتتتدادا ت
،multipathثم إعدادا ت كل جهاز على حدة ،ثم القيم الفتراضية لنظام .multipath
قسم القائمة السوداء متتن ملتتف ضتتبط multipathيحتتدد الجهتتزة التتتي لتتن تستتتخدم عنتتدما
يضتتبط النظتتام أجهتتزة ، multipathالجهتتزة الموجتتودة فتتي القائمتتة الستتوداء لتتن تجنمتتع إلتتى جهتتاز
.multipath
إذا أرد ت حجب الجهزة ،فيمسكنك فعل ذلك عبر أحد الشروط التية:
بواسطة اسم الجهاز ،كما هو مشروةح في قسم »الحجب بواسطة اسم الجهاز«. •
بواسطة ظنوع الجهاز ،كما هو مشروةح في قسم »الحجب بواسطة ظنوع الجهاز«. •
اسم الجهاز«.
يمسكنك إضتافة أجهتزة معينتتة إلتتى القائمتتة الستوداء بواستطة معرفهتتا العتالمي باستتتخدام القيتد
نيظ شهتتتر المثتتتال التتتتي الستتتطر فتتتي ملتتتف الضتتتبط التتتتي ستتتتحجب جهتتتاصزا معدرفتتته العتتتالمي هتتتو
:26353900f02796769
{ blacklist
wwid 26353900f02796769
}
تستتتتطيع حجتتتب أظنتتتواع الجهتتتزة عتتتبر استتتم الجهتتتاز ،ممتتتا يتتتؤدي إلتتتى عتتتدم جمعهتتتا فتتتي جهتتتاز
يوضتتح المثتتال التتتي الستتطر فتتي ملتتف الضتتبط التتتي تستتتخدم لحجتتب جميتتع أجهتتزة ،SCSI
{ blacklist
"]devnode "^sd[a-z
}
تستطيع استخدام القيد devnodeفي قسم blacklistفتي ملتف الضتبط لتحديتد الجهتزة
كيل على حدة بدصل من تحديد جميع الجهزة من ظنتوع معديتن ،لسكتن هتذا ليتس مستحستصنا ،لظنهتا إن لتم
تسكن هذه الجهزة معنرفة ومربوطتة ربصطتا ثابصتتتا باستتخدام قواعتد ،udevفليتس هنالتك أديتة ضتماظنة
أن الجهاز المحدد سيسكون له ظنفتس الستم بعتد إعتادة القلع؛ فعلتى س بيل المثتال ،ربمتا يتغيتر استم
قيود devnodeالتية موجودة في القائمة الستوداء افتراضتتصيا؛ الجهتتزة التتتي تحجبهتتا هتتذه
القيتتود ل تتتدعم DM-Multipathعموصمتتا ،ولتفعيتتل تعتتدد الطتترق فتتي أي جهتتاز متتن تلتتك الجهتتزة،
»استثناءا ت الحجب«:
{ blacklist
"*]devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9
"]devnode "^hd[a-z
}
تستطيع تحديد أظنواع أجهتزة معينتة فتي قستم blacklistمتن ملتف الضتبط باستتخدام قستتم
{ blacklist
{ device
vendor ""IBM
product ""3S42 #DS4200 Product 10
}
{ device
vendor ""HP
product "*"
}
}
استثناءات الحجب
تستطيع استخدام قسم blacklist_exceptionsفي ملف الضبط لتفعيل تعدد الطرق فتتي
على سبيل المثال ،إذا كان لديك عدةد كبي ةر متن الجهتزة ،وتريتد أن تستمح لجهتاز واحتد فقتط أن يتدخل
فبتتدصل متتن حجتتب كتتل الجهتتزة يتتدو صيا متتا عتتدا الجهتتاز التتذي تريتتد استتتخدامه ،فيمسكنتتك حجتتب جميتتع الجهتتزة،
وتسمح لذاك الجهاز الوحيد أن يعمل بإضافة السطر التية إلى ملف :/etc/multipath.conf
{ blacklist
"*" wwid
}
{ blacklist_exceptions
"wwid "3600d0230000000000e13955cc3757803
}
عنتتد تحديتتد الجهتتزة المستتمونح لهتتا فتتي قستتم blacklist_exceptionsمتتن ملتتف الضتتبط،
فعليتتك تحديتتد تلتتك الستتتثناءا ت بنفتتس الطريقتتة التتتي حتتدد ت فيهتتا الجهتتزة المحجوبتتة فتتي قستتم
blacklist؛ فعلى سبيل المثال ،ل يمسكن السماح لجهاز بوساطة معتترف WWIDفتتي حتتال حجبتتت
الجهزة باستخدام قيد ،devnodeحتى لو كان الجهاز المحجوب مرتبصطتتا بمعتترف WWIDالتتذي
حتتتد ندته أظنتتتت .وبشتتتسكل مشتتتابه ،الستتتتثناءا ت التتتتي تستتتتخدم devnodeنتطنبتتتق فقتتتط علتتتى قيتتتود
{ defaults
user_friendly_names yes
}
ويحتوي ملف الضبط قال صبا للعدادا ت الفتراضية للضبط ،هذا القسم معطل بالتعليقا ت كما يلي:
{ #defaults
# udev_dir /dev
# polling_interval 5
# selector ""round-robin 0
# path_grouping_policy failover
# getuid_callout "/lib/dev/scsi_id --whitelisted
"--device=/dev/%n
# prio const
# path_checker directio
# rr_min_io 1000
# rr_weight uniform
# failback manual
# no_path_retry fail
# user_friendly_names no
}#
لتجاوز قيمة افتراضية في أ دية خاصية من خاصيا ت الضبط ،تستتتطيع ظنستتخ الستتطر الموافتتق
لها من القالب إلى قسم defaultsوإزالة التعليق الذي قبلها؛ على ستتبيل المثتتال ،لتجتتاوز الخاصتتية
السطر من القالب إلى قسم defaultsالبتدائي من ملف الضبط ،ثم أزل التعليق كما يلي:
{ defaults
user_friendly_names yes
path_grouping_policy multibus
}
يشتتتترح الجتتتتدول التتتتتي الخاصتتتيا ت التتتتي يمسكنتتتتك ضتتتبطها فتتتي قستتتم defaultsمتتتتن ملتتتتف
الشرح الخاصية
الفاصل للتحقق من الطرق التي تعمل عمصل سليصما تدريجصيا إلى polling_interval
) ،(polling_interval * 4القيمة الفتراضية هي .5
المجلد الذي نتننشأ فيه عقد أجهزة ،udevالقيمة الفتراضية هي ./dev udev_dir
الطريق الذي يحتوي على أقل عدد من طلبيا ت الدخل أو الخرج. path_selector
:service-time 0يرسل رزمة الدخل أو الخرج التية في الطريق •
الذي يسكون له وقت خدمة أقصر ما يمسكن ،وهذا نيحندد بتقسيم حجم
)النسبي(.
القيمة الفتراضية هي .round-robin 0
واحدة.
القيمة :group_by_serialمجموعة أولويا ت وحيدة لسكل رقم • path_grouping
تسلسلي نك ش
شنف عنه. _policy
القيمة : group_by_prioمجموعة أولويا ت وحيدة لسكل طريق •
.ALUA
prio
القيمة :netappتوليد أولوية الطريق لمصفوفا ت .NetApp •
.HDS
القيمة الفتراضية هي .const
السلسلة النصية للوسائط الممررة إلى دالة prio؛ ل تحتاج أغلبية دوال
تتضمن:
القيمة :readsector0قراءة القطاع الول من الجهاز.
القيمة :turتنفيذ » «TEST UNIT READYعلى الجهاز.
القيمة :emc_clariionطلب صفحة ) EVPDالتي هي (0xC0من EMC
Clariionلتحديد الطريق.
القيمة :hp_swالتحقق من حالة الطريق لمصفوفا ت HPللتخزين التي
path_checker
.RDAC
القيمة :directioقراءة أول قطاع باستخدام الدخل أو الخرج المباشر.
القيمة الفتراضية هي .directio
بالثواظني.
القيمة الفتراضية هي .manual
تحدد عدد طلبيا ت الدخل أو الخرج لتمريرها إلى طريتق ما قبل الظنتقال إلى
نتحددد القيمة العددية لهذه الخاصية عدد المرا ت التي سيحاول فيها النظام
استخدام الطريق التي تعرض للفشل قبل إيقاف الطلبيا ت .إذا كاظنت القيمة
» «failفهذا يعني أن الفشل سيسكون فورصيا دون أدية طلبيا ت؛ وإذا كاظنت
no_path_retry
القيمة ،queueفهذا يعني أظنه ل يجب أن تتوقف الطلبيا ت حتى يصنلح ذاك
الطريق.
القيمة الفتراضية هي "صفر".
mpathn؛ وإذا ضبطت إلى ،noفإن على النظام استخدام WWIDكاسم _user_friendly
بديل للطريق؛ وفي كل الحالتين ،ما سنيحندد هنا سيتم تجاوزه من أدية أسماء names
multipathd؛ وهذا مسكافئ للمر ulimit -n؛ القيمة القصوى سنتحدد إلى
الذي يسكون عادة ،1024ولسكي تسكون آمصنا ،يجب ضبط الخاصية إلى العدد
عدد الثواظني التي ستنتظرها طبقة SCSIبعد اكتشاف حدوث مشسكلة في
منفذ FCنبعيد قبل إعلن فشل الدخل أو الخرج إلى الجهزة في ذاك المنفذ
عدد الثواظني التي ستنتظرها طبقة SCSIبعد اكتشاف حدوث مشسكلة في
منفذ FCنبعيد قبل إزالته من النظام؛ ضبط هذه القيمة إلى infinity
dev_loss_tmo
ستجعل قيمته 2147483647ثاظنية ،أو 68سنة.
القيمة الفتراضية محددة من ظنظام التشغيل.
جتتتتدول خاصتتتتيا ت Multipathالتتتتتي يوضتتتتح الخاصتتتتيا ت التتتتتي يمسكتتتتن أن تضتتتتبط فتتتتي قستتتتم
الشرح الخاصية
بالضافة إلى ذلك ،يمسكن أن تتجاوز ضبط الخاصيا ت التية في قسم :multipath
نيظشهتتتتر المثتتتتال التتتتتي خاصتتتتيا ت multipathالمحتتتتددة فتتتتي ملتتتتف الضتتتتبط لجهتتتتازي multipath
{ multipaths
{ multipath
wwid
3600508b4000156d70001200000b0000
alias yellow
path_grouping_policy multibus
path_selector ""round-robin 0
failback manual
rr_weight priorities
no_path_retry 5
}
{ multipath
wwid
1DEC_____321816758474
alias red
rr_weight priorities
}
}
جتتدول » خاصتتيا ت الجهتتزة« التتتي يظهتتر الخاصتتيا ت التتتي يمسكنتتك ضتتبطها لسكتتل جهتتاز تخزيتتن
على حدة في قستم devicesفتي ملتف ضتبط ،multipath.confتستتخدم هتذه الخاصتيا ت متن
DM-Multipathما لتتم تعتتاد كتابتهتتا متتن الخاصتيا ت المحتتددة فتتي قستتم multipathsفتي ملتتف
العديد من الجهزة التي تدعم تعتتدد الطتترق مضتتنمنة افتراضتتصيا فتتي ملتتف ضتبط multipath؛
ربما ل تحتاج إلى تعديل القيم لهذه الجهزة ،لسكنك تستطيع تجتتاوز القيتتم الضتتافية بتضتتمين
قيد في ملف الضبط للجهاز ،وإعادة كتابة هذه القيم ،يمسكنك ظنسخ قيم الضبط الفتراضتتية للجهتتاز
من multipath.conf.annotated.gzأو إذا أرد ت الحصتول علتى ملتتف ضتبط مختصتتر ،فراجتع
لضتتافة جهتتاز إلتتى هتتذا القستتم متتن ملتتف العتتدادا ت التذي لتتم نيضتتنبط افتراضتتصيا تلقائصيتتا ،فعليتك
تحديتتتتد خاصتتتتينت د
ي vendorو product؛ تستتتتتطيع العثتتتتور علتتتتى هتتتتذه القيتتتتم بتتتتالنظر فتتتتي ملتتتتف
/sys/block/device_name/device/vendorوفتتتي /sys/block/device_name/model
cat /sys/block/sda/device/vendor
WINSYS
cat /sys/block/sda/device/model
SF2372
الخاصيا ت الضافية التي عليك تحديدها تعتمد عل ى الجهتاز التذي تعتدده ،إذا كتان الجهتاز متن
ظنمتتتتط »فعتتتتال/فعتتتتال« ،فل تحتتتتتاج عتتتتادصة إلتتتتى أ ديتتتتة خاصتتتتيا ت إضتتتتافية؛ لسكتتتتن ربمتتتتا تريتتتتد ضتتتتبط
أما إذا كان الجهاز من ظنمط »فعال /غير فعال« ،لسكنه نيبددل تلقائصيتا بيتن الطترق التتي فيهتا دختل
أو ختترج إلتتى طريتتق غيتتر فعتتال ،فستتتحتاج إلتتى تعتتديل دالتتة التحقتتق إلتتى واحتتدة ل نترشستتل دختتل
أو خرج إلى الطرق لتختبر إذا كان يعمل ) عدا ذلك ،فسيستمر جهازك بالفشل( ،هذا يعني أظنه عليتتك
ضبط قيمة path_checkerدائصما إلى القيمة tur؛ وهتذا ستيجدي ظنفصعتتا لجميتع أجهتزة SCSIالتتي
إذا احتتتتتاج الجهتتتتاز إلتتتتى أمتتتت تر ختتتتاص لتبتتتتديل الطتتتترق ،فتتتتإن ضتتتتبط هتتتتذا الجهتتتتاز لستتتتتخدام
multipathيتطلتب وحتدة ظنتواة لمتحسكتم العتتاد ،متحسكتم العتتاد المتتوفر حالصيتا هتو ،emcوإذا لتم
يسكن هذا كافصيا لجهازك ،فربما ل تستطيع ضبط هذا الجهاز لستخدام .multipath
الشرح الخاصية
تحديد اسم الشركة المصنعة لجهاز التخزين الذي تطبق عليه خاصيا ت
vendor
الجهاز؛ على سبيل المثال .COMPAQ
تحديد اسم نمننتج جهاز التخزين الذي تطبق عليه خاصيا ت الجهاز؛
product
على سبيل المثال .HSV110 (C)COMPAQ
تتضمن:
القيمة :1 emcالمتحسكم العتادي الخاص بمصفوفا ت .EMC •
القيمة :1 aluaالمتحسكم العتادي الخاص بمصفوفا ت SCSI-3 •
hardware_handler
.ALUA
القيمة :1 hp_swالمتحسكم العتادي الخاص بمتحسكما ت •
.Compaq/HP
القيمة :1 rdacالمتحسكم العتادي الخاص بمتحسكما ت •
.LSI/Engenio RDAC
path_grouping_policy
getuid_callout
path_selector
path_checker
features
failback
prio
prio_args
no_path_retry
rr_min_io
rr_weight
fast_io_fail_tmo
dev_loss_tmo
flush_on_last_del
ملحظظظظة :عنتتتدما يحتتتدد ، hardware_handlerفتتتإن متتتن مستتتؤوليتك التأكتتتد متتتن أن وحتتتدة النتتتواة الملئمتتتة
قتتتتتتتتتتتد نحدم نلتتتتتتتتتتتت لتتتتتتتتتتتدعم الواجهتتتتتتتتتتتة ) (interfaceالمحتتتتتتتتتتتددة ،هتتتتتتتتتتتذه الوحتتتتتتتتتتتدة يمسكتتتتتتتتتتتن أن توجتتتتتتتتتتتد فتتتتتتتتتتتي
،/lib/modules/`uname -r`/kernel/drivers/scsi/device_handler/يجب أن تدمج الوحدة المطلوبتتة
مع initdللتأكد من أن إمسكاظنية السكشف والقدرة على تجاوز المشاكل موجتتودة أثنتتاء وقتت التشتتغيل ،علتتى ستتبيل
المثال:
echo scsi_dh_alua >> /etc/initramfs-tools/modules ## append module to file
update-initramfs -u -k all
{ #devices
{ # device
# vendor "COMPAQ "
# product "MSA1000 "
# path_grouping_policy multibus
# path_checker tur
# rr_weight priorities
} #
}#
يجري مطابقة مباشرة لهذه الخاصتتيا ت ،التتتي يسكتتون تنستتيقها معرصفتتا متتن مواصتتفا ت SCSI؛ وبشتتسكل
،vendorو ،productو revisionستفسر بدقة كما هتتو محتتدد فتتي المواصتتفا ت )(spec؛ يمسكتتن
فسينسخ multipathالسلسلة النصية إلى حافظة ذا ت سعة معينة وسيسكمل الحرف الباقية في
الحافظة بعدد مناسب من الفراغا ت؛ حيث تتوقع المواصفا ت أن يسكتتون الحقتتل كتتامصل مملتتوصءا بعتتدد
لظنشاء ملف ضبط أكثر متاظنصة ومروظن صة ،فيمسكن استخدام التعابير النمطيتتة؛ تتضتتمن المعتتامل ت
القابلة للستخدام:
» ،«^$[].*?+تستطيع العثتور علتى أمثلتة عمليتة عتن التعتابير النمطيتتة بمعاينتتة قاعتدة بياظنتا ت
:doc/multipath-tools/examples
إذا احتجت لعادة تحجيم جهاز multipathأثناء عمله ،فعليك اتباع الخطوا ت التية:
إعتادة تحجيتم الطتترق .فتي أجهتتزة ،SCSIت ؤدي كتابتة 1إلتى ملتف rescanإلتى جعتل الجهتاز
إعادة تحجم ظنظام الملفا ت )باعتبار أظننا ل ظنستخدم أدية أقسام LVMأو :(DOS
ب .نقل جذر نظام الملفات من جهاقز ذي طريقق واحقد إلى جهاقز ذي طرقق متعددة
يمسكتتن تبستتيط هتتذه المهمتتة تبستتيصطا شتتديصدا باستتتخدام UUIDللتعتترف علتتى الجهتتزة؛ بسكتتل
بستتاطة ،ثدبتتت multipath-tools-bootوأعتتد القلع؛ هتتذا ستيعيد بنتاء قترص التتذاكرة البتتتدائي
ملحظظظظظة :فتتتتي كتتتتل متتتترة يحتتتتدث فيهتتتتا multipath.confيجتتتتب أن نيحتتتتددث initrdبتنفيتتتتذ المتتتتر update-
initramfs -u -k all؛ الستتبب وراء ظنستتخ multipath.confإلتى ramdiskهتو إتمتتام عمليتة تحديتتد الجهتزة
المتاحة للتجميع بواسطة القائمة السوداء وأقسام الجهزة.
ج .نقل نظام ملفات ذاكرة التبديل من جهاز ذي طريقق واحقد إلى جهاقز ذي طرقق متعددة
العملية تماثل تماصما العملية المشروحة في القسم الستتابق »ظنقتتل جتتذر ظنظتتام الملفتتا ت متتن جهتتاتز
إذا وجتتتتتد ت مشتتتتتسكلة فتتتتتي تطتتتتتبيق ضتتتتتبط ،multipathفعليتتتتتك التأكتتتتتد متتتتتن أن عفريتتتتتت
multipathيعمتتتل كمتتتا هتتتو مشتتتروح فتتتي »إعتتتداد «DM-Multipath؛ يجتتتب أن يعمتتتل عفريتتتت
الخطاء وإصلحها متتع واجهتتة multipathdالتفاعليتتة« التتذي يشتترح التفاعتتل متتع multipathd
أي عملية تستخدم الدخل أو الخترج ستتتوقف آظنصيتا إلتى أن نيستترنجع طريتةق أو أكتثر؛ ولتجنتب هتذا،
تسكتتون خاصتتية "features "1 queue_if_no_pathمتضتتمنة افتراضتتصيا فتتي الضتتبط )وهتتذا حتتال
السكتتتتثير متتتتتن أجهتتتتزة (SANفعليتتتتتك إضتتتتافة " features "0لتجتتتتتاوز هتتتتذه العتتتتتدادا ت الفتراضتتتتية،
تستتتتتتتتطيع فعتتتتتتتل ذلتتتتتتتك بنستتتتتتتخ قستتتتتتتم ) devicesفقتتتتتتتط ذاك القستتتتتتتم ،وليتتتتتتتس كتتتتتتتل الملتتتتتتتف( متتتتتتتن
/usr/share/doc/multipath-tools/examples/multipath.conf.annotated.gzإلتتتتتتتتتتتتتتتتتتتى
إذا احتجتتت لستتتخدام الخيتتار " features "1 queue_if_no_pathولسكنتتك عتتاظنيت متتن
المشسكلة المذكورة هنا ،فاستخدم المر dmsetupلتعتديل ضتبط LUNمعيتتن أثنتتاء التنفيتتذ؛ علتى
ستتتتتتبيل المثتتتتتتال ،إذا أرد ت تغييتتتتتتر الضتتتتتتبط فتتتتتتي جهتتتتتتاز multipathالمتتتتتتدعو mpathcمتتتتتتن "
فإظنتتك ستحصتتل علتتى مخرجتتا ت ضتتبط،multipath إذا أظنشتتأ ت أو عتتدلت أو عرضتتت جهتتاز
:ولسكل طريق
▲ | 130
دليل إدارة خواديم أوبنتو 14.04 - ربط الجهزة متعدد الطرق
إذا كتتان الطريتتق نمنعتتيدا وجتتاه صزا للتتدخل أو الختترج ،فتتإن حالتتة الطريتتق هتتي readyأو ،ghost
وإن لم يسكن يعمل الطريق ،فإن الحالة هي faultyأو shaky؛ نتحتتندث حالتتة الطريتتق فتتي كتتل فتتترة
حالة dmهي شبيهة بحالتة الطريتق ،لسكتن متن وجهتة ظنظتر النتواة؛ حيتث توجتد قيمتتين لحالتة
،failed : dmالتي تسكافئ ،faultyو activeالتي تسكافئ بقية الحتال ت .قتد ل تتوافتق فتي بعتض
ملحظظظظة :عنتتتدما نيننشتتتأ أو نيعتتتندل جهتتتاز ،multipathفتتتإن حالتتتة مجموعتتتة الطتتترق ،واستتتم جهتتتاز ،dmوأذوظنتتتا ت
السكتابة ،وحالة dmهي غير معلومة؛ وقد ل تسكون الميزا ت ) (featuresصحيحصة دوصما.
الجهزة ،يعرض الخيار -llالمعلوما ت التي يعرضها -lبالضافة إلى جميع مسكوظنا ت النظام الخرى.
عنتتد عتترض ضتتبط ، multipathفتتإن هنالتتك ثلثتتة مستتتويا ت متتن »الستتهاب« ،التتتي يمسكنتتك
تحديدها بالخيار -vالخاص بالمر multipath؛ بتحديد -v0فتتإن المتتر ل يعتترض أديتتة مخرجتتا ت،
أمتتا -v1فيعتترض أستتماء multipathالنمنشتتأة أو المحدثتتة؛ التتتي يمسكتتن أن نتمتتنرر إلتتى أدوا ت أختترى
وخرائط،multipaths و، فإن المر يعرض جميع الطرق المسكتشفة،-v2 ؛ وبتحديدkpartx مثل
فتتي قستتمverbosity ( بتعريف خاصية2) multipath يمسكن تعديل درجة السهاب الفتراضية لمر:ملحظة
.multipath.conf في ملفdefaults
sudo multipath -l
3600d0230000000000e13955cc3757800 dm-1 WINSYS,SF2372
size=269G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 6:0:0:0 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 7:0:0:0 sdf 8:80 active ready running
▲ | 132
دليل إدارة خواديم أوبنتو 14.04 - ربط الجهزة متعدد الطرق
الوصف الخيار
تستتتتتطيع استتتتتخدام المتتتتر dmsetupلمعرفتتتتة أ ديتتتتة قيتتتتود لرابتتتتط الجهتتتتزة تطتتتتابق أجهتتتتزة
.multipathd
يعرض المر التي جميع أجهتتزة ربتتط الجهتتزة ،وكتتل أرقتتامهم السكتتبرى والصتتغرى؛ حيتتث تحتتدد
الرقام الصغرى اسم جهتتاز dm؛ علتى ستبيل المثتتال ،الرقتم الصتغير 3يطتتابق جهتتاز :multipathd
:/dev/dm-3
إن المتتتر multipathd -kهتتتو واجهتتتة تفاعليتتتة للعفريتتتت multipathd؛ ستتتتظهر واجهتتتة
multipathالتفاعلية بعد إدخال المر السابق ،ويمسكنك بعد تنفيذه أن تسكتب helpلعرض قائمتتة
يمسكن استخدام واجهة multipathالتفاعلية لمعالجة الخطاء التي قد تحصل متع ظنظامتتك؛
فعلى سبيل المثال ،سلسلة الوامر التية ستعرض ضبط multipathمتع العتتدادا ت الفتراضتية؛
راجع مقالة IBMذا ت العنوان » «Tricks with Multipathdقبل إغلقك للواجهة التفاعلية.
ستتتتأكد سلستتلة الوامتتر التيتتة أن multipathقتتد حصتتل علتتى آختتر التعتتديل ت فتتي ملتتف
:multipath.conf
يمسكن أي ص
ضا تمرير الوامر إلى multipathdباستخدام مجرى الدخل القياسي ) (stdinكما يلي:
هنالتتك طتترق عديتتدة لدارة ختتادوم لي ننسكتتس عتتن بعتتد ،سيشتترح هتتذا الفصتتل ثلثتتة متتن أشتتهر
.1خادوم OpenSSH
ا .مقدمة
سنقدم في هذا القستم متن دليتل إدارة خ واديم أوبنت و مجموعتة أدوا ت فدعالتة للتحسكتتم البعيتد
إعدادا ت الضبط الممسكنة مع خادوم OpenSSHوظنتعلم كيف ظنغيرها في ظنظام أوبنتو الخاص بك.
إن OpenSSHهتتتو إصتتتدار مجتتتاظني وحتتتر متتتن مجموعتتتة أدوا ت بروتوكتتتول »الصتتتدفة المنتتتة«
) ([SSH] Secure Shellللتحسكتتم البعيتتد أو ظنقتتل الملفتتا ت بيتتن الحواستتيب؛ الدوا ت التقليديتتة التتتي
كاظنت مستخدمصة لظنجاز هذه المهام -مثل telnetأو -rcpلم تسكتتن آمنتتصة حيتتث كتتاظنت تنقتتل كلمتة متترور
المستتتخدم بنتتتتص واضتتتح عنتتتد استتتتخدامها؛ أمتتتا ،OpenSSHفنيتتتودفر عفريصتتتتا وأدوا ت للعميتتتل لظنشتتتاء
عمليا ت تحسكم عن بعد أو ظنقل الملفا ت آمنة ومشفرة؛ ويستبدل الدوا ت القديمة استبداصل فعاصل.
وعندما يحدث طلب اتصال ،فإن sshdيننششتئ ظنتوع التصتال الصتحيح اعتمتاصدا علتتى ظنتتوع أداة العميتتل
التي تجري التصال؛ على سبيل المثال ،لو أن الحاسوب البعيد يتصل باستخدام برمجيتتة عميتل ،ssh
يء جلسة تحسكم عن نبعد نبعد الستيثاق؛ وإذا اتصل المستتخدم البعيتتد متتع
فإن خادوم OpenSSHيه د
الخادوم والعميل بعتتد الستتتيثاق؛ ويمسكتن أن نيستتخشدم OpenSSHعتندة طترق للستتيثاق ،منهتتا كلمتة
ب .التثبيت
إن عمليتتة تثتتبيت ختتادوم وعميتتل OpenSSHهتتي عمليتتةة بستتيطة؛ استتتخدم هتتذا المتتر متتن
استخدم هذا المر في سطر الوامر لتثبيت خادوم ،OpenSSHوملفا ت الدعم المتعلقة به:
يمسكن أي ص
ضتتا تحديتتد حزمتتة openssh-serverللتثتتبيت أثنتتاء عمليتتة تثتتبيت ظنستخة الختتادوم
من أوبنتو.
ج .الضبط
يمسكنك ضبط السلوك الفتراضتي لتطتبيق ختادوم (sshd) OpenSSHبتعتديل الملتف التتالي
man sshd_config
هنالك تعليما ت كثيرة في ملتف ضتبط sshdتتحسكتتم بأشتياء مثتل إعتدادا ت التصتتال ت وأظنمتاط
تنويه :قبل تعديل ملف الضبط ،عليك أخذ ظنسخة من الملف الصلي وحفظها من السكتابة عليها لسكي تحصتتل علتتى
ظنسخة من الضبط الفتراضي كمرجع ،ولعادة استخدامها وقت الحاجة.
لضتتتتبط OpenSSHلسكتتتتي يستتتتتمع علتتتتى منفتتتتذ TCPذو الرقتتتتم 2222بتتتتدصل متتتتن منفتتتتذ TCP
Port 2222
لتجعل sshdيسمح باستخدام الستيثاق المبني على المفتاح العمومي ،فأضف أو عددل السطر:
PubkeyAuthentication yes
إذا كان السطر موجوصدا مسبصقا ،فتأكد من عدم وجود رمز التعليق قبله.
Banner /etc/issue.net
بعتتد إجتتراء التعتتديل ت علتتى ملتتف ،/etc/ssh/sshd_configفتتاحفظ الملتتف ثتتم أعتتد تشتتغيل
خادوم sshdلتأخذ التغيرا ت مفعولها ،وذلك بإدخال المر التي في شمنحث الطرفية:
تحظظذير :تتتتوفر المزيتتد متتن تعليمتتا ت الضتتبط لختتادوم sshdلتعتتديل ستتلوك الختتادوم لسكتتي يلئتتم احتياجاتتتك ،لسكتتن
يجب التنويه أظنه إذا كاظنت الطريقة الوحيدة للوصول إلى الخادوم هي ،sshوارتسكبت خطصأ في ضتتبط sshdعتتبر
ملتتف ،/etc/ssh/sshd_configفستتجد ظنفستتك غيتتر قتاد تر علتتى الوصتتول إلتتى الختتادوم بعتتد إعتتادة تشتتغيل خدمتتة
sshd؛ بالضافة إلى أظنك إذا وضعت تعليمة ضبط خاطئة ،فسيرفض خادوم sshdأن يعمل؛ لذلك كن حذصرا جصدا
عند تعديل هذا الملف على خادوم بعيد.
تستتتمح مفاتيتتتح SSHبالستتتتيثاق بيتتتن جهتتتازين دون الحاجتتتة إلتتتى كلمتتتة متتترور ،نيستتتتخدم
أد ش
خل المر التي في الطرفية لتوليد المفاتيح:
ssh-keygen -t dsa
سيولد المر السابق المفاتيتح باستتخدام خوارزميتة التوقيتع الرقميتتة )Digital Signature
،([DSA] Algorithmستتنتط نلب منتتك كلمتتة المتترور أثنتتاء العمليتتة ،بعتتد ذلتتك اضتتغط ببستتاطة علتتى
Enterلظنشاء المفتاح.
~/.ssh/id_dsaهو المفتاح الخاص ،اظنسخ ملف id_dsa.pubإلى المضيف البعيد ،ثم أضفه إلى
ssh-copy-id username@remotehost
فتتتي النهايتتتة ،تأكتتتد متتتن الذوظنتتتا ت علتتتى ملتتتف ،authorized_keysحيتتتث يجتتتب أن يملتتتك
المستخدم الموثوق فقط إذن القراءة والسكتابة؛ إذا لم تسكون الذوظنا ت صحيحة ،فعدلها بالمر:
يجب أن تصبح الن قادصرا على الدخول إلى SSHعلى المضيف البعيد دون طلب كلمة المرور.
ه .مصادر
.2الداة Puppet
Puppetهتتو إطتتار عمتتل متعتتدد المنصتتا ت نيم دسكتتن متتدراء النظتتام متتن إجتتراء المهتتام الشتتائعة
باستخدام السكود؛ يمسكن أن يقوم السكود بالعديد من المهام ،من تثتتبيت برمجيتتة جديتتدة إلتتى التحقتتق
متتن أذوظنتتا ت الملفتتا ت ،أو تحتتديث حستتابا ت المستتتخدم؛ إن Puppetليتتس رائصعتتا فقتتط أثنتتاء عمليتتة
سيغطي هذا القسم طريقة تثبيت وضبط Puppetكخادوم/عميتتل ،سيشتترح المثتتال البستتيط
ا .التثبيت
أد ش
خل المر التي في طرفية الخادوم لتثبيت :Puppet
ب .الضبط
قبتتتل ضتتتبط ،Puppetربمتتتا عليتتتك إضتتتافة ستتتجل » «DNS CNAMEمتتتن أجتتتل النطتتتاق
أو »«Puppet Master؛ راجتتتتع » الفصتتتتل الثتتتتامن :خدمتتتتة استتتتم النطتتتتاق ) «(DNSلمزيتتتتتد متتتتن
إذا لتتم تشتتأ أن تستتتخدم ،DNSفبإمسكاظنتتك إضتتافة قيتتود إلتتى ملتتف /etc/hostsفتتي الختتادوم
package {
'apache2':
ensure => installed
}
service {
'apache2':
ensure => true,
enable => true,
require => Package['apache2']
}
node 'pupetclient.example.com' {
include apache2
}
▲ | 144
دليل إدارة خواديم أوبنتو 14.04 - الدارة عن بعد
START=yes
وفي خادوم ،Puppetتأكد من بصمة العميل وودقع على شهادة العميل بسكتابة:
الخطوة ليست مطلوبة لسكنها أفضل طريقة لختبار وتنقيح عمل خدمة .puppet
ملحظة :هذا المثال بسيةط جصدا ،ول نيظشهر العديد من ميزا ت ومحاسن Puppet؛ راجع قسم المصادر للمزيد من
المعلوما ت .
ج .مصادر
راجع أي ص
ضا كتاب ».«Pro Puppet •
.3برمجية Zentyal
إن Zentyalهتتتو ختتتادوم ليننسكتتتس صتتتغير متتتونجه للعمتتتال ) ،(business serverيمسكتتتن أن
نيضتت نبط كبوابتتة ،أو متتدير بنتتى تحتيتتة ،أو »متتدير تهديتتد موحتتد« ) ،(Unified Threat Manager
أو خادوم مسكتبي ،أو خادوم اتصال ت موحد ،أو تجميةع مما سبق؛ جميع الخدما ت الشتتبسكية النمتتدارة
متتن Zentyalتندمتتج متتع بعضتتها اظنتتدماصجا كتتبيصرا ،مؤتشم صتتتتا معظتتم المهتتام ،ممتتتا يستتاعد فتتي تلفتتي
الخطاء في ضبط الشبسكة والدارة ،ويسمح بتقليل الوقت اللزم لضبط البرمجيا ت؛ Zentyalهو
برمجيتتتة مفتوحتتتة المصتتتدر ،ومنشتتتورة وفتتتق رخصتتتة غنتتتو العموميتتتة ) (GPLوتعتمتتتد علتتتى أوبنتتتتو
كأساتس لها.
تتضتمن Zentyalسلستلصة م ن الح زم )حزمتةة واحتدةة عتادصة لسكتل وحتدة ] ([moduleالتتي تتوفر
واجهة ويب لضتتبط مختلتف الختتواديم أو الختتدما ت؛ ونيختنزن الضتتبط فتي قاعتتدة بياظنتا ت Redisعلتى
علتتتى OpenLDAP؛ وعنتتتدما نتضتتتنبط أديتتتة خاصتتتيا ت ضتتتمن واجهتتتة التتتويب ،فستتتنتعاد كتابتتتة ملفتتتا ت
العدادا ت باستتتخدام قتتوالب ضتتبط نمتتونفرة متن الوحتدا ت؛ الميتتزة الساستتية متن استتتخدام Zentyal
ى عاتل مع بعضها بع ص
ضا. ج ذي مستو ص
هو واجهة رسومية موحدة لضبط جميع خدما ت الشبسكة مع دم ت
ا .التثبيت
تتوفر إصدارة Zentyal 2.3في مستودع Universeفي أوبنتو 12.04؛ الوحدا ت المتوفرة هي:
التي تعطي مدير النظام واجهة لمشاهدة السجل ت ،وتوليد أحداث منها.
» التتتتتتأجير« الثتتتتابت ،وغيرهتتتتتا متتتتتن الخيتتتتارا ت المتقدمتتتتتة مثتتتتل ،NTPو ،WINSو DNS
:zentyal-dnsإعتتداد ختتادوم ISC Bind9علتتى جهتتازك متتع إمسكاظنيتتة التخزيتتن المتتؤقت •
للطلبيا ت المحليتتة ،أو كنممتت درر ،أو كختتادوم استتيثاق للنطاقتتا ت المضتبوطة؛ ويستتمح بضتبط
Zentyalكتتي يتمسكتتن المستتتخدمون متتن استتتخدام الشتتهادا ت للستتتيثاق متتع الختتدما ت،
مثل .OpenVPN
، LDAPمما يؤدي إلى وجود آلية مركزية لدارة المستخدمين والمجموعا ت؛ متتن الممسكتتن
أي صضتتتا مزامنتتتة المستتتتخدمين ،وكلمتتتا ت المتتترور ،والمجموعتتتا ت متتتن ختتتادوم Microsoft
.Active Directory
:zentyal-squidضبط ختتدمنت د
ي Squidو Dansguardianلتستتريع التصتتفح ،ويعتتود •
:zentyal-sambaتسمح هذه الوحدة بضتبط ستامبا ودمجته متع ض بط LDAPموج ود •
مستتتب صقا؛ ومتتتن ظنفتتتس الوحتتتدة تستتتتطيع تعريتتتف سياستتتا ت لسكلمتتتا ت المتتترور ،وإظنشتتتاء متتتوارد
:zentyal-printersدمج CUPSم ع ستامبا والستماح ،ليتس فقتط بضتبط الطابعتا ت ،بتل •
ملحظظة :نيصتشدر Zentyalإص داصرا واح صدا ثابصتتا رئيستصيا ف ي الستنة )فتي أيلتول/ستبتمبر( مبن ة
ي علتى آخ ر إصتدارة
أوبنتتتتو طويلتتتة التتتدعم ) (LTS؛ يسكتتتون للصتتتدارا ت الثابتتتتة أرقتتتام رئيستتتية زوجيتتتة )مثصل ،2.2 ،أو (3.0والصتتتدارا ت
التجريبية تسكون أرقامها الرئيسية فردية )مثصل ،2.1و (2.3؛ تأتي أوبنتو 12.04متتع Zentyalبإصتدار 2.3؛ إذا أرد ت
الترقية إلى إصدارة ثابتة جديدة نظن ش
شتتنر ت بعتتد إصتدار أوبنتتتو ،12.04فيمسكنتتك استتتخدم »«Zentyal Team PPA؛
قد توفر لك الترقية إلى الصدارا ت الثابتة تصحيحا ت لعلتل لم تصل إلى الصدار 2.3الموجود في أوبنتو .12.04
تنويه :إذا أرد ت المزيد من المعلوما ت حول إضافة الحزم من PPA؛ فراجع مقالة الويسكي »Add a Personal
).«Pachage Archive (PPA
ملحوظتة جاظنبيتتة ،تستتطيع إيجتاد الحتزم التيتة فتي ،Zentyal Team PPAلسكتن ليتس فتي
بواسطة .LDAP
على .LTSP
وحتتدة :zentyal-mailتشتتسكيلة ختتدما ت البريتتد اللسكتتتروظني كاملتتة ،بمتتا فيهتتا Postfix •
وتحديثا ت النظام.
وحتتتدة :zentyal-virtواجهتتتة بستتتيطة لظنشتتتاء وإدارة الظنظمتتتة الوهميتتتة المبنيتتتة علتتتى •
.libvirt
webmailالشهيرة.
على جهازك.
نيستتتت نمح لي حستتتتاب فتتتتي النظتتتتام ينتمتتتي للمجموعتتتتة sudoبتستتتجيل التتتتدخول إلتتتتى واجهتتتة
Zentyal؛ إذا كنت تستخدم حساب المستتخدم النمننشتتأ أثنتاء التثتبيت؛ فيجتب أن يسكتون افتراضتصيا
تنويه :إذا كنت تستخدم مستخدصما آخنر ل ينتمي للمجموعة ،sudoفندفذ المر:
sudo adduser username sudo
البعيد( ،ولن Zentyalيستخدم شهادة SSLمودقعة ذاتصيا ،فعليك إضافة استثناء له في متصفحك.
ستشاهد لوحة التحسكم ) (dashboardبعد تسجيل الدخول ،مع لمحة عتتن خادومتك؛ لضتتبط
أ دية خاصية من خاصتيا ت الوحتدا ت المثبتتة ،فتاذهب إلتى القستتام المختلفتة ف ي القائمتة التتي علتى
اليسار؛ عندما تعدل أدية تعديل ت ،فسيظهر زر أحمر مسكتوب عليه » ،«Save changesالذي عليك
الضغط عليه لحفظ كل تعديل ت الضبط؛ لتطبيق هتذه التعتديل ت علتى خادومتك ،فيجتب أن تفنعتل
الوحدة أوصل ،وذلك متن قيتد » «Module Statusعلتى القائمتة اليسترى؛ فتي كتل مترة ستنتفدعل فيهتا
وحتتتد صة ،فستتتتظهر رستتتالة تطلتتتب تأكيتتتدك للقيتتتام بالفعتتتال الضتتترورية ،والتعتتتديل ت علتتتى خادومتتتك
وملفا ت ضبطه.
ملحظة :إذا أرد ت تخصيص أي ملف ضبط لتنفيذ أفعال معينة )سسكربتا ت أو أوامر( لضبط ميزا ت غير متتتوفرة
في ،Zentyalفضع قوالب ملفا ت الضبط المخصصة فتتي /etc/zentyal/stubs/<module>/و » «hooksفتتي
./etc/zentyal/hooks/<module>.<action>
ج .مصادر
راجع أي ص
ضا صفحة توثيق Zentyalالموفرة من المجتمع. •
ل تننس أي ص
ضا زيادة المنتدى لدعم المجتمع ،والتعقيبا ت ،وطلبا ت الميزا ت ...إلخ. •
.1خادوم OpenLDAP
التتتبروتوكول الخفيتتتف للوصتتتول للتتتدليل ) (Lightweight Directory Access Protocol
أو اختصتتتاصرا ،LDAPهتتتو بروتوكتتتول لطلبيتتتا ت وتعتتتديل خدمتتتة دليتتتل مبنتتتي علتتتى X.500يعمتتتل عتتتبر
TCP/IP؛ الصتتدارة الحاليتتة متتن LDAPهتتي LDAPv3كمتتا هتتو معتتنرف فتتي RFC4510؛ والبرمجيتتة
دليل LDAPهو شجرة من قيود البياظنا ت ) (entriesالتتتي تسكتتون ذا ت هيسكلديتتتة بطبيعتهتتا، •
الخاصية لها ظنوع ) (typeيسكون اسصما أو شرصحا؛ وقيمةة واحدةة أو أكثر. •
لسكل قيد معدرف خاص به هتو »الستتم الفريتتد« ) DN] Distinguished Nameأو ([dn؛ •
السم الفريد للقيد ليس خاصيصة ،بل يعتبر جزصءا من القيد ظنفسه. •
علتتتتى ستتتتبيل المثتتتتال ،لتتتتدينا هنتتتتا قيتتتتةد واحتتتتةد يحتتتتتوي علتتتتى 11خاصتتتتية؛ ويسكتتتتون استتتتمه الفريتتتتد
القيتتتتد الستتتتابق مسكتتتتتوب بصتتتتيغة ) LDIFصتتتتيغة تبتتتتادل البياظنتتتتا ت فتتتتي LDAP Data] LDAP
([Interchange Format؛ أدية معلوما ت تضعها في شجرة معلوما ت الدليل ) (DITيجتتب أن تسكتتون
وعلى الرغم من أن هذا الفصل يستخدم LDAPللستيثاق المركزي ،لسكنه يصلح لي شيء فيتته
عتتدد كتتبير متتن طلبتتا ت الوصتتول لستتنتد خلفتتي ) (backendتتمحتتور حتتول قتتراءة القيتتم المبنيتتة علتتى
الخاصتتتيا ت ) (name:value؛ تتضتتتمن المثلتتتة علتتتى ذلتتتك :دفتتتتصرا للعنتتتاوين ،وقائمتتتصة بعنتتتاوين البريتتتد
ا .التثبيت
لتثبيت عفريت خادوم OpenLDAPمع أدوا ت إدارة LDAPالتقليديتة؛ عليتك تثتبيت حزمنتت د
ي
ستتيؤدي تثتتبيت slapdإلتتى إظنشتتاء ضتتبط قتتادر علتتى العمتتل مباشتترصة؛ وخصو ص
صتتا إظنشتتاء قاعتتدة
بياظنتتا ت تستتتطيع استتتخدامها لتخزيتتن بياظناتتتك؛ لسكتتن اللحقتتة ) suffixأو DNالساستتية( ستتنتحندد متتن
اسم ظنطاق الجه از المحل ي؛ إذا أرد ت شتيصئا مختلصف ا ،فعتددل ملتف /etc/hostsوبتددل استم النطاق باستتم
ترغتتتتتتتتب فتتتتتتتتي استتتتتتتتتخدامه كلحقتتتتتتتة؛ علتتتتتتتتى ستتتتتتتتبيل المثتتتتتتتتال ،إذا أرد ت أن تسكتتتتتتتتون اللحقتتتتتتتتة هتتتتتتتتي
الغرض مما يسمح بأن نيعند slapdديناميسك ييا دون الحاجة إلى إعادة تشتغيل الخدمتة؛ وستتتسكون قاعتتدة
بياظنتتا ت الضتتبط متتن مجموعتتة متتن ملفتتا ت LDIFالنصتتية الموجتتودة فتتي المجلتتد /etc/ldap/slapd.d؛
طريقتتتتة العمتتتتل هتتتتذه معروفتتتتةة بعتتتتندة أستتتتماء :طريقتتتتة ،slapd-configوطريقتتتتة Real Time) RTC
ستتتتتنيط نلب منتتتتتك أثنتتتتتاء التثتتتتتبيت تعريتتتتتف »الوراق العتماديتتتتتة الداريتتتتتة« ) administrative
(credentials؛ وهتتتي الوراق العتماديتتة المبنيتتة علتتتى LDAPلقاعتتتدة rootDN؛ افتراضتتتصيا ،يسكتتتون
لقاعدة بياظنا ت slapd-config؛ لذا عليك الستيثاق خارجصيا للوصول إلى LDAPوسنرى كيفية فعل
ذلك لحصقا.
slapd-) slapd نتشع دد عملية التثبيت شجرتين لمعلوما ت الدليل؛ واحدة لستتتخدامها فتتي ضتتبط
LDIF ؛ تتتتذنكر أن هتتتذه القاعتتتدة مبنيتتتة علتتتىslapd-config هتتتذا متتتا تبتتدو عليتتته قاعتتدة بياظنتتا ت
/etc/ldap/slapd.d/
/etc/ldap/slapd.d/cn=config
/etc/ldap/slapd.d/cn=config/cn=module{0}.ldif
/etc/ldap/slapd.d/cn=config/cn=schema
/etc/ldap/slapd.d/cn=config/cn=schema/cn={0}core.ldif
/etc/ldap/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif
/etc/ldap/slapd.d/cn=config/cn=schema/cn={2}nis.ldif
/etc/ldap/slapd.d/cn=config/cn=schema/cn={3}inetorgperson.ldif
/etc/ldap/slapd.d/cn=config/cn=schema.ldif
/etc/ldap/slapd.d/cn=config/olcBackend={0}hdb.ldif
/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif
/etc/ldap/slapd.d/cn=config/olcDatabase={-1}frontend.ldif
/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif
/etc/ldap/slapd.d/cn=config.ldif
)عتتتبرLDAP أجتتتشر التعتتتديل ت باستتتتخدام بروتوكتتتول، مباشتتترصةslapd-config ل نتعتتتددل قاعتتتدة بياظنتتتا ت:ملحظظظظة
.(الدوا ت الخاصة
د
. قد ل يعمل المر التي بسبب علة، وربما ما بعدها14.10 في ظنسخة خادوم أوبنتو:تنويه
▲ | 159
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
:LDAP عند طلبها بواسطة بروتوكولslapd-config وهذا ما تبدو عليه شجرة معلوما ت الدليل
dn: cn=config
dn: cn=module{0},cn=config
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: olcBackend={0}hdb,cn=config
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}hdb,cn=config
. العدادا ت العامة:cn=config •
.cosine المخطط:cn={1}cosine,cn=schema,cn=config •
.inetorgperson المخطط:cn={3}inetorgperson,cn=schema,cn=config •
.(dc=example,dc=com)
▲ | 160
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
) ن
ضشبط أثناء تثبيت الحزمة(.
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Groups,dc=example,dc=com
objectClass: organizationalUnit
ou: Groups
dn: cn=miners,ou=Groups,dc=example,dc=com
objectClass: posixGroup
cn: miners
gidNumber: 5000
dn: uid=john,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: john
sn: Doe
givenName: John
cn: John Doe
displayName: John Doe
uidNumber: 10000
gidNumber: 5000
userPassword: johnldap
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /home/john
فتتي دليلتتك متتع القيتتم المحليتتة؛ استتتخدم مجتتال ت الرقتتام السكتتبيرة؛gid وuid متتن المهتتم أدل تتصتتادم قيتتم:ملحظظظة
فإظنتتك تستتمح أي ص،ldap فتتيgid وuid وبتسكتتبير قيتتم،5000 فابتتدأ مثصل متتن
ضتتا بستتهولة التحسكتتم فتتي متتاذا يستتتطيع أن
.صل هذا الموضوع لحصقا
؛ سنف دldap في مقابل ما يفعله مستخدم،يفعله المستخدم المحلي
▲ | 162
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
:أضف المحتويا ت
dn: uid=john,ou=People,dc=example,dc=com
cn: John Doe
gidNumber: 5000
. ت إضافيصة
تعطيل طباعة معلوما ت:-LLL •
طلتتب خاصتتيا ت معينتتة لظهارهتتا )القيمتة الفتراضتتية هتتي إظهتتار جميتتع:cn gidNumber •
.(الخاصيا ت
▲ | 163
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
(؛slapd-config) slapd يمسكتتن أن نتطنلتتب أو نتعتتندل شتتجرة دليتتل المعلومتتا ت الخاصتتة بضتتبط
dn: olcDatabase={1}hdb,cn=config
add: olcDbIndex
olcDbIndex: uid eq,pres,sub
dn: olcDatabase={1}hdb,cn=config
olcDbIndex: objectClass eq
olcDbIndex: uid eq,pres,sub
▲ | 164
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
لنضتتتتف الن مخطصطتتتتا ) ،(schemaيجتتتتب أوصل أن تحتتتتنول إلتتتتى صتتتتيغة LDIF؛ تستتتتتطيع إيجتتتتاد
ملحظة :حتذف المخططتتا ت متن قاعتدة بياظنتا ت slapd-configليتس أمتصرا بستيصطا؛ تتدرب علتى إضتافة المخططتتا ت
على ظنظام خاص بالتجارب.
قبتتل إضتتافة أديتتة مخططتتا ت ،يجتتب أن تتحقتتق متتن أديتتة مخططتتا ت قتتد ثدبنتتتت مستتبصقا )المخرجتتا ت
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/ldapns.schema
include /etc/ldap/schema/pmi.schema
cn={1}corba,cn=schema,cn=config
السكائنتتا ت التتي لهتا ظنفتس الستتم الفريتد للب؛ فتإظنه سنينششتتئ فهرصستا لهتذاslapd (injects) « عنتدما »يحقتن:ملحظة
.{X} :السكائن؛ ويحتوى الفهرس ضمن قوسين معقوفين
▲ | 166
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
dn: cn=corba,cn=schema,cn=config
...
cn: corba
structuralObjectClass: olcSchemaConfig
entryUUID: 52109a02-66ab-1030-8be2-bbf166230478
creatorsName: cn=config
createTimestamp: 20110829165435Z
entryCSN: 20110829165435.935248Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20110829165435Z
:slapd-config لضافة مخطط جديد إلى شجرة معلوما ت دليلldapadd استخدم،في النهاية
▲ | 167
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: cn={4}corba,cn=schema,cn=config
ملحظة :لسكي يستوثق العملء والتطبيقا ت الخارجية باستتخدام ،LDAPفتإن عليتك ضتبط كتل واحتد منهتم ليفعتل
ذلك؛ راجع توثيق تلك العملء لمعلوما ت ملئمة عنهم.
ل غنتتى عتتن تفعيتتل تستتجيل slapdعنتتد استتتخدام تطبيقتتا ت تعتمتتد علتتى ،OpenLDAPلسكتتن
عليتتك تفعيلتته يتتدو صيا بعتتد تثتتبيت البرمجيتتا ت؛ وإذا لتتم تفعتتل ذلتتك ،فستتتظهر رستتائل بدائيتتة غيتتر مفيتتدة
فقط في السجل ت؛ ونيفنعل التسجيل ،كغيره من ضبط ،slapdعبر قاعدة بياظنا ت .slapd-config
يتتتأتي OpenLDAPمتتتع عتتتددة أظنظمتتتة فرعيتتتة للتستتتجيل )مستتتتويا ت( ،تحتتتتوي كتتت ة
ل منهتتتا علتتتى
المستتتوى الدظنتتى منهتتا؛ مستتتوى جيتتد للتجربتتة هتتو stats؛ هنالتتك المزيتتد متتن المعلومتتا ت حتتول الظنظمتتة
dn: cn=config
changetype: modify
add: olcLogLevel
olcLogLevel: stats
:طدبق التعديل
وهذا ما سنينشتج كمديصة كبير صة متتن الستتجل ت؛ وربمتا تحتتتاج للعتتودة وتقليتتل درجتة الستتهاب عنتتدما
syslog لسكن ربما يجعل ضبط السهاب هذا محتترك،(in production) يصبح ظنظامك ظنظاصما إظنتاجصيا
▲ | 169
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
و .التناسخ
تتزايتتد أهميتتة خدمتتة LDAPعنتتدما تتتزداد أظنظمتتة الشتتبسكا ت النمعنتشمتتدة عليهتتا؛ تسكتتون الممارستتا ت
العملية القياسية -في مثل هذه البيئة -هي بناء redundancyفي LDAPلمنع توقف الختتدما ت إذا
لم يعد يستجيب ختادوم LDAP؛ يتتم ذلتتك باستتخدام تناستخ LDAP؛ ظنصتل إلتى التناستتخ باستتتخدام
محتتتترك Syncrepl؛ التتتتذي يستتتتمح بمزامنتتتتة التغيتتتترا ت باستتتتتخدام موديتتتتل »مستتتتتهلك-متتتتزود«؛ ظنتتتتوع
التناستتتخ التتتذي سنستتتتخدمه فتتتي هتتتذا السكتتتتاب هتتتو دمتتتج للنتتتوعين التييتتتن،refreshAndPersist :
و delta-syncrepl؛ التذي نير شستل فيته المتزود القيتود إلى المستتهلك عنتد إظنشتائهم مباشترصة؛ بالضتافة
إلى أظنه ل نترنسل جميع القيود ،وإظنما التغيرا ت التي حصلت فقط.
ضبط المزود
add: olcModuleLoad
olcModuleLoad: accesslog
# Accesslog db syncprov.
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpNoPresent: TRUE
olcSpReloadHint: TRUE
# scan the accesslog DB every day, and purge entries older than
7 days
olcAccessLogPurge: 07+00:00 01+00:00
▲ | 171
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
/var/lib/ldap/accesslog/ r,
/var/lib/ldap/accesslog/** rwk,
ضبط المستهلك
تثتتتبيت البرمجيتتتة باتبتتتاع تعليمتتتا ت قستتتم »التثتتتبيت«؛ وتأكتتتد أن قاعتتتدة بياظنتتتا ت slapd-config
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: syncprov
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: entryUUID eq
-
add: olcSyncRepl
olcSyncRepl: rid=0 provider=ldap://ldap01.example.com
bindmethod=simple binddn="cn=admin,dc=exa
credentials=secret searchbase="dc=example,dc=com"
logbase="cn=accesslog"
logfilter="(&(objectClass=auditWriteObject)(reqResult=0))"
schemachecking=on
type=refreshAndPersist retry="60 +" syncdata=accesslog
-
add: olcUpdateRef
olcUpdateRef: ldap://ldap01.example.com
يجب أن يسكون لسكل مستهلك رقم،« عدد من ثلثة أرقام يعرف النسخةReplica Id») rid •
▲ | 173
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
ن ن
ي البياظنتتتتتتتتتتا ت )ذاتتتتتتتتتتت د
ي اللحقتتتتتتتتتتة لقتتتتتتتتتتد اظنتهيتتتتتتتتتتت ،يجتتتتتتتتتتب أن يبتتتتتتتتتتدأ الن تزامتتتتتتتتتتن قاعتتتتتتتتتتدت د
.(dc=example,dc=com
التختبار
dn: dc=example,dc=com
contextCSN: 20120201193408.178454Z#000000#000#000000
وفي كتل مترة نيجترى فيها تعتديل فتي المتزود ،فتإن القيمتة ستنتعندل وكتذلك يجتب أن نتعتندل قيمة ظناتتج
إذا كان اتصالك ضعيصفا ،أو ك ان حجتم قاعتدة بياظنتا ت ldapكتبيصرا ،فربمتا يحتتاج contextCSN
في المستهلك وق صتا ليطابق مثيله فتي المتزود؛ لسكنتك تعلتم أن العمليتة قيتد الجتراء لن contextCSN
إذا كتتان contextCSNفتتي المستتتهلك مفقتتو صدا ،أو كتتان ل يطتتابق المتتزود؛ فعليتتك إيقتتاف العمليتتة
والبحث عن سبب المشسكلة قبل الكمال ،جرب التحقق من ستتجل ت (syslog) slapdوملفتتا ت auth
في المتزود للتأكتد فيمتا إذا كتاظنت طلبتا ت الستتيثاق متن المستتهلك قتتد ظنجحتتت أم ل؛ وفيمتا إذا أع اد ت
لختبار إذا كان يعمل؛ جرب طلب DNفي قاعدة البياظنا ت في المستهلك:
ي »«People ن
يجب أن تشاهد المستخدم » «johnوالمجموعتتة » «minersبالضتتافة إلتتى عقتتدت د
و » .«Groups
إدارة أي ظنوع من الوصتول ) قتتراءة ،أو كتابتة ...إلتخ (.التتي يجتب أن يحصتل عليهتا المستتخدمون
للمتتتوارد تتتتدعى »التحسكتتتم فتتتي الوصتتتول« ) (access control؛ تعليمتتتا ت الضتتتبط المستتتتخدمة تستتتمى
عندما نظنثدبتت حزمتة ،slapdفسنتضت نبط قتوائم مختلفتة للتحسكتم فتي الوصتول؛ ستنلقي ظنظترصة علتى
بعتتتض ظنتائتتتج هتتتذه القيتتم الفتراضتتية؛ وسنحصتتتل بتتذلك علتتى فسكتترة عتتتن كيفيتتة عمتتل قتتوائم التحسكتتم
لسكي ظنحصل على ACLفعال لطلبية ،LDAPفسنحتاج إلى أن ظننظر إلى سجل ت قوائم التحسكتتم
بالوصتتول لقاعتتدة البياظنتتا ت التتتي نتجتترى الطلبيتتا ت عليهتتا ،بالضتتافة إلتتى واجهتتة أماميتتة )(frontend
خاصة لقاعدة البياظنا ت؛ قوائم التحسكم بالوصول المتعلقة بالنقطة الخيرة تسلك ستتلوصكا افتراضتتصيا فتتي
حالتتة لتتم تتطتتابق النقطتتة الولتتى؛ الواجهتتة الماميتتة لقاعتتدة البياظنتتا ت هتتي ثتتاظني متتا »تنظتتر« إليتته قتتوائم
التحسكتتم بالوصتتول؛ وأول متتا ستتنتطدبقه قتتوائم التحسكتتم بالوصتتول هتتو أول متتا نستتيطانبق )» first match
dn: olcDatabase={1}hdb,cn=config
olcAccess: {0}to attrs=userPassword,shadowLastChange by self
write by anonymous
auth by dn="cn=admin,dc=example,dc=com" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by self write by
dn="cn=admin,dc=example,dc=com" write by * read
ملحظة :يملك rootDNدائصما جميع الحقوق لقاعدة بياظناته؛ تضمينها فتي ق وائم التحسكتم بالوص ول يتوفر توضتيصحا
للضبط؛ لسكنه يؤدي إلى تخفيض في أداء .slapd
dn: olcDatabase={-1}frontend,cn=config
olcAccess: {0}to * by
dn.exact=gidNumber=0+uidNumber=0,cn=peercred,
cn=external,cn=auth manage by * break
olcAccess: {1}to dn.exact="" by * read
olcAccess: {2}to dn.base="cn=Subschema" by * read
to attrs=userPassword
by self write
by anonymous auth
by dn="cn=admin,dc=example,dc=com" write
by * none
to attrs=shadowLastChange
by self write
by anonymous auth
by dn="cn=admin,dc=example,dc=com" write
by * none
▲ | 177
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
الوصتتول المجهتتول ' 'authمتتوفر إلتتى خاصتتية userPasswordلسكتتي يتتتم التصتتال البتتتدائي؛
ربمتتا هتتذا عسكتتس البتتديهي ،ظنحتتتاج إلتتى ' 'by anonymous authحتتتى لتتو لتتم ظنسكتتن ظنريتتد الوصتتول
المجهتتول إلتتى شتتجرة بياظنتتا ت التتدليل .بعتتد أن تتصتتل النهايتتة البعيتتدة ،فعنتتدها يمسكتتن أن يقتتع الستتتيثاق
يمسكتتن أن يحتتدث الستتتيثاق لن جميتتع المستتتخدمين لتتديهم وصتتول ' ) 'readبستتبب 'by self
('writeلخاصية .userPassword
عتتدا ذلتتك ،فل يمسكتتن الوصتتول إلتتى خاصتتية userPasswordمتتن أي مستتتخدمين آخريتتن؛ متتع
لسكتتتي يغيتتتر المستتتتخدمون كلمتتتا ت مرورهتتتم ،باستتتتخدام passwdأو غيرهتتتا متتتن الدوا ت ،فتتتإن
* to
by self write
by dn="cn=admin,dc=example,dc=com" write
by * read
إذا ل م يسكتن هتذا مرغوصبتا فعليتك تعتديل ACL؛ ولسكتي يسكتون الستتيثاق جبرصيتا أثن اء طلتب ،bind
فيمسكنك بشسكل بديل )أو بالمشاركة مع ACLالمعدلة( استخدام التعليمة '.'olcRequire: authc
وكما نذشكر ستابصقا ،ل يوجتد حستاب إدارة نمننشتأ لقاعتدة بياظنتا ت .slapd-configلسكتن هنالتك هوي ة
SASLالتي تملك الوصول السكامل إليها؛ والتي تمثل rootأو sudo؛ ها هي ذا:
dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
dn: olcDatabase={0}config,cn=config
olcAccess: {0}to * by
dn.exact=gidNumber=0+uidNumber=0,cn=peercred,
cn=external,cn=auth manage by * break
ولمتتتا كتتتاظنت هتتتذه هويتتتة ،SASLفإظننتتتا ظنحتتتتاج إلتتتى استتتتخدام آليتتتة SASLعنتتتدما ظنستتتتخدم أداة
LDAPكما رأينا ذلك للعديد من المرا ت في هذا السكتاب؛ هتتذه الليتتة خارجيتة؛ اظنظتتر إلتتى المتتر الستتابق
يجب أن تستخدم sudoلسكي تصبح بهوية الجذر لسكي تطابق قوائم التحسكم بالوصول. .1
هنالتتك المزيتتد متتن المتتور التتتي يجتتب الحتتديث عنهتتا فتتي موضتتوع التحسكتتم فتتي الوصتتول؛ راجتتع
حTLS .
عنتتد الستتتيثاق لختتادوم OpenLDAPفمتتن الفضتتل استتتخدام جلستتة مشتتفرة؛ ويمسكتتن أن يتتتم
هنا ،سنسكون »سلطة الشهادة« ) (Certificate Authorityالخاصة بنتتا وبعتتدها سنننششتتئ وظنوقتتع
هذه المهام.
.1ثبت حزمنت د
ي gnutls-binو :ssl-cert
.2أظنششئ مفتاصحا خا ص
صا لسلطة الشهادة:
\ sudo sh -c "certtool
"--generate-privkey > /etc/ssl/private/cakey.pem
cn = Example Company
ca
cert_signing_key
:صا للخادوم
اصنع مفتاصحا خا ص.5
في اسم الملف باستتم مضتيف خادومتتك؛ ستستتاعدك تستمية الشتتهادة والمفتتتاح للمضتتيفldap01 استبدل:ملحظة
.والخدمة التي تستخدمها في توضيح المور
▲ | 181
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
بالمحتويا ت التية )عتتدلها وفصقتا لمتطلباتتتك؛ حيتتث اعتتتبر ت أمثلتنتاcertinfo.ldif أظنشئ الملف
dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/ldap01_slapd_cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldap01_slapd_key.pem
SLAPD_SERVICES="ldap:/// ldapi:///"
▲ | 182
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
ملحظظظة :أصتتبح LDAPعتبر (dlaps://) TLS/SSLمهجتوصرا لتفضتيل ،StartTLSيشتير الخيتر إلتى جلستة LDAP
)تستمع على منفذ TCPذي الرقتم (389التتي تصتبح محميتصة بواستطة TLS/SSl؛ حيتث - LDAPSمثتل -HTTPSهتو
بروتوكول منفصل مشفر منذ البداية ) (encrypted-from-the-startالذي يعمل على منفذ TCPذي الرقم .636
إذا ضتت نبطت التناستتخ بيتتن الختتواديم ،فمتتن الممارستتا ت الشتتائعة هتتي تشتتفير ) (StartTLSبياظنتتا ت
النسخ المارة في الشبسكة لتفادي التنصت عليها؛ وهذا منفصل عتتن استتتخدام التشتتفير والستتتيثاق كمتتا
سنفترض هنا أظنك ضبطت الستنساخ بين المزود والمستهلك وفصقتتا للقستتم »التناستتخ«؛ وضتتبطت
وكما ذكر سابصقا؛ هدف التناسخ )بالنسبة لنا( هو أن تسكون خدمة LDAPذا ت إتاحية كبيرصة؛ ولدما
كنتتا ظنستتتخدم TLSللستتتيثاق فتتي المتتزود فإظننتتا ظنحتتتاج إلتتى ظنفتتس المتتر فتتي المستتتهلك؛ بالضتتافة إلتتى
ذلتتك ،ظنريتتد أن تسكتتون بياظنتتا ت الستنستتاخ المنقولتتة مشتتفرصة ،ومتتا بقتتي لنيفنعتتل هتتو إظنشتتاء مفتتتاح وشتتهادة
للمستتتهلك ثتتم الضتتبط وف صقتتا لتتذلك ،وستتنولد المفتتتاح /الشتتهادة فتتي المتتزود؛ لسكتتي ظنتجنتتب إظنشتتاء شتتهادة
افي المزود:
أظنششئ مجلصدا )الذي سيستخدم في النقل النهائي( ،ثم ودلد مفتاح المستهلك الخاص:
mkdir ldap02-ssl
cd ldap02-ssl
\ sudo certtool --generate-privkey
\ --bits 1024
--outfile ldap02_slapd_key.pem
cp /etc/ssl/certs/cacert.pem .
)عتتددل المتترscp إلى المستهلك؛ حيتتث استتتخدمنا هنتتاldap02-ssl اظنقل مجلد،لقد اظنتهينا الن
:(وفصقا لمتطلباتك
cd ..
scp -r ldap02-ssl user@consumer:
:افي المستهلك
▲ | 185
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/ldap02_slapd_cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldap02_slapd_key.pem
:افي المستهلك
. سنرى للمرة الولى كيف ظنعدل قيمة خاصية ما،؛ وبفعل ذلكTLS بعض خيارا ت
▲ | 186
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
dn: olcDatabase={1}hdb,cn=config
replace: olcSyncRepl
olcSyncRepl: rid=0 provider=ldap://ldap01.example.com
bindmethod=simple
binddn="cn=admin,dc=example,dc=com" credentials=secret
searchbase="dc=example,dc=com"
logbase="cn=accesslog"
logfilter="(&(objectClass=auditWriteObject)(reqResult=0))"
schemachecking=on type=refreshAndPersist retry="60 +"
syncdata=accesslog
starttls=critical tls_reqcert=demand
.('replace ')
▲ | 187
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
على المزود:
تأكد من أن جلسة TLSقتتد بتتدأ ت؛ وذلتتك عتتبر الستتجل ،/var/log/syslogبتافتراض أظنتتك أعتتد ت
بعتتد أن أصتتبح عنتتدك ختتادوم LDAPيعمتتل جيتتصدا ،فستتتحتاج إلتتى تثتتبيت مسكتبتتا ت علتتى جهتتاز
العميل التي تعلم كيف ومتى عليها أن تتصل إلى الخادوم؛ يتم ذلك في أوبنتو تقليدصيا بتثبيت حزمة
ت حول خادوم LDAP؛ إذا ارتسكبت خطصأ هنا ،يمسكنك المحاولة مرة أخرى بالمر:
سنتسأل عن معلوما ت
ستظهر ظنتائج مربع الحوار السابق في ملف ،/etc/ldap.confإذا تطنلتتب الختتادوم خيتتارا ت
ت غيتتر
sudo pam-auth-update
سيحتاج عملء LDAPإلى الشتتارة إلتتى عتتددة ختتواديم إذا ناستتتخشدم الستنستاخ؛ يجتتب أن تضتتع
إذا نظنشفنذ ت مهلة ) (timeoutالطلب ،فسيحاول العميل الوصول إلتتى المستتتهلك ) (ldap02إذا لتتم
إذا كنتتت تريتتد استتتخدام LDAPلتخزيتتن مستتتخدمي ستتامبا ،فتتإن عليتتك ضتتبط ستتامبا ليستتتوثق
ملحظظظة :بتتديل عتتن حزمتتة libnss-ldapهتتي حزمتتة libnss-ldapd؛ التتتي ستتتجلب معهتتا حزمتتة nscdالتتذي قتتد
ل ظنرغب فيها؛ احذفها ببساطة بعد التثبيت.
لسكتتن السلستتلة السكتتبيرة متتن العتتدادا ت، متتع أدوا ت كافيتتة لدارة التتدليلldap-utils تتتأتي حزمتتة
علتتى ستتسكربتا ت متعلقتتة بهتتذه الدوا تldapscripts المطلوبة قد تصدعب استتتخدامها؛ تحتتتوي حزمتتة
:ثدبت الحزمة
SERVER=localhost
BINDDN='cn=admin,dc=example,dc=com'
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
SUFFIX='dc=example,dc=com'
GSUFFIX='ou=Groups'
USUFFIX='ou=People'
MSUFFIX='ou=Computers'
GIDSTART=10000
UIDSTART=10000
MIDSTART=10000
▲ | 190
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
أصبحت السسكربتا ت جاهز صة لدارة دليلك؛ هذه بضعة أمثلة حول طريقة استخدامها:
هذا سنينششئ مستخدصما بمعدرف georgeويضبط مجموعة المستخدم الرئيسية إلى .example
حذف مستخدم:
إضافة مجموعة:
حذف مجموعة:
▲ | 192
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
هتتتو ظنظتتتام القتتتوالب؛ تستتتمح لتتتك القتتتوالب بتخصتتتيصldapscripts ميتتتزة جميلتتتة متتتن ميتتتزا ت
عتتددل،user لتفعيتتل قتتالب، وكائنتتا ت الجهتتاز؛ فعلتتى ستتبيل المثتتال، والمجموعتتة،خاصتتيا ت المستتتخدم
: مغديصرا/etc/ldapscripts/ldapscripts.conf الملف
UTEMPLATE="/etc/ldapscripts/ldapadduser.template"
اظنستتتتتخ أو أعتتتتتد تستتتتتمية ملتتتتتف،/etc/ldapscripts هنالتتتتتك عينتتتتتا ت عتتتتتن القتتتتتوالب فتتتتتي مجلتتتتتد
:/etc/ldapscripts/ldapadduser.template إلىldapadduser.template.sample
sudo cp \
/usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \
/etc/ldapscripts/ldapadduser.template
عددل القالب الجديد ليضيف الخاص يا ت التتي تريتدها؛ سنينششتئ متا يلتي مستتخدمين جتدد بقيمة
:objectClass للخاصيةinetOrgPerson
dn: uid=<user>,<usuffix>,<suffix>
objectClass: inetOrgPerson
objectClass: posixAccount
cn: <user>
sn: <ask>
uid: <user>
uidNumber: <uid>
gidNumber: <gid>
homeDirectory: <home>
loginShell: <shell>
gecos: <user>
description: User account
title: Employee
▲ | 193
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
.عن قيمتها
ldaprenamemachine
ldapadduser
ldapdeleteuserfromgroup
ldapfinger
ldapid
ldapgid
ldapmodifyuser
ldaprenameuser
lsldap
ldapaddusertogroup
ldapsetpasswd
ldapinit
ldapaddgroup
ldapdeletegroup
ldapmodifygroup
ldapdeletemachine
ldaprenamegroup
ldapaddmachine
ldapmodifymachine
ldapsetprimarygroup
ldapdeleteuser
فحتتان الن التتوقت للتحقتتق متتن أن عملنتتا يمسكتتن أن، كمتا ظنريتتده تماصمتتاLDAP الن يجب أن يعمل
▲ | 194
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
(dc=example,dc=com؛ إذا كنتتتتتت ستنستتتتتخ هتتتتتذه القواعتتتتتد ظنستتتتتصخا احتياطصيتتتتتا إلتتتتتى -ولشنننقتتتتتل-
:/usr/local/bin/ldapbackup
#!/bin/bash
BACKUP_PATH=/export/backup
SLAPCAT=/usr/sbin/slapcat
ملحظظظة :هتتذه الملفتتا ت هتتي ملفتتا ت ظنصتتية غيتتر مضتتغوطة تحتتتوي كتتل شتتيء فتتي قواعتتد بياظنتتا ت LDAPبمتتا فيهتتا
مخطتتط الشتتجرة ،وأستتماء المستتتخدمين ،وكتتل كلمتتا ت المتترور؛ لتتذلك ربمتتا تفسكتتر فتتي جعتتل /export/backupقستتصما
مشفصرا؛ وحتى كتابة سسكربت يشفر هذه الملفا ت عند إظنشتائها ،وربمتا تفعتل كل المري ن ،ولسكتن ذل ك متعل ةق بمتطلبتا ت
المن في ظنظامك.
كتتل متتا يلتتزم الن هتتو الحصتتول علتتى ستتسكربت مهتتام مجدولتتة ) (cronلتشتتغيل هتتذا البرظنامتتج كتتل
فترة زمنية ) ترى أظنها مناسبة( ؛ ستيسكون ملئصما للسك ثيرين جدولتة تنفيتذ البرظنامتج مترة واحتدة كتل يتوم؛
MAILTO=backup-emails@domain.com
45 22 * * * root /usr/local/bin/ldapbackup
: فإن عملية السترجاع ستسكون شبيهصة بما يلي،ldap وعلى فرض أظنك أعد ت تثبيت
▲ | 196
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
م .مصادر
هنالتتتتك السكتتتتثير متتتتن صتتتتفحا ت التتتتدليل للحزمتتتتة slapd؛ هتتتتذه أهمهتتتتا آختتتتذين بعيتتتتن العتبتتتتار •
man slapd
man slapd-config
man slapd.access
man slapo-syncprov
man auth-client-config
man pam-auth-update
ذاتتتته ،ويتتتوفر دليتتتل LDAPبطاقتتتة الستتتتيثاق بالضتتتافة إلتتتى احتتتتواء معلومتتتا ت حستتتاب المستتتتخدم
خادوم OpenLDAPمضبوط متع دليتل يمسكتن استتخدامه لطلبيتا ت الستتيثاق؛ راجتع القستم »خ ادوم
«OpenLDAPلمزيتتد متتن المعلومتتا ت حتتول تحقيتتق هتتذا المتطلتتب؛ وبعتتد إكمتتال هتتذا القستتم ،عليتتك
هنالتتتتتتك ثلث حتتتتتتزم مطلوبتتتتتتة لدمتتتتتتج ستتتتتتامبا متتتتتتع :LDAPحزمتتتتتتة ،sambaو ،samba-doc
و .smbldap-tools
وإذا أردظنتتا الدقتتة ،فتتإن حزمتتة smbldap-toolsليستتت مطلوبتتة ،لسكتتن متتا لتتم يسكتتن لتتديك طريقتتة
أختترى لدارة قيتتود ستتامبا المختلفتتة )المستتتخدمين والمجموعتتا ت والحواستتيب( فتتي ،LDAPفعليتتك
تثبيتها.
سنضبط الن خادوم LDAPلسكي يلئم بياظنتتا ت ستامبا ،إذ أظننتتا ستنجري ثلث مهمتتا ت فتتي هتتذا
القسم:
مخطط سامبا
مثل هذه الخاصيا ت باستخدام مخطط سامبا في LDAP؛ لنفعل ذلك الن.
ملحظة :لمزيد من المعلوما ت حول المخططا ت وتثبيتهم ،راجع القسم »تعديل قاعدة بياظنا ت ضبط .«slapd
يمسكتتن العثتتور علتتى المخطتتط فتتي حزمتتة samba-docالتتتي ثبتناهتتا الن ،لسكنهتتا تحتتتاج إلتتى أن
sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz
/etc/ldap/schema
sudo gzip -d /etc/ldap/schema/samba.schema.gz
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/ldapns.schema
include /etc/ldap/schema/pmi.schema
include /etc/ldap/schema/samba.schema
▲ | 200
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
dn: cn=samba,cn=schema,cn=config
...
cn: samba
structuralObjectClass: olcSchemaConfig
entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95
creatorsName: cn=config
createTimestamp: 20080827045234Z
entryCSN: 20080827045234.341425Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20080827045234Z
▲ | 201
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
افهارس سامبا
( بناصء عليهتا؛ فهرستةindices) لنضبط الن بعض الفهارس، عن خاصيا ت سامباslapd يعرف الن
.المدخل ت هي طريقة لزيادة الداء عندما نيجشري العميل بحصثا نمرنشصحا على شجرة معلوما ت الدليل
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub
:ldapsearch فيجب أن تشاهد الفهارس الجديدة باستخدام،إذا جرى كل شيء على ما يرام
▲ | 202
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
تالصيا ،اضبط حزمة smbldap-toolsلمطابقة بيئتك؛ تأتي هذه الحزمة مع ملف ضبط سيستتأل
بعتتتض الستتتئلة عتتتن الخيتتتارا ت الضتتترورية )استتتمه ،smbldap-config.plوكتتتان استتتمه فيمتتتا مضتتتى
(configure.pl؛ لسكن هنالك عدلة ليست مثبتة لسكنه موجودة في السكود المصدري )apt-get source
.(smbldap-tools
ن
لضتتبط الحزمتتة يتتدوصيا ،عليتتك إظنشتتاء وتعتتديل ملفتت د
ي /etc/smbldap-tools/smbldap.conf
و ./etc/smbldap-tools/smbldap_bind.conf
sudo smbldap-populate
تستتتطيع إظنشتتاء ملتتف LDIFيحتتتوي كائنتتا ت ستتامبا الجديتتدة بتنفيتتذ المتتر sudo smbldap-
ثم ظندفذ السسكربت لسكن بدون الخيار -e؛ أو تستطيع أخذ ملف LDIFواستيراد بياظناته كالمعتاد.
ضبط سامبا.ج
راجتتتع، لمزيتتتد متتتن المعلومتتتا ت حتتتول بعتتتض العتتتدادا ت الشتتتهيرة،هنالتتتك عتتت ددة طتتترق لضتتتبط ستتامبا
:ldap وأضف بعض معامل تpassdb backend وأزل التعليق قبل معامل
# LDAP Settings
passdb backend = ldapsam:ldap://hostname
ldap suffix = dc=example,dc=com
ldap user suffix = ou=People
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=admin,dc=example,dc=com
ldap ssl = start tls
ldap passwd sync = yes
...
add machine script = sudo /usr/sbin/smbldap-useradd -t 0 -w
"%u"
▲ | 204
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
إذا كتان لتديك مستتخدم LDAPموجتود مستتب صقا ،وأرد ت تضتمينه فتتي ستامبا ،فستتتحتاج لضتافة
سنيطنلب منك إدخال كلمة المرور ،وسنتعتنبر هي كلمة المرور الجديدة لهذا المستخدم.
لدارة حستتتتتابا ت المستتتتتتخدم والمجموعتتتتتة والجهتتتتتاز ،فاستتتتتتخدم الدوا ت المتتتتتوفرة متتتتتن حزمتتتتتة
لزالة مستخدم:
اسنتخشدم الخيار -rفي المر السابق لحذف مجلد المنزل للمستخدم المحدد.
لضافة مجموعة:
يمسكن أن يضيف الخيار -mأكثر من مستخدم في ظنفس الوقت بسردهم مفصوصل بينهم بفاصلة.
scriptفي /etc/samba/smb.confقد ن
غدير لسكي يستخدم .smbldap-useradd
smbldap-groupadd
smbldap-groupdel
smbldap-groupmod
smbldap-groupshow
smbldap-passwd
smbldap-populate
smbldap-useradd
smbldap-userdel
smbldap-userinfo
smbldap-userlist
smbldap-usermod
smbldap-usershow
د .مصادر
للمزيد من المعلوما ت حول تثبيت وضبط سامبا ،راجع »الفصل الثتتامن عشتتر :ستتامبا« متتن •
هذا السكتاب.
هنالك عددة أماكن ودثق فيها LDAPمع سامبا في » .«Samba HOWTO Collection •
علتتتتتى الرغتتتتتم متتتتتن أن هتتتتتذه الصتتتتتفحة قديمتتتتتة ) (2007لسكتتتتتن صتتتتتفحة »Linux Samba- •
.3مقدمة عن Kerberos
إن Kerberosهتتو ظنظتتام استتتيثاق شتتبسكي مبنتتي علتتى مفهتتوم الجهتتة الثالثتتة الموثوقتتة؛ الجهتتتان
الخريتان هما المستخدم والخدمة التي يريد المستخدم أن يستتتوثق فيهتتا؛ ل يمسكتتن لجميتتع الختتدما ت
والتطبيقتتتا ت استتتتخدام Kerberos؛ لسكتتتن الختتتدما ت التتتتي تستتتتطيع ذلتتتك تجعلتتته نيقتتتدرب بيئتتتة الشتتتبسكة
لتصبح أقرب خطوصة إلى »تسجيل الدخول الموحد« ).([SSO] Single Sign On
يشرح هذا القسم تثبيت وضبط خادوم ،Kerberosوبعض المثلة عن ضبط العملء.
إذا كنت جديصدا على ، Kerberosفهذه بعض المصطلحا ت التتي متن الجيتد معرفتهتا قبتل إعتداد
مبتتدأ ) :(Principalيجتتب أن نتعتتنرف أديتتة مستتتخدمين أو حواستتيب أو ختتدما ت متتوفرة متتن •
الحقول ) :(Realmsالحقل الفريد للتحسك م التذي تتم تزويتده متن عمليتة تثتبيت Kerberos؛ •
ونيصط نلح أن الحقل يجب أن يسكون بأحرف كبيرة؛ سيستخدم أوبنتو افتراضصيا عنوان DNS
مركتتز توزيتتع المفاتيتتح ) :([KDC] Key Distribution Centerيتسكتتون متتن ثلثتتة أقستتام: •
قاعتتدة بياظنتا ت لسكتل المبتتادئ ،وختادوم استتيثاق ،وختادوم منتح بطاقتتا ت )ticket granting
(server؛ يحب أن يسكون هنالك مركز توزيع للمفاتيح واحد على القل لسكل حقل.
بطاقتتتتة منتتتتح البطاقتتتتا ت ) :(Ticket Granting Ticketنتصتتتتندر متتتتن ختتتتادوم الستتتتتيثاق •
ختتتادوم منتتتح البطاقتتتا ت ) :([TGS] Ticket Granting Serverنيصتتتشدر خدمتتتة البطاقتتتا ت •
البطاقتتتا ت :تأكيتتتد هويتتتة مبتتتدأين ،أحتتتد تلتتتك المبتتتادئ هتتتو المستتتتخدم ،والختتتر هتتتو الخدمتتتة •
المطلوبتة متن المستتخدم؛ تؤستس البطاقتا ت مفتتاح تشتفير لنيستتخندم فتي التصتال ت المنتة
ملفتتتا ت :Keytabالملفتتتا ت المستتتتخرجة متتتن قاعتتتدة بياظنتتتا ت مبتتتادئ مركتتتز توزيتتتع المفاتيتتتح •
يسكون لديه أكتثر متن واحتد لضتمان تتوفر الخدمتة -التذي يحتتوي علتى قاعتدة بياظنا ت بالمبادئ ،وعنتدما
نيستتدجل مستتتخدةم دختتوله إلتتى منصتتة العمتتل المضتتبوطة لستتتخدام استتتيثاق Kerberos؛ فتتإن مركتتز
توزيتتع المفاتيتتح يصتتدر بطاقتتة منتتح البطاقتتا ت ) ،(TGTوإذا كتتاظنت التصتتاريح التتتي أعطاهتتا المستتتخدم
مطابقتتة ،فستتيتم الستتتيثاق متتن المستتتخدم وبإمسكتتاظنه الن طلتتب البطاقتتا ت لختتدما ت Kerberosمتتن
ختادوم منتتح البطاقتا ت ) ،(TGSستستتمح خدمتة البطاقتتا ت للمستتخدم أن يستتتوثق إلتى خدمتة دون أن
نيد ش
خل اسم المستخدم أو كلمة المرور.
التثبيت
لنقاشنا هذا ،سننششئ مجال MIT Kerberosمع الخاصيا ت التية )عددلها لتلئم حاجاتك(:
ملحظظظة :متتن المستحستتن -وبشتتدة -أن تسكتتون معرفتتا ت مستتتخدمين الشتتبسكة الموثتتوقين فتتي مجتتال مختلتتف عتتن
المستخدمين المحليين )لنقل أظنه يبدأ من .(5000
قبل تثبيت ختادوم ،Kerberosفمتن الضتروري وجتود خ ادوم DNSمضتبوط مستبصقا؛ ولمتا كتان
حقل Kerberosعرف صيا يستخدم اسم النطاق ،فإن هذا القسم يستخدم النطتتاق EXAMPLE.COM
المشروحة طريقة ضبطه في قسم الرئيس الولي في »الفصل الثامن :خدمة اسم النطاق ).«(DNS
Kerberosهو بروتوكول حستاس بالنستبة للتوقت؛ فلتو كان وقتتت النظتام المحلتي يختلتف بيتن
جهاز العميل وجهاز الخادوم أكثر من خمس دقائق )افتراضصيا( ،فلن تستطيع منصة العمل أن تستوثق
متتن العميتتل .ولتصتتحيح المشتتسكلة ،يجتتب أن يزامتتن جميتتع المضتتيفين وقتهتتم بواستتطة بروتوكتتول وقتتت
الشتتبسكة )(NTP؛ للمزيتتد متتن المعلومتتا ت حتتول ضتتبط ،NTPراجتتع القستتم »مزامنتتة التتوقت باستتتخدام
بروتوكول .«NTP
سنتستتأل فتتي ظنهايتتة التثتتبيت عتتن استتم مضتتيف Kerberosوختتواديم - Adminاللتتذان يمسكتتن أن
sudo kdb5_newrealm
الضبط
تستخدم الستئلة التتي ستألوك إياهتا أثنتتاء التثتتبيت لضتتبط ملتتف /etc/krb5.conf؛ إذا احتجتتت
لتعديل إعدادا ت مركز توزيع المفتاح ) (KDCفعددل ببساطة الملف وأعد تشغيل عفريتتت .krb5-kdc
إذا احتجت لعادة ضبط Kerberosمن الصفر ،ربما لتغير اسم الحقل ،فيمسكنك ذلك بالمر:
بعتتد أن يعمتتل KDCعم صل ستتليصما ،فتتإظنه متتن الضتتروري وجتتود مستتتخدم متتدير )مبتتدأ المتتدير( .متتن
المستحسن استخدام اسم مستخدم مختلف عن اسم المستخدم الذي تستعمله عادصة .يمسكن فعل ذلك
sudo kadmin.local
Authenticating as principal root/admin@EXAMPLE.COM with
password.
kadmin.local: addprinc steve/admin
;WARNING: no policy specified for steve/admin@EXAMPLE.COM
defaulting to no policy
Enter password for principal "steve/admin@EXAMPLE.COM":
Re-enter password for principal "steve/admin@EXAMPLE.COM":
Principal "steve/admin@EXAMPLE.COM" created.
kadmin.local: quit
في المثال السابق ،يسكون steveهو مبدأ ،و /adminهو ظنمتوذج ،و يشتتير @EXAMPLE.COM
ملحظة :استبدل EXAMPLE.COMو steveبالحقل واسم مستخدم المدير عندك على التوالي.
ثم يحتاج مستخدم المدير الجديد إلى أن يحصل على أذوظنا ت قوائم التحسكتتم بالوصتتول )(ACL
steve/admin@EXAMPLE.COM *
يعطي هذا القيتد steve/adminالقتدرة علتى القيتام بأي عمليتة فتي جميتع المبادئ فتي الحقتل؛
تستتتطيع ضتتبط المبتتادئ بامتيتتازا ت أقتتل؛ والتتذي يسكتتون ملئصمتتا إذا احتجتتت مبتتدأ متتدير يستتتطيع طتتاقم
العمل المبتدئ استخدامه في عملء Kerberos؛ راجع صفحة الدليل man kadm5.aclلمزيد من
التفاصيل.
أعد الن تشغيل krb5-admin-serverلسكي تأخذ قوائم التحسكم بالوصول الجديدة مفعولها:
kinit steve/admin
steve/admin@EXAMPLE.COM's Password:
بعد إدخال كلمة المرور ،فاستخدم klistلعرض معلوما ت حول بطاقة منح البطاقا ت ):(TGT
klist
Credentials cache: FILE:/tmp/krb5cc_1000
Principal: steve/admin@EXAMPLE.COM
Issued Expires Principal
Jul 13 17:53:34 Jul 14 03:53:34
krbtgt/EXAMPLE.COM@EXAMPLE.COM
المستخدم ،uidالذي فتي هتتذه الحالتة 1000؛ ربمتا تحتتاج لضتافة قيتتد فتتي ملتتف /etc/hostsمتتن أجتل
مركز توزيع المفاتيح لسكي يستطيع العميل العثور عليه ،على سبيل المثال:
استتتتبدل 192.168.0.1بعنتتتوان مركتتتز توزيتتتع المفاتيتتتح؛ هتتتذا يحتتتدث عتتتادة عنتتتدما تملتتتك حقتتتل
أفضل طريقة للسماح للعملء بتحديد مركز توزيع المفاتيح للحقتل هتو استتخدم ستجل ت DNS
ملحظة :استبدل ،EXAMPLE.COMو ،kdc01و ،kdc02باسم النطاق ،ومركز توزيع المفاتيح الرئيسي ،ومركتتز
توزيع المفاتيح الثاظنوي على التوالي وبالترتيب.
اظنظر إلى الفصل الثامن لتعليما ت تفصيلية حول ضتتبط .DNSأصتتبح حقتتل Kerberosالجديتتد
بعد أن حصلت على مركز توزيع المفاتيح ) (KDCفتتي شتتبسكتك ،فمتتن المستحستتن الحصتتول علتتى
مركتز ثتاظنوي فتي حتال لتم يسكتن المركتز الرئيستي متتوافصرا؛ وأي ص
ضتا لتو كان عنتدك عملء Kerberosفتي
شبسكا ت مختلفة )ربما مفصولة بموجها ت تستخدم ،(NATفمن الحسكمتتة وضتتع مركتتز توزيتتع ثتتاظنوي فتتي
أوصل ،ثبتتت الحتتزم ،عنتتدما تستأل عتتن أستماء Kerberosو Admin serverفادختتل استتم مركتتز
بعد أن ثبتت الحزم ،أظنششئ مبدأ مضيف ،KDCبإدخال المر التي في الطرفية:
يجتتتتتتب أن يسكتتتتتتون هنالتتتتتتك ملتتتتتف keytab.kdc02فتتتتتتي مجلتتتتتدك الحتتتتتالي ،اظنقتتتتتل الملتتتتتتف إلتتتتتى
:/etc/krb5.keytab
ضا أن نتشدسكل قائم صة بالمبادئ فتي ملتف Keytab؛ مم ا يفيتد فتي استسكشتاف الخط اء؛
تستطيع أي ص
هنالك حاجة لوجود ملف kpropd.aclفتي كتل مركتز لتوزيتع المفاتيتح التذي يعترض كتل مراكتز
توزيع المفاتيح للحقل؛ على سبيل المثال ،نأظن ششئ في مركز توزيع المفاتيح الرئيسي والثاظنوي الملف
/etc/krb5kdc/kpropd.acl:
host/kdc01.example.com@EXAMPLE.COM
host/kdc02.example.com@EXAMPLE.COM
ابتتتتدأ الن عفريتتتتت ،kpropdالتتتتذي يستتتتتمع إلتتتتى التصتتتتال ت متتتتن أداة kprop؛ تستتتتتخدم أداة
من الطرفية في مركز توزيع المفاتيح الرئيسي ،أظنشئ ملف تفريغ من قاعدة بياظنا ت المبادئ:
استخرج ملف keytabفي مركز توزيع المفاتيح الرئيسي واظنقله إلى :/etc/krb5.keytab
ملحظظظة :يجتتب أن نتظهتتر رستتالة SUCCEEDEDإذا تمتتت عمليتتة »النستتخ« بنجتتاح ،إذا كتتاظنت هنالتتك رستتالة خطتتأ،
فتحقق من /var/log/syslogفي مركز توزيع المفاتيح الثاظنوي لمزيتد من المعلوما ت.
ربما ترغب بإظنشاء مهمة مجدولة لتحديث قاعدة البياظنا ت في مركز توزيع المفاتيح الثتتاظنوي كتتل
فتتترة زمنيتتة؛ متتا يلتي ستتيدفع التغييتترا ت إلتى قاعتتدة البياظنتا ت كتتل ستتاعة )لحتظ أن الستتطر الطويتل قتتد
أظنشئ ملف stashفي المركز الثاظنوي لنيحنفظ به مفتاح Kerberosالرئيسي ):(Master Key
يجب أن يسكون المركتتز الثتتاظنوي قتتادصرا علتى إعطتاء البطاقتتا ت للحقتتل؛ يمسكنتك اختبتار ذلتك بإيقتاف
عفريت krb5-kdcفي المركز الرئيسي؛ ثم استخدام kinitلطلب بطاقتة ،وإذا جترى كتل شتيء علتى
متتتا يتتترام ،فيجتتتب أن تحصتتتل علتتتى بطاقتتتة متتتن مركتتتز توزيتتتع المفاتيتتتح الثتتاظنوي؛ عتتتدا ذلتتتك ،تحقتتتق متتتن
يشرح هذا القسم ضبط ظنظام ليننسكس كعميل Kerberos؛ هذا سيسمح بالوصول إلى أدية خدمة
التثبيت
مطلوبتتتان؛ بالضتتافة إلتتى غيرهتتا متتن الحتتزم غيتتر المطلوبتتة لسكنهتتا تستتهل عملتتك؛ أد ش
ختتل المتتر التتتي فتتي
وسنتخدزن حزمة libpam-ccredsاعتماديا ت الستيثاق مما يستتمح لتتك بتستتجيل التتدخول فتتي حتتال
لتتتم يسكتتتن مركتتتز توزيتتتع المفاتيتتتح متا صحتتتا؛ ستتتتفيد هتتتذه الحزمتتتة الحواستتتيب المحمولتتتة ،التتتتي يمسكتتتن أن
تستتتوثق باستتتخدام Kerberosعنتتدما تسكتتون فتتي شتتبسكة الشتتركة ،لسكنهتتا تحتتتاج إلتتى الوصتتول عنتتدما
الضبط
Kerberos SRV؛ فستظهر قائمة تسألك عن اسم مضيف مركز توزيع المفاتيح وخادوم إدارة الحقل.
][libdefaults
default_realm = EXAMPLE.COM
...
][realms
{ = EXAMPLE.COM
kdc = 192.168.0.1
admin_server = 192.168.0.1
}
ملحظظظة :إذا ن
ضتتبطت uidلسكتتتل متتن مستتتخدمي شتتبسكتك الموثتتوقين ليبتتدأ متتن 5000؛ كمتتا هتتو منصتتوح بتته فتتي قستتم
»التثتتتتبيت« ،فتستتتتتطيع عنتتتتدها أن تختتتتبر pamبتتتتأن يستتتتتوثق باستتتتتخدام مستتتتتخدمي Kerberosعنتتتتدما يسكتتتتون
uidأكبر من :5000
# Kerberos should only be applied to ldap/kerberos users, not local ones.
for i in common-auth common-session common-account common-password; do
\ sudo sed -i -r
\ '-e 's/pam_krb5.so minimum_uid=1000/pam_krb5.so minimum_uid=5000/
/etc/pam.d/$i
done
هذا ما سيتجنب الطلب لسكلما ت مرور )غير موجتودة( لمس تخدم موثتوق محلصيتا عنتد تغييتر كلمتة
يمسكنك اختبار الضبط بطلب بطاقة باستخدام الداة ،kinitعلى سبيل المثال:
kinit steve@EXAMPLE.COM
Password for steve@EXAMPLE.COM:
klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: steve@EXAMPLE.COM
Valid starting Expires Service principal
07/24/08 05:18:56 07/24/08 15:18:56
krbtgt/EXAMPLE.COM@EXAMPLE.COM
renew until 07/25/08 05:18:57
تسجيل الدخول:
ه .مصادر
للمزيد من المعلوما ت حول ظنسخة MITمن ،Kerberosراجع موقع ».«MIT Kerberos •
لمعرفة ماذا بإمسكاظنه أن يفعل )تصريح ]([authorization؛ وهنا تسكون مهمة البرامج مثل .LDAP
قد يسكون استنساخ قاعدة مبادئ Kerberosبين خادومين أمصرا معقصدا ،ويضيف قاعتتدة بياظنتتا ت
مستتتتخدم أختتترى إلتتتى شتتتبسكتك؛ لحستتتن الحتتتظ MIT Kerberos ،مضتتتبوةط ليستتتتخدم دليتتتل LDAP
أوصل ،يجب تحميل المخطط الضتروري علتى خ ادوم OpenLDAPالتذي لتديه اتصال شتبسكي متع
مركز توزيع المفاتيح الرئيسي والثاظنوي؛ بقية هذا القسم تفترض أن لديك استنستتاخ LDAPمضتتبوط
بيتتن ختتادومين علتتى القتتل؛ للمزيتتد متتن المعلومتتا ت حتتول ضتتبط OpenLDAPراجتتع القستتم »ختتادوم
.«OpenLDAP
متتن المطلتتوب أي ص
ضتتا ضتتبط OpenLDAPمتتن أجتتل اتصتتال ت TLSو SSL؛ لتتذلك ستتتسكون جميتتع
ملحظة cn=admin,cn=config :هو المستخدم الذي أظنشأظناه مع امتيتاز السكتابتة إل ى قاعتدة بياظنتا ت ldap؛ تسكتون
القيمة في كثير من الحيان هي ،RootDNعددل قيمته وفصقا للضبط عندك.
؛ آليتة إضتافة مخطتط جديتتد إلتىcn=config إلتى شتتجرةkerberos يجب أن يضتاف مخطتتط
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/kerberos.schema
▲ | 224
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
mkdir /tmp/ldif_output
dn: cn=kerberos,cn=schema,cn=config
...
cn: kerberos
structuralObjectClass: olcSchemaConfig
entryUUID: 18ccd010-746b-102d-9fbe-3760cca765dc
creatorsName: cn=config
createTimestamp: 20090111203515Z
entryCSN: 20090111203515.326445Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20090111203515Z
▲ | 225
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
ldapmodify -x -D cn=admin,cn=config -W
Enter LDAP Password:
dn: olcDatabase={1}hdb,cn=config
add: olcDbIndex
olcDbIndex: krbPrincipalName eq,pres,sub
modifying entry "olcDatabase={1}hdb,cn=config"
ldapmodify -x -D cn=admin,cn=config -W
Enter LDAP Password:
dn: olcDatabase={1}hdb,cn=config
replace: olcAccess
olcAccess: to
attrs=userPassword,shadowLastChange,krbPrincipalKey by
dn="cn=admin,dc=example,dc=com" write by anonymous auth by self
write by * none
-
add: olcAccess
olcAccess: to dn.base="" by * read
-
add: olcAccess
olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by *
read
modifying entry "olcDatabase={1}hdb,cn=config"
.Kerberos جاهصزا لسكي يخدم كقاعدة بياظنا ت مبادئLDAP أصبح دليل،هذا كل ما في المر
▲ | 226
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
: بإضافة الخيارا ت التية تحت القسام الملئمة لها/etc/krb5.conf عددل الن ملف
[libdefaults]
default_realm = EXAMPLE.COM
...
[realms]
EXAMPLE.COM = {
kdc = kdc01.example.com
kdc = kdc02.example.com
admin_server = kdc01.example.com
admin_server = kdc02.example.com
default_domain = example.com
database_module = openldap_ldapconf
}
...
[domain_realm]
.example.com = EXAMPLE.COM
...
[dbdefaults]
ldap_kerberos_container_dn = dc=example,dc=com
▲ | 227
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
[dbmodules]
openldap_ldapconf = {
db_library = kldap
ldap_kdc_dn = "cn=admin,dc=example,dc=com"
# this object needs to have read rights on
# the realm container, principal container and
realm sub-trees
ldap_kadmind_dn = "cn=admin,dc=example,dc=com"
# this object needs to have read and write rights
on
# the realm container, principal container and
realm sub-trees
ldap_service_password_file =
/etc/krb5kdc/service.keyfile
ldap_servers = ldaps://ldap01.example.com
ldaps://ldap02.example.com
ldap_conns_per_server = 5
}
▲ | 228
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
أظنششتئ »مخبتأص« ) (stashلسكلمتة المتترور المستتخدم فتتي ختادوم ،LDAPتستتخدم هتتذه السكلمتتة متتن
TLS_CACERT /etc/ssl/certs/cacert.pem
ملحظة :يجب أن نتننسخ الشتهادة أي صضتا إلتى مرك ز توزي ع المفاتي ح الثتاظنوي ،للستماح بالتصتال إل ى ختواديم LDAP
باستخدام .LDAPS
تستطيع الن إضافة مبادئ Kerberosإلى قاعدة بياظنا ت ،LDAPوسنتننسخ إلى بقيتتة ختتواديم
sudo kadmin.local
Authenticating as principal root/admin@EXAMPLE.COM with
password.
kadmin.local: addprinc -x
dn="uid=steve,ou=people,dc=example,dc=com" steve
WARNING: no policy specified for steve@EXAMPLE.COM; defaulting
to no policy
Enter password for principal "steve@EXAMPLE.COM":
Re-enter password for principal "steve@EXAMPLE.COM":
Principal "steve@EXAMPLE.COM" created.
ملحظة :إذا كان كائن المستخدم نمنشتصأ مستبصقا ،فإظنه يجتب إضتافة الخيتار " -x dn="...إل ى خاصتيا ت Kerberos؛
لظنه سنيننشأ فيما عدا ذلك كائن مبدأي جديد في شجرة الحقل الفرعية.
هتتتو شتتتبيه بضتتتبطه لستتتتخدام قاعتتتدةLDAP ضتتتبط مركتتتز توزيتتتع المفاتيتتتح الثتتتاظنوي لستتتتخدم
. العاديةKerberos بياظنا ت
[libdefaults]
default_realm = EXAMPLE.COM
...
[realms]
EXAMPLE.COM = {
kdc = kdc01.example.com
kdc = kdc02.example.com
admin_server = kdc01.example.com
admin_server = kdc02.example.com
default_domain = example.com
database_module = openldap_ldapconf
}
...
[domain_realm]
.example.com = EXAMPLE.COM
...
[dbdefaults]
ldap_kerberos_container_dn = dc=example,dc=com
[dbmodules]
▲ | 231
14.04 - دليل إدارة خواديم أوبنتو الستيثاق الشبسكي
openldap_ldapconf = {
db_library = kldap
ldap_kdc_dn = "cn=admin,dc=example,dc=com"
# this object needs to have read rights on
# the realm container, principal container and
realm sub-trees
ldap_kadmind_dn = "cn=admin,dc=example,dc=com"
أو عتتبر،scp إلتتى مركتتز توزيتتع المفاتيتتح الثتتاظنوي؛ تأكتتد متتن ظنستتخ الملتتف عتتبر اتصتتال مشتتفر مثتتلOM
▲ | 232
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
ي ) ldapوبالتالي (kerberosمتزامننين.
تأكد أن خادونم د
تستطيع الن إكمال استيثاق المستخدمين إن أصبح ختتادوم LDAPأو ،Kerberosأو ختتادوم
د .مصادر
اظنظر أي ص
ضا لصفحة ويسكي أوبنتو.«Kerberos and LDAP» : •
Active Directoryبطريقتة »«ad؛ أمتا فتي الصتدارا ت القديمتة متتن ،sssdكان متن الممسكتن أن يتتم
الستتتيثاق بطريقتتة » ،«ldapلسكتتن عنتتدما يتتتم الستتتيثاق باستتتخدام مايسكروستتوفت وينتتدوز Active
،Directoryفسكتتان متتن الضتتروري تثتتبيت إضتتافا ت POSIX ADفتتي المتحسكتتم بالنطتتاق؛ لسكتتن طريقتتة
ظنفترض أن قيود ،_kerberosو ،_ldapو ... _kpasswdإلخ .مضبوطة في منطقة .DNS •
ب .التثبيت
يجتب تثتبيت الحتزم ،krb5-userو ،sambaو ،sssdو ntp؛ ظنحت اج إلتى تثتبيت ستامبا ح تى
لتتو لتتم نيقتتددم الختتادوم أديتتة مشتتاركا ت .هنالتتك حاجتتة لحقتتل Kerberosوالستتم السكامتتل أو عنتتوان IP
للمتحسكما ت بالنطاق.
أد ش
خل المر التي لتثبيت تلك الحزم:
اظنظتتر إلتى القستم التتالي لطريقتة الجابتة عتتن الستئلة التتي يستألها الستسكربت المشتنغل بعتد تثتتبيت
حزمة .krb5-user
وعن خادوم مركز توزيع المفاتيح ) أي المتحسكتتم بالنطتتاق( وعتتن الختتادوم المتتدير )المتحسكتتم بالنطتتاق
أي ص
ضتتتا فتتتي هتتتذا المثتتتال(؛ وهتتتذا متتتا ستتتيسكتب القستتتمين ] [realmو ] [domain_realmفتتتي ملتتتف
/etc/krb5.conf؛ هتتتتذه القستتتتام ليستتتتت ضتتتترورية إن كتتتتان الكتشتتتتاف التلقتتتتائي للنطتتتتاق مفدعصل،
ي.
خل ذلك فسكلهما ضرور ة
.MYUBUNTU.EXAMPLE.COM
وبشسكل اختياري ،عددل الملف /etc/krb5.confمضتيصفا بعتض الخيارا ت لتحديتد متدة صتلحية
][libdefaults
default_realm = MYUBUNTU.EXAMPLE.COM
ticket_lifetime = 24h #
renew_lifetime = 7d
إذا لتتتتم نتحتتتتندد قيمتتتتة ،default_realmفربمتتتتا متتتتن الضتتتتروري تستتتتجيل التتتتدخول باستتتتتخدام »
«username@domainبدصل من ».«username
يجتتتب أن يسكتتتون وقتتتت النظتتتام فتتتي عضتتتو ظنطتتتاق Active Directoryمتوافصقتتتا متتتع متتتثيله فتتتي
المتحسكتتتم بالنطتتتاق ،وإل فستفشتتتل عمليتتتة الستتتتيثاق باستتتتخدام Kerberos؛ فمثصل ،يمسكتتتن أن نيتتتودفر
server dc.myubuntu.example.com
،Directoryحتى وإن لم نتشانرك أدية ملفا ت .عددل الملتتف /etc/samba/smb.confوأضتتف متتا يلتتي
][global
workgroup = MYUBUNTU
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
realm = MYUBUNTU.EXAMPLE.COM
security = ads
ملحظة :بعض المراجع تقول أظنه يجب تحديد » «password serverوأن يشير إلتى المتحسكتم بالنطتاق؛ لسكتن هتذا
ضتتشبنط
للعثتتور علتتى المتحسكتتم بالنطتتاق؛ حيتتث نيعتتشرض ستتامبا افتراضتتصيا تحتتذيصرا إن نDNS ي فقتتط إن لتتم نيضتتنبط
ضتترور ة
.«security = ads » « معpassword server» الخيار
SSSD ضبط.ه
[sssd]
[domain/MYUBUNTU.EXAMPLE.COM]
id_provider = ad
access_provider = ad
▲ | 237
دليل إدارة خواديم أوبنتو 14.04 - الستيثاق الشبسكي
بعد حفظ الملف ،فاظنقل الملسكية إلى الجذر ،وغدير أذوظنا ت الملف إلى :600
الستتتتتتسكربت التتتتتتذي يعمتتتتتتل بعتتتتتتد تثتتتتتتبيت حزمتتتتتتة sssdنيجتتتتتتري بعتتتتتتض التعتتتتتتديل ت علتتتتتتى ملتتتتتتف
أضتف استصما بتدي صل التذي يحتدد استم النطتاق السكامتل للحاس وب المحلتي فتي ملتف /etc/hosts
كما يلي:
sudo klist
إذا كاظنت هنالك بطاقة مع تاريخ اظنتهاء الصلحية ،فقد حان الوقت للظنضمام إلى النطاق:
يعني أظنه ليس هنالك اسم بديل )أو اسم بديل صحيح( في ملف ،/etc/hostsول يمسكن للنظام توفير
السم السكامل له؛ فعليك التحقق من السم البديل في /etc/hostsكما هو مشتتروح فتتي قستتم »تعتتديل
ملف «/etc/hostsأعله.
وأن هنالك شيء ما خاطئ ،عليك مراجعة الخطوا ت السابقة وإصلح المشسكلة قبل الكمال.
هنالك تحققان آخران اختياريان للتأكد من أن الظنضمام إلى النطاق قد ظنجح؛ لحظ أظنه إذا ظنجح
الظنضمام إلى النطاق لسكن إذا فشل أحد أو كل التحققين ،فربما عليك الظنتظار لدقيقتة أو دقيقتين قبل
التحقق الول:
التحقق الثاني:
ملحظة :إذا ضتبطت الخاصتية » «enumerate = tureفتي ملتف ،sssd.confفتإن المتر getnet passwdدون
تمريتتر استتم مستتتخدم كوستتيط ستتنيعرض جميتتع مستتتخدمي النطتتاق؛ ربمتتا يسكتتون هتتذا الستتلوك مفيتتصدا للختبتتار ،لسكنتته
بطيء وغير مستحسن للخواديم الظنتاجية.
su - username
إذا نعشم ن
ل المر السابق بنجاح ،فيجب أن تعمل بقية طرق الستيثاق ) ،gettyو .(SSH
ن
إذا أظن ششئ حساب الحاسوب ،مما يشير إلى أن النظام قد اظنضم إلى النطاق ،لسكن فشل الستيثاق؛
أ دل يسكتتون للمستتتخدم مجلتتد منتتزل ،ويمسكتتن حتتل هتتذه المشتتسكلة باستتتخدام ،pam_mkhomedir.so
حيتث سنيننشتأ مجلتد المنتتزل للمستتخدم عنتتد تستجيل التدخول؛ عتددل ملتتف /etc/pam.d/common-
متتن الممسكتتن أي ص
ضتتا الستتتيثاق متتن المستتتخدمين فتتي ستتطح مسكتتتب أوبنتتتو باستتتخدام حستتابا ت
Active Directory؛ لسكتتتتن لتتتتن تظهتتتتر أستتتتماء حستتتتابا ت مستتتتتخدمي ADفتتتتي قائمتتتتة الختيتتتتار متتتتع
المستخدمين المحليين ،لذلك يجب تعتديل lightdm؛ وذلتك بتحريتر الملتف /etc/lightdm/lightd
greeter-show-manual-login=true
greeter-hide-users=true
أعد القلع لعادة تشغيل ،lightdmحيث يمسكن الن تسجيل الدخول باستخدام حساب تتتابع
ل .المصادر
DNS
خدمة اسم النطاق ) (Domain Name Serviceهي خدمة إظنترظنت تربتتط بيتتن عنتاوين IP
وأستتماء النطتتاق السكاملتة ) ([FQDN] fully qualified domain names؛ وفتي هتذه الطريقتتة،
تخفتتتف خدمتتتة DNSمتتتن حاجتتتة تتتتذكر عنتتتاوين .IPتستتتمى الحواستتتيب التتتتي تشتتتدغل خدمتتتة DNS
.1التثبيت
خل المر التي في شمنحث الطرفية لتثبيت خادوم :dns
أد ش
حزمة dnsutilsمفيدةة جتتصدا فتتي اختبتتار واستسكشتتاف أخطتتاء DNS؛ قتتد تسكتتون هتتذه الدوا ت
.2الضبط
هنالك العديد من الطرق لضبط BIND9؛ لسكن بعض أشهر هذه العدادا ت هي ختتادوم تخزيتتن
).(secondary master
عنتتتتد ضتتتبطه كختتتتادوم تخزيتتتتن أستتتماء ،فستتتيجد BIND9جواصبتتتا عتتتن استتتتتعلما ت الستتتماء
عندما نيضنبط كختتادوم رئيتس أولتي ،فستيقرأ BIND9البياظنتتا ت لنطتاق ) (Zoneفتي ملتف فتتي
عنتتدما نيضتتنبط كختتادوم رئيتتس ثتتاظنوي؛ فسيحصتتل BIND9علتتى بياظنتتا ت النطتتاق متتن ختتادوم
ا .لمحة
نتخنزن ملفا ت ضبط DNSفتي المجلتتد ،/etc/bindملتتف الضتتبط الرئيستتي لتطتتبيق bindهتتو
./etc/bind/named.conf
نيحددد سطر includeاستتنم الملتتف التتذي يحتتتوي علتتى خيتتارا ت DNS؛ ستتطر directoryفتتي
مع مرور الوقت ،لذلك يجب أن نيحندث ملف /etc/bind/db.rootبيتتن الحيتتن والختتر؛ وذلتتك يتتتم
عادصة في تحديثا ت حزمة bind9؛ نيعدرف القسم zoneخادوصما رئيستتصيا ) ،(master serverوهتتو
من الممسكن ضبط ظنفس الخادوم ليسكون خادوم تخزيتتن أستماء ،ورئيتتس أولتي ،ورئيتس ثتتاظنوي؛
ويمسكتتن أن يسكتتون الختتادوم »بدايتتة الستتلطة« ) ([SOA] Start of Authorityلنطتتاق واحتتد ،بينمتتا
يوفر خدمة ثاظنوية لنطتتاق آختتر؛ ومتع كتتل هتذا فهتو يتوفر ختدما ت التخزيتن للمضتتيفين علتتى الشتتبسكة
المحلية .LAN
الضبط الفتراضي هو العمل كخادوم تخزين؛ كل ما هو مطلوب هتتو ببستتاطة إضتتافة عنتتاوين
IPلخواديم DNSالتي وفرها لتك متزود الخدمتة ISP؛ ببستاطة ،أزل التعليقتا ت عتن الستطر التيتة
{ forwarders
;1.2.3.4
;5.6.7.8
;}
أعتد الن تشتغيل ختادوم DNSلتفعيتل الضتبط الجديتد ،وذل ك بتنفيتذ المتر التتي متن شمنحتث
الطرفية:
سنضتتبط فتتي هتتذا القستتم BIND9كختتادوم رئيتتس أولتتي للنطتتاق example.com؛ استتتبدل
لضتتافة منطقتتة DNSإلتتى ،BIND9ممتتا يحتتول BIND9إلتتى ختتادوم رئيتتس أولتتي ،فتتإنن أول
{ "zone "example.com
;type master
;"file "/etc/bind/db.example.com
;}
استخدم الن ملف ظنطاق موجود مسبصقا كقالب لظنشاء ملف :/etc/bind/db.example.com
لخادومك ،واترك النقطتتة الضتتافية فتتي النهايتتة؛ وغديتر 127.0.0.1إلتتى عنتوان IPلختادوم الستتماء
و root.localhostإلتتى عنتتوان بريتتد صتتالح ،لسكتتن باستتتخدام " ".بتتدصل متتن رمتتز "@" واتتترك أي ص
ضتتا
النقطة الضافية في النهاية؛ عددل التعليق لسكي يبدين النطاق الخاص بهذا الملف.
;
; BIND data file for example.com
;
$TTL 604800
@ IN SO ( example.com. root.example.com.
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ; Negative Cache TTL
)
@ IN A ;192.168.1.10
@ IN NS ns.example.com.
@ IN A 192.168.1.10
@ IN AAAA ::1
ns IN A 192.168.1.10
يجتتب أن تزيتتد الرقتتم التسلستتلي ) (Serial Numberفتتي كتتل متترة تعتتددل فيهتتا علتتى ملتتف
النطاق؛ إذا عندلت عدة تغيرا ت قبل إعادة تشغيل ،BIND9نفشزد الرقم التسلسلي مرصة واحدصة فقط.
تستطيع الن إضافة ستجل ت DNSفي ظنهايتة ملتف المنطقتتة ،راج ع القستم » أظن واع الستجل ت
الشائعة« للتفاصيل.
ملحظظظظة :يحتتتب العديتتتد متتتن متتتدراء الظنظمتتتة استتتتخدام تاريتتتخ آختتتر تعتتتديل كرقتتتم تسلستتتلي للمنطقتتتة؛ مثتتتل
2012010100الذي هو ) yyyymmddssحيث ssهو الرقم التسلسلي(.
بعتتتد أن أجريتتتت تعتتتديلتك فتتتي ملتتتف النطتتتاق؛ فيجتتتب إعتتتادة تشتتتغيل BIND9لسكتتتي تأختتتذ
التعديل ت مجراها.
) (Reverse zone؛ يسمح النطاق المعسكوس لخدمة DNSبحل العناوين إلى أسماء.
{ "zone "1.168.192.in-addr.arpa
;type master
;"file "/etc/bind/db.192
;}
ملحظة :استبدل 1.168.192بأول ثلث خاظنا ت تستخدمها شبسكتك؛ ونسدم ملف النطاق
/etc/bind/db.192تستتميصة ملئمتتصة ،حيتتث يجتتب أن نيطتتاشبق أول خاظنتتة متتن خاظنتتا ت عنتتوان
الشبسكة.
;
; BIND reverse data file for local 192.168.1.XXX net
;
$TTL 604800
@ IN SOA ns.example.com. root.example.com.
(
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ; Negative Cache TTL
;)
@ IN NS ns.
10 IN PTR ns.example.com.
يجتب أن نيتزاد الرقتتم التسلستلي فتي النطتاق المعسكتوس فتي كتتل مترة نيعتندل فيهتتا الملتف .فلسكتتل
بعد أن نيض نبط الرئيس الولي فسنحتاج إلى رئيس ثاظنوي لسكي ظنحتافظ علتتى بقتتاء النطتتاق فتتي
فتتتي البدايتتتة ،يجتتتب أن نيستتت نمح بنقتتتل النطتتتاق فتتتي الختتتادوم الرئيتتتس الولتتتي؛ لتتتذا أضتتتف الخيتتتار
{ "zone "example.com
;type master
;"file "/etc/bind/db.example.com
;} ;allow-transfer { 192.168.1.11
;}
{ "zone "1.168.192.in-addr.arpa
;type master
;"file "/etc/bind/db.192
;} ;allow-transfer { 192.168.1.11
;}
الن ثدبت على الرئيتتس الثتاظنوي الحزمتتة bind9بنفتس الطريقتة التتي ثبتتهتا علتى الولتي؛ ثتم
{ "zone "example.com
;type slave
;"file "db.example.com
;} ;masters { 192.168.1.10
;}
{ "zone "1.168.192.in-addr.arpa
;type slave
;"file "db.192
;} ;masters { 192.168.1.10
;}
شتتيصئا شتتبيصها بمتتا يلتتي )نقدستتنمت بعتتض الستتطر/var/log/syslog يجتتب أن تشتتاهد فتتي ستتجل
نتن نقتتل المنطقتتة فقتتط إذا كتتان الرقتتم التسلستتلي علتتى الولتتي أكتتبر منتته علتتى الثتتاظنوي؛ وإذا أرد ت أن يعلتتم:ملحظظظة
also-notify فعليتتتتتك إضتتتتتافة الخيتتتتتار، الثاظنويتتتتتةDNS الرئيتتتتتس الولتتتتتي بتعتتتتتديل ت النطاقتتتتتا ت فتتتتتي ختتتتتواديم
./etc/bind/named.conf.local {; في ملفipaddress; }
▲ | 253
دليل إدارة خواديم أوبنتو 14.04 - خدمة اسم النطاق DNS
{ "zone "example.com
;type master
;"file "/etc/bind/db.example.com
;} ;allow-transfer { 192.168.1.11
;} ;also-notify { 192.168.1.11
;}
{ "zone "1.168.192.in-addr.arpa
;type master
;"file "/etc/bind/db.192
;} ;allow-transfer { 192.168.1.11
;} ;also-notify { 192.168.1.11
;}
ملحظة :المجلد الفتراضي للنطاقا ت غير الموثوق منها هتو /var/cache/bind؛ نيضتنبط هتذا المجلتد أي ص
ضتتا فتي
AppArmorليسمح للعفريت namedبالسكتابة إليه؛ للمزيتد م ن المعلومتا ت حتول ،AppArmorراجتع »الفصتل
التاسع :الحماية«.
ا .التختبار
ملف resolv.confأول خطوة فتي اختبتار BIND9هتي إضتتافة عنتوان IPلختتادوم الستماء
nameserver 192.168.1.10
nameserver 192.168.1.11
خواديم السماء التي تستتتمع علتى * 127.مستؤولة عتن إضتتافة عنتتاوين IPالخاصتتة بهتتم إلتتى
ملحظة :يجب إضافة عنوان IPلخادوم السماء الثاظنوي في حال لم يسكن الخادوم الولي متوفصرا.
dig
إذا ثبتتتتت حزمتتتة dnsutilsفيمسكنتتتك اختبتتتار إعتتتداداتك باستتتتخدام أداة البحتتتث فتتتي DNS
المسماة .dig
dig -x 127.0.0.1
ضبنطت BIND9كخادوم تخزين السماء ،فتتابحث ) (digعتتن ظنطتتاق ختتارجي للتحقتق متتن
إذا ن
زمن الطلبية:
dig ubuntu.com
لشرح كيف نتستخدم التطبيقا ت DNSلسكي يستبين اسم المضتتيف؛ فسنستتتخدم الداة ping
ping example.com
طريقتتة رائعتتة لختبتتار ملفتتا ت النطاقتتا ت لتتديك هتتي استتتخدام الداة المثبتتتة متتع حزمتتة bind9؛
تسمح هذه الداة لك بالتأكد من أن الضبط صحيح قبل إعادة تشغيل BIND9وجعل التغيرا ت حيصة.
أد ش
خل المر التي في الطرفية لختبار ملف النطاق في مثالنا:
ب .التسجيل
لتتتدى BIND9خيتتتارا ت كتتتثيرة لضتتتبط التستتتجيل )(logging؛ هنالتتتك خيتتتاران رئيستتتيان همتتتا
الخيتتتار channelالتتتذي يضتتتبط أيتتتن ستتتيذهب الستتتجل ،والخيتتتار categoryالتتتذي يحتتتدد متتتا هتتتي
{ logging
;} ;category default { default_syslog; default_debug
;} ;category unmatched { null
;}
يشتترح هتتذا القستتم ضتتبط BIND9لرستتال رستتائل debugمتعلقتتة بطلبيتتا ت DNSإلتتى ملتتتف
منفصل.
سنحتاج أوصل إلى ضبط »قناة« ) (channelلتحديد الملف الذي سنترنستتل إليتته الرستتائل ،عتتدل
{ logging
{ channel query.log
;"file "/var/log/query.log
;severity debug 3
;}
;}
{ logging
{ channel query.log
;"file "/var/log/query.log
;severity debug 3
;}
;} ;category queries { query.log
;}
ملحظظظة :لحتتظ أن الخيتتار debugيمسكتتن أن نيضتتنبط متتن المرحلتتة 1إلتتى 3؛ وستستتتخدم المرحلتتة 1إذا لتتم نتحتتندد
مرحلة.
وتغيير ملسكيته:
قبتتل أن يتمسكتتن العفريتتت namedمتتن السكتابتتة إلتتى ملتتف الستتجل الجديتتد ،فيجتتب أن نيحتتندث
/var/log/query.log w,
يجب أن ترى الملف /var/log/query.logممتلصئا بمعلوما ت الطلبيا ت؛ هذا مثال بسيط عتتن
ضبط تسجيل BIND9؛ راجع القسم »المزيد من المعلوما ت« للمزيد من الخيارا ت المتقدمة.
.4المراجع
ستتجل :CNAMEنيستتتخندم لظنشتتاء استتم بتتديل لستتجل موجتتود مستتبصقا ،ل يمسكنتتك استتتخدام
ستتجل :MXنيستتتخندم لتعريتتتف أيتتن يجتتب أن نير نستتل البريتتد؛ يجتتب أن يشتتير إلتتى ستتجل ،A
ستتجل :NSنيستتتخندم لتعريتتف أديتتة ختتواديم نتنختتددم ظنستتصخا متتن المنطقتتة؛ يجتتب أن يشتتير إلتتى
سجل ،Aوليس إلى CNAME؛ هذا مسكان تعريف الخادومين الولى والثاظنوي.
اظنظر إلى bind9.netللحصول على شرح معدمق لعمل DNSو .BIND9 •
مسكان رائع لطلب المساعدة في BIND9والتعاون مع مجتمع خادوم أوبنتو هو قنتتاة IRC •
أي ص
ضا ،راجع » «BIND Server HOWTOفي ويسكي أوبنتو. •
يجب أن تضع الحماية ظنصب عين ديك عند تثبيت وظنشر واستخدام أي ظنوع متتن أظنظمتتة تشتتغيل
الحاستتوب؛ وعلتتى الرغتتتم متتتن أن تثبيصتتتتا حتتتديصثا لوبنتتتو هتتو آمتتن ظنستتتبصيا للستتتخدام الفتتوري علتتى
الظنتتترظنت ،لسكتتن متتن المهتتم أن يسكتتون لتتديك فهتتم متتتوازن لحالتتة حمايتتة أظنظمتتتك بنتتاصء علتتى طريقتتة
يزودك هتتذا الفصتتل بلمحتة عتتن المواضتيع المرتبطتة بالحمايتتة المتعلقتة بنستخة ختتادوم أوبنتتو
، 14.04ويخط الخطوط العريضة للجراءا ت التي يمسكنك أن تستخدمها لحماية خادومتتك وشتتبسكتك
.1إدارة المستخدمين
إدارة المستخدمين هي جزء جتوهري فتتي الحفتتاظ علتى ظنظتتاتم آمتن؛ تقتود الدارة غيتتر السكفتء
للمستتتخدمين والمتيتتازا ت عتتاد صة إلتتى إضتتعاف أمتتان النظتتام؛ وبالتتتالي متتن الضتتروري أن تفهتتم كيتتف
اتخذ مطورو أوبنتو قتتراصرا واعصيتتا بتعطيتتل حستتاب الجتتذر الداري افتراضتتصيا فتي جميتتع حتتال ت
ن
تثبيت أوبنتو؛ هذا ل يعني أن حساب الجذر محذوةف أو ل يمسكن الوصول إليه ،حيتتث أستتشنند ت إليتته
ببساطة كلمة مرور ل نتطاشبق أدية قيمة؛ أي أظنك ل تستطيع الدخول إليه مباشرصة.
النظتتام؛ حيتتث تستتمح sudoلمستتتخدم موثتتوق بترقيتتة امتيتتازاته باستتتخدام كلمتتة متتروره بتتدصل متتن
الحاجة لمعرفة كلمة المرور الخاصة بحساب الجذر .هتتذه الطريقتتة البستتيطة تعطتتي المستتؤولية لجميتتع
أفعال المستخدم ،وتمنح مدير النظام تحسكصما بالفعال التي يستطيع القيام بها مع امتيازاته الحالية.
إذا أرد ت تفعيل حساب الجذر لسبب ما ،فببساطة أسند كلمة مرور لذاك الحساب:
sudo passwd
ستطلب منتك أداة sudoكلمتة مترورك ،ثتم ستتطلب منتك تتوفير كلمتتة مترور جديتتدة لحستاب
تستطيع التعلم أكثر عن sudoبالنظر إلى صفحة الدليل المتعلقة بهذا المر:
man sudo
ن
ينتمي المستخدم الذي أظنششئ أثناء تثبيت أوبنتو افتراضصيا إلى المجموعتتة » «sudoالنمضتتافة
عمليتتة إدارة المستتتخدمين المحلييتتن والمجموعتتا ت هتتي عمليتتة بستتيطة ومباشتترة ول تختلتتف
إل قليصل بيتتن أغلبيتتة أظنظمتتة تشتتغيل غنتتو/لي ننسكتتس الختترى؛ تحتتث أوبنتتتو ،والتوزيعتتا ت المبنيتتة علتتى
لضافة حساب مستخدم جديد ،استخدم الشسكل العام التي ،وأكمل مع الرستتائل التتتي تطلتتب
منك إعطاء كلمة مرور للحساب ،وتعريف بعض الخاصيا ت مثل السم السكامل ورقم الهاتف ...إلخ.
ل يؤدي حذف حساب مستخدم إلى حتتذف مجلتتد المنتتزل الموافتتق لته؛ هتتذا يعتتود لتك إن كنتتت
ن ص
تتتتتذكر أن أي مستتتتتخدم آختتتتر نيضتتتتاف لحقتتتتا بنفتتتتس معرفتتتت د
ي UID/GIDللمستتتتتخدم القتتتتديم
سيحصل على وصول كامل لهذا المجلد إذا لم تتخذ الحتياطا ت اللزمة.
قتتد ترغتتب بتغييتتر قيتتم UID/GIDإلتتى قيتتم أختترى ملئمتتة أكتتثر -كحستتاب الجتتذر مثصل -وربمتتا
تريد أي ص
ضا ظنقل المجلد لتفادي التضاربا ت المستقبلية:
لسكتتي تقفتتل حستتاب مستتتخدم مؤقصتتتا أو تلغتتي قفلتته ،فاستتتخدم المتتر passwdمتتع الخيتتارا ت
الموافقة للعملية التي تريد إجراءها كما يلي )على التوالي وبالترتيب(:
لضافة أو حذف مجموعة خاصة ،فاستخدم المرين التيين على التوالي وبالترتيب:
عنتتتدما نينشتتتأ مستتتتخدةم جديتتتد ،فسنتنششتتتئ الداة adduserمجلتتتد منتتتزل جديتتتد يظهتتتر باستتتم
إذا كتتتان ستتتيحتوي خادومتتتك علتتتى عتتت ددة مستتتتخدمين ،فيجتتتب أن تتتتولي أذوظنتتتا ت مجلتتتد المنتتتزل
للمستتتخدم اهتماصمتتا شتتديصدا لتحقيتتق سترية بياظنتتاته؛ افتراضتتييا ،مجلتتدا ت منتتزل المستتتخدم فتتي أوبنتتتو
نتن نشأ بأذوظنتا ت القتراءة والتنفيتتذ؛ هتذا يعنتتي أن كتل المستتتخدمين يستتطيعون الوصتتول والتجتتول فتي
محتويا ت مجلدا ت المنزل للمستخدمين الخرين ،ربما ل يلئم ذلك احتياجا ت بيئة تشغيل ظنظامك.
)العالم أو :(world
ملحظة :بعض الشخاص يميلون لستخدام الخيار التعاودي ) ([recursive ] -Rدوصما دون تمييز الحال ت التي
يجب استخدامه فيها ،الذي نيع ددل أذوظنا ت المجلدا ت »البناء« والملفا ت التي فيها ،لسكن هذا ليتتس ضتترورصيا ،وربمتتا
يتستتبب ببعتتض النتائتتج غيتتر المرغتتوب بهتتا؛ يسكفتتي تعتتديل أذوظنتتا ت المجلتتد »الب« فقتتط لمنتتع المستتتخدمين غيتتر
طريقة أخرى أكثر فعاليصة هي تعديل ضبط الذوظنا ت الفتراضية العتتام للداة adduserعنتتد
قيمتتة المتغيتتر DIR_MODEإلتتى قيمتتتة مناستتب تة ،حيتتث ستحصتتل جميتتع مجلتتدا ت المنتتزل الجديتتدة
DIR_MODE=0750
بعد تصحيح أذوظنا ت المجلد باستخدام إحدى الطرق السابق ذكرها ،فتأكد من النتائج بالمر:
ن
النتائج التية نتظشهر أظنه قد أزيل إذن القراءة لجميع المستخدمين:
أحد أهم الجواظنب في حمايتتة ظنظامتتك هتو استتتخدام سياستتة قويتتة لسكلمتا ت المترور؛ إذ تتطلتب
العديتتتد متتتن الختراقتتتا ت المنيتتتة الناجحتتتة استتتتخدام هجمتتتا ت »القتتتوة القاستتتية« ) (brute force
وتخميتتن كلمتتا ت المتترور الضتتعيفة متتن القتتاموس؛ إذا كنتتت تنتتوي تتتوفير أي ظنتتوع متتن التحسكتتم البعيتتد
التتذي يتطلتتب كلمتتة المتترور المحليتتة للنظتتام ،فتأكتتد أظنتتك تحقتتق المتطلبتتا ت التتدظنيا متتن تعقيتتد كلمتتا ت
المرور ،ومدة كلمة المرور الدظنيا ،والتدقيق الرتيب لظنظمة الستيثاق عندك.
تتطلب أوبنتو افتراضصيا طوصل أصغر صيا لسكلمة المرور يساوي ستة محارف ،يمسكن التحسكتتم بهتتذه
إذا أرد ت تغيير الحد الدظنى لطول كملة المرور إلى ثماظنية محارف ،فعددل المتغير الملئم إلتتى
ملحظة :التحقق البسيط متن كلمتة المترور ،والطتتول الدظنتتى لهتا ل نيطنبتق علتى الوامتر النمننفتتذة باستتخدام sudo
لعداد مستخدم جديد.
عنتتتد إظنشتتتاء حستتتابا ت للمستتتتخدمين ،فيجتتتب أن نتن ششتتتئ سياستتتة لعمتتتر كلمتتتة المتتترور الدظنتتتى
والقصى وإجبار المستخدمين على تغيير كلما ت مرورهم عندما تنتهي مدتها.
نيظ شهتتر ظناتتتج المتتر الستتابق حقتتائق متتثيرة للهتمتتام حتتول حستتاب المستتتخدم ،ولنفتتترض أظنتته
استخدم المر التي ببساطة وتابع مع الرسائل التفاعلية لضبط أدية قيمة من هذه القيم:
لسكلمتتة المتترور ) (-mإلتتى 5أيتتام ،والعمتتر القصتتى لسكلمتتة المتترور ) (-Mإلتتى 90يوصمتتا ،ومتتدة الخمتتول
) ،inactivityالخيار (-Iإلتى 5أيتتام بعتد اظنتهتتاء صتتلحية كلمتة المترور ،ومتدة وقتتت التحتتذير )(-W
يجب أن نيظ شهر الناتج السياسا ت الجديدة التي أعددظناها لهذا الحساب:
تستخدم العديد من التطبيقتتا ت آليتتا ت استتيثاق أختترى يمسكتتن أن يغفلهتتا حتتتى متدراء الظنظمتتة
الختتبراء؛ وبالتتتالي فمتتن المهتتم فهتتم والتحسكتتم فتتي طريقتتة استتتيثاق المستتتخدمين وحصتتولهم علتتى
ل يمنع تعطيل حساب مستخدم من دخوله إلى خادومك عن بعد إن كتتان قتتد ضتبط استتتيثاق
بمفتاح RSAعام؛ وسيتمسكنون من الحصتول علتتى وصتول إلتى الصتتدفة ) (shellفتتي الختادوم دون
الحاجة ل دية كلمة مرور؛ تذكر أن تتحقق من مجلد المنزل للمستخدمين الذي يسمحون بهتتذا النتتوع
احذف أو أعد تسمية مجلد .ssh/في مجلد المنزل للمستخدم لتعطيتتل إمسكاظنيتتا ت الستتتيثاق
عبر .SSH
ن
تأكد أن تتحقق من أدية اتصال ت SSHقد أظنششتئت متن المستتخدم المعنطتل؛ حيتث متن الممسكتن
أن يملسكوا اتصال ت داخلة أو خارجة موجودة مسبصقا» ،اقتل« ) (killتلك العمليا ت إذا عثر ت عليها.
احصتتر الوصتتول عتتبر SSHإلتتى حستتابا ت المستتتخدمين التتذين يجتتب أن يحصتلوا عليهتتا فقتتط؛
فعلتتى ستتبيل المثتتال ،ربمتتا تننششتتئ مجموعتتة تستتميها » «sshloginوتضتتيف استتم المجموعتتة كقيمتتة
AllowGroups sshlogin
ثم أضف مستخدمي SSHالمستتموح لهتتم إلتتى المجموعتتة » ،«sshloginوأعتتد تشتتغيل خدمتتة
:SSH
تتطلتتب معظتتم الشتتبسكا ت المشتتاريع التجاريتتة آليتتنة استتتيثاتق مركزيتتة والتحسكتتم بالوصتتول إلتتى
جميع مصادر النظام ،إذا ضبطت خادومك ليستوثق من المستخدمين متتن قاعتتدة بياظنتتا ت خارجيتتة؛
فتأكتتد متتن تعطيتتل حستتابا ت المستتتخدمين محلصيتتا وخارجصيتتا ،وبهتتذا تتأكتتد متتن أن البتتديل المحلتتي
.2تأمين الطرفية
وكما غيرها من ترساظنة الحماية التي تستخدمها لحمايتتة خادومتتك ،متتن القواعتتد الصتتارمة هتتو
التأمين ضد الضرار الناتجة عن شخص لديه الوصول الفيزيائي لبيئتك ،على سبيل المثال ،ستترقة
القتتراص الصتتلبة ،أو خلتتل فتتي الطاقتتة السكهربائيتتة ...إلتتخ؛ وبالتتتالي يجتتب أن يسكتتون تتتأمين الطرفيتتة
جتتزصءا رئيستت صيا فتتي استتتراتيجية الحمايتتة الفيزيائيتتة؛ ستتيحد »قفتتل الشاشتتة« ) (screen doorمتتن
تأثير مجرم عادي ،أو على القل سيبطئ عمل مجرم مصتتمم علتى إلحتاق الذى بنظامتتك! لتذلك متتن
بتتتادئ ذي بتتتدء ،يستتتتطيع أي شتتتخص لتتتديه الوصتتتول الفيزيتتتائي للوحتتتة المفاتيتتتح ببستتتاطة أن
الدخول؛ طب صعا يمسكن لي شخص إزالة كبل السكهرباء من المقبس ،لسكن ما يتتزال عليتتك منتتع استتتخدام
هذه التجميعة على خادوم إظنتاجي؛ وهذا يجبر المهاجم على اتختتاذ إجتتراءا ت عنيفتتة لعتتادة إقلع
لتعطيتتل إعتتادة إقلع الختتادوم بالضتتغط علتتى تجميتتع الزرار ،Ctrl+Alt+Deleteفضتتع رمتتز
.3الجدار الناري
ا .مقدمة
تتضتتمن ظنتتواة ليننسكتتس النظتتام الفرعتتي Netfilterالتتذي نيستتتخندم لتعتتديل أو تحديتتد مصتتير
البياظنا ت الشبسكية الداخلة أو الخارجة من الخادوم ،نتستتتخدم جميتتع الجتتدر الناريتتة فتتي ليننسكتتس هتتذا
ظنظام ترشيح الرزم الخاص بالنواة لن يسكون مفي صدا لمدراء الظنظمة دون واجهتتة لدارتتته ،وهتتذا
هو الغرض من iptables؛ فعندما تصل رزمة شبسكية إلى خادومك ،فستتتتوجه إلتتى النظتتام الفرعتتي
Netfilterللموافقتتتة أو التعتتتديل أو الرفتتتض بنتتتاصء علتتتى القواعتتتد المتتونفرة لهتتتا متتتن المستتتتخدم عتتتبر
iptables؛ ولهذا سيسكون iptablesهو كتل متتا تحتتاج لدارة الجتتدار النتاري إن كتتان مألوصفتتا لتديك،
أداة ضتتتتبط الجتتتتدار النتتتتاري الفتراضتتتتية فتتتتي أوبنتتتتتو هتتتتي Uncomplicated Firewall
أو اختصتتتتاصرا ،ufwالتتتتتي نطتتتتدونر ت لتستتتتهيل ضتتتتبط جتتتتدار iptablesالنتتتتاري ،تتتتتوفر ufwواجهتتتتة
إن ufwمع ط
طل اافتراضييا .من صفحة دليل :man ufw
»لتتم يطتتنور ufwلتتتوفير وظيفتتة جتتدار ظنتتاري كاملتتة عتتبر واجهتتته الستتطرية ،لسكنتته يتتوفر طريقتتصة
سهلصة لضافة أو حتتذف القواعتتد؛ ويستتتخدم حالصيتتا استتتخداصما رئيستتصيا للجتدر الناريتتة المعتمتتدة علتى
من الممسكن أي ص
ضا الستتماح بالوصتول متن مضتيفين أو شتتبسكا ت محتددة لمنفتتذ متتا؛ يستمح المثتتال
التي بالوصول لمنفذ sshمن المضيف 192.168.0.2لي عنوان IPفي هذا المضيف:
sudo ufw allow proto tcp from 192.168.0.2 to any port 22
الشبسكة الفرعية.
لسكنتته لتتن يطبقهتتا؛ علتتى، سيجعله يخرج القواعد الناتجتتةufw لمر--dry-run إضافة الخيار
*filter
:ufw-user-input - [0:0]
:ufw-user-output - [0:0]
:ufw-user-forward - [0:0]
:ufw-user-limit - [0:0]
:ufw-user-limit-accept - [0:0]
### RULES ###
▲ | 278
دليل إدارة خواديم أوبنتو 14.04 - الحماية
لعرض أرقام بجوار القواعد )لحذفها مثصل( فاستخدم السكلمة المحجوزة :numbered
ملحظة :إن كان المنفذ التذي تريتد فتحته أو إغلقتته معرصفتتا فتي ،/etc/servicesفيمسكنتك استتخدام استتم المنفتذ
بدصل من رقمه؛ حيث استبدل 22بالسكلمة sshفي المثلة السابقة.
هتتذه مجتترد مقدمتتة ستتريعة عتتن استتتخدام ،ufwرجتتاصء راجتتع صتتفحة دليتتل ufwلمزيتتد متتن
المعلوما ت.
تستتتطيع التطبيقتتا ت التتتي تفتتتح منافتتذ أن نتضتتدمن ملتتف ufwالتتذي يتتبدين أديتتة منافتتذ يحتتتاج
التطتتبيق لفتحهتتا لسكتتي يعمتتل عمصل تاصمتتا؛ هتتذه الملفتتا ت موجتتودة فتتي /etc/ufw/applications.d
استخدم المر التي في الطرفية لعرض التطبيقا ت التي ثبتت أحد تلك الملفا ت:
وبشتتتسكل شتتتبيه للستتتماح بالتصتتتال ت إلتتتى منفتتتذ معيتتتن ،فنيفنعتتتل استتتتخدام ملتتتف ضتتتبط أحتتتد
التطبيقا ت بالمر:
ملحظة :ل توجد هنالك حاجة لتحديد البروتوكول للبرظنامج التذي ستنتفدعله ،لن هتذه المعلومتا ت مف ن
صتلة بتالملف
الخاص به ،لحظ أن اسم التطبيق يستبدل رقم المنفذ.
لعرض معلوما ت حول المنافذ والبروتوكول ت )...إلخ (.النمعنرفة لتطبيتق ما ،فأد ش
خل المر:
ليس لسكل التطبيقا ت التي تتطلب فتح منفتذ شتتبسكي ملتف ufwختاص؛ إذا كتبتتت ذاك الملتف
لتطتتتبيق متتتا ،وأرد ت أن نيضتتتنمن هتتتذا الملتتتف متتتع الحزمتتتة ،فرجتتتاصء بدلتتتغ عتتتن علتتتة فتتتي تلتتتك الحزمتتتة
على :Lanuchpad
ubuntu-bug nameofpackage
تنكر IP
الغايتتة متتن تنسكتتر (IP Masquerading) IPهتو الستتماح للجهتتزة التتي تملتك IPختتاص غيتتر
قابل للتوجيه في شبسكتك بالوصتول إلتتى الظنتتترظنت عتتبر الجهتتاز التذي يقتوم بتالتنسكر؛ يجتب أن نتعانلتتج
البياظنا ت الشبسكية من شبسكتك الخاصة إلى الظنترظنت لسكي تونجه الردود إلى الجهاز الذي قام بالطلب،
ويجب أن نتعددل الن واة قيمتة عنتوان IPالمصتدر لسكتل رزمتة شتبسكية لسكتي تصتبح قابلتة للت وجيه إلتى
الخادوم ،بدصل متن عن وان IPالختاص ) (private IPالتذي قتام بتالطلب ،التذي يسكتون مستتحيصل عتبر
الظنتتترظنت؛ يستتخدم ليننسكتتس تعقتب التصتتال ) (conntrackلسكتي يتعقتتب أديتة اتصتال ت تتعلتتق بأديتة
أجهتتزة وإعتتادة تتتوجيه كتتل رزمتتة نمعتتادة وف صقتتا لتتذلك؛ أي أن البياظنتتا ت الشتتبسكية الخارجتتة متتن شتتبسكتك
المحليتتة هتتتي »نمتندسكتتترة« لظنهتتتتتا تنشتتتأ متتتن البوابتتتة )خادومتتك(؛ نيشتتتار إلتتى هتتذه العمليتتتة فتتي توثيتتق
تنكر ufw
يمسكتتن أن يجتترى تنسكتتر IPبقواعتتد ufwمخصصتتة؛ هتتذا ممسكتتن لن الستتند الخلفتتي للداة ufw
هتتو iptables-restoreمتتع ملفتتا ت القواعتتد المخزظنتتة فتتي /etc/ufw/*.rules؛ هتتذه الملفتتا ت هتتي
مسكتتان ممتتتاز لضتتافة قواعتتد iptablesبتتدون ،ufwوللقواعتتد التتتي تتعلتتق تعلصقتتا كتتبيصرا بالبوابتتا ت
الشبسكية أو الجسور.
نتق نستتم القواعتتد إلتتى ملفيتتن مختلفيتتن ،القواعتتد التتتي يجتتب أن نتنننفتتذ قبتتل القواعتتد الستتطرية
أوصل ،يجتتتب أن نيفنعتتتل تمريتتتر التتترزم فتتتي ،ufwيجتتتب أن نيعتتتندل ملفتتتي إعتتتدادا ت؛ غديتتتر قيمتتتة
"DEFAULT_FORWARD_POLICY="ACCEPT
net/ipv4/ip_forward=1
net/ipv6/conf/default/forwarding=1
جدول filterفقط ،ويجب ضتبط جتتدول natلتفعيتل التنسكتتر؛ أضتتف متتا يلتي إلتتى أعلتى الملتف بعتتد
# don't delete the 'COMMIT' line or these nat table rules won't
be processed
COMMIT
ليست التعليقا ت ضروري صة ،لسكنها متتن المستحستن توثيتق ملفتتا ت الضتبط؛ وعنتد تعتتديل أي متتن
ملفتتا ت »القواعتتد« فتتي ، /etc/ufwفتأكتتد متتن أن هتتذين الستتطرين موجتتودان فتتي ظنهايتتة الملتتف لسكتتل
جدول عندلته:
# don't delete the 'COMMIT' line or these nat table rules won't
be processed
COMMIT
يجب أن تتوفر عبارة COMMITفي ظنهاية كل جدول ،وقد ظهر في المثلتتة الستتابقة جتتدوصل
ملحظة :استبدل-في المثال السابق eth0 -و eth1و 192.168.0.0/24بالبطاقا ت ومجال IPالملئمين.
يجتتب أن نيفنعتتل تنسكتتر IPالن ،تستتتطيع إضتتافة أيتتة قواعتتد FORWARDإضتتافية إلتتى ملتتف
.forward
تنكر iptables
يمسكتتتن أن نيستتتتخندم iptablesلتفعيتتتل التنسكتتتر .وبشتتتسكل شتتتبيه للداة ،ufwأول خطتتتوة هتتتي
net.ipv4.ip_forward=1
net.ipv6.conf.default.forwarding=1
يمسكن أن نيفنعل تنسكر IPبقاعدة iptablesواحدة ،التي يمسكن أن تختلف اختلصفا بسيصطا بنتتاصء
يفتتترض المتتر الستتابق أن مجتتال شتتبسكتك الخاصتتة هتتو 192.168.0.0/16وأن الجهتتاز التتذي
:-s 192.168.0.0/16تط نبق القاعدة على البياظنا ت التية من مجال العناوين المحدد. •
:-o ppp0القاعدة نتط نبق على البياظنا ت المقرر توجيهها عبر الجهاز الشبسكي المحدد. •
:-j MASQUERADEستتتتتقفز ) (jumpالبياظنتتتتا ت النمطا شبقتتتتة لهتتتتذه القاعتتتتدة إلتتتتى هتتتتدف •
أي ص
ضا ،كل سلسلة في جدول ) filterالجدول الفتراضي ،ومسكان حدوث أغلبية ترشيح الرزم
الشبسكية( تسكون سياستها الفتراضية هي ACCEPT؛ لسكن إن كنت نتنششئ جداصرا ظنارصيا بالضتتافة إلتتى
بوابتتتة ،فربمتتتا تحتتتتاج إلتتتى ضتتتبط السياستتتا ت إلتتتى DROPأو REJECT؛ وفتتتي هتتتذه الحالتتتة تحتتتتاج
البياظنا ت المتنسكرة إلى السماح لها في سلسلة FORWARDلسكي تعمل القاعدة السابقة:
ستستتتمح الوامتتتر الستتتابقة لجميتتتع التصتتتال ت متتتن شتتتبسكتك المحليتتتة إلتتتى الظنتتتترظنت ،ولعتتتودة
إذا أرد ت تفعيتتتل التنسكتتتر عنتتتد القلع -التتتذي تريتتتد تفعيلتتته فتتتي غتتتالب الحيتتتان -فعتتتددل ملتتتف
/etc/rc.localوأضف الوامر السابقة؛ على سبيل المثال ،أضف المر السابق دون ترشيح:
ج .السجلت
سجل ت الجدار الناري مهمة جت صدا للتعتترف علتتى الهجمتا ت ،واستسكشتتاف أخطتتاء قواعتد الجتتدار
الناري ،وملحظة النشاط غير الطبيعي في شبسكتك؛ يجتتب أن تضتتدمن قواعتتد للتستتجيل فتتي جتتدارك
النتتاري لسكتتي تو نلتتد الستتجل ت ،ويجتتب أن تتتأتي قواعتتد الستتجل ت قبتتل قواعتتد الظنهتتاء )القواعتتد التتتي
إذا كنت تستخدم ، ufwفبإمسكاظنك تفعيل التسجيل بإدخال المر التي في الطرفية:
طلبيةة على المنفذ 80من الجهاز المحلي ستولند سجصل في dmesgالذي يبدو كما يلي )ستتطةر
واحةد فقط نقدسنم إلى عددة أقسام لسكي يتسع في عرض الصفحة(:
إلتتتتى قواعتتتتد بياظنتتتتا ت PostgreSQLأو MySQL؛ يمسكتتتتن تستتتتهيل فهتتتتم ستتتتجل ت الجتتتتدار النتتتتاري
هنالك أدوا ت عديد متوفرة لتساعدك في بناء جدار ظناري كامتتل دون أن تسكتتون لتديك المعرفتتة
برظنامتتج fwbulider1هتتو قتتوي جتتصدا وستتيسكون مألو صفتتا للمتتدراء التتذين تعتتاملوا متتع أدوا ت •
الداة Shorewall2هي أداة قوية ج صدا لتساعدك في ضبط جدار ظناري متقدم لي شبسكة. •
ه .مصادر
صفحة ويسكي أوبنتو » «Ubuntu Firewallالتي تحتوي على معلوما ت عن تطوير .ufw •
أي ص
ضا ،صفحة دليل ufwتحتوي معلوما ت مفيدة جصدا.man ufw : •
صفحة ويسكي أوبنتو » «IPTables HowToهي مصدر رائع للمعلوما ت. •
.4برمجية AppArmor
إن AppArmorهتتو وحتتدة حمايتتة فتتي ليننسكتتس تقديتتد وصتتول البرامتتج المختلفتتة إلتتى قائمتتة
للتطبيقتتتا ت لتحديتتتد أ ديتتتة ملفتتتا ت وأذوظنتتتا ت يتطلبهتتتا التطتتتبيق ،بعتتتض الحتتتزم نتثدبتتتت ملفتتتا ت الضتتتبط
الخاصة بها ،ويمسكن العثور على ملفا ت ضبط إضافية في حزمة .apparmor-profiles
وسنتس نجل تلك التجاوزا ت؛ يفيد هذا النمط في اختبار وتطوير ملفا ت ضبط جديدة.
وتسجيل التجاوزا ت أي ص
ضا.
تنويه :هذا القسم معلول بعدلة ،فللسف لن تعمل الوامر التي فيه كما يجب.
تحتتتوي حزمتتة apparmor-utilsعلتتى أدوا ت ستتطر أوامتتر تمدسكنتتك متتن تغييتتر ظنمتتط تنفيتتذ
،AppArmorأو معرفة حالة ملف ضبط ،أو إظنشاء ملفا ت جديدة ...إلخ.
sudo apparmor_status
أد ش
خل ما يلي لوضع كل الملفا ت في ظنمط البناء:
:؛ لتحميل ملف ضبط-r لعادة تحميل ملف ضبط نمحنمل مسبصقا باستخدام الخيار
sudo ln -s /etc/apparmor.d/profile.name \
/etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/profile.name
▲ | 291
دليل إدارة خواديم أوبنتو 14.04 - الحماية
لعادة تفعيل ملف ضبط معنطل ،احذف الوصلة الرمزية إلى الملف فتتي /etc/apparmor.d
sudo rm /etc/apparmor.d/disable/profile.name
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
ملحظة :اس تبدل profile.nameباستم ملتف الض بط التذي تريتد تعتديله ،أي ص
ضتا اس تبدل /path/to/binبمستار
الملف التنفيذي الحقيقي؛ على سبيل المثال ،للمر pingاستخدم ./bin/ping
ملفتتا ت الضتتبط ) (profilesهتتي ملفتتا ت ظنصتتية بستتيطة موجتتودة فتتي /etc/apparmor.d/؛ هتتذه
الملفتتتا ت مستتتماةة وف صقتتتا للمستتتار السكامتتتل للملتتتف التنفيتتتذي التتتذي تضتتتبطه لسكتتتن متتتع إبتتتدال » «/بنقطتتتة »«.؛
قيتتود المستتار ) :(Path entriesالتتتي تحتتدد الملفتتا ت التتتي يمسكتتن للتطتتبيق الوصتتول إليهتتا •
>#include <tunables/global
{ )/bin/ping flags=(complain
>#include <abstractions/base
>#include <abstractions/consoles
>#include <abstractions/nameservice
capability net_raw,
capability setuid,
network inet raw,
/bin/ping mixr,
/etc/modules.conf r,
}
) :/bin/ping flags=(complainالمستتار إلتتى التطتتبيق صتتاحب ملتتف الضتتبط ،وضتتبط •
ملحظة :يجب إعادة تحميل ملف الضبط بعد تعديله ،راجع القسم »استخدام «AppArmorللتفاصيل.
صتتمم خطتتة اختبتتار :فسكتتر كيتتف يمسكتتن »تمريتتن« التطتتبيق؛ يجتتب أن نتقنستتم خطتتة الختبتتار إلتتى
حال ت اختبار صغيرة ،وكل حالة اختبار لها شرح صغير وقائمة بالخطوا ت التي يجب اتباعها.
توليد ملف الضبط الجديد :استخدم aa-genprofلتوليد ملف ضبط جديد؛ من الطرفية:
لسكتتي نيضتتنمن ملتتف الضتتبط الجديتتد الختتاص بتتك فتتي حزمتتة ،apparmor-profilesفبدلتتغ عتتن
عندما ل يعمل برظنامج ما كما يجب؛ فافحص الرستائل التتي نترنستل إلتى ملفتا ت الس جل؛ يمسكتن
أن نيستتتتخندم البرظنامتتتج aa-logprofلفحتتتص ملفتتتا ت الستتتجل لرستتتائل التتتتدقيق الخاصتتتة ببرظنامتتتج
sudo aa-logprof
ج .مصادر
للتفاصيل حول استتخدام AppArmorمتع إصتتدارا ت أختترى متتن أوبنتتتو ،فراجتتع صتفحة •
مسكتتان رائتتع للستتؤال حتتول المستتاعدة فتتي ،AppArmorوالظنتتدماج متتع مجتمتتع ختتواديم •
.5الشهادات
واحدة من أكثر الشسكال الشائعة للتشفير في وقتنا الراهن هي التشفير وفق المفتتتاح العمتتومي
استخدام شائع للتشفير وفق المفتاح العمومي هو تشفير البياظنا ت المنقولة باستخدام اتصال
(Secure Socket Layer ) SSLأو (Transport Layer Security ) TLS؛ على سبيل المثال،
إن ضتتتبط أباتشتتتي لتتتتوفير - HTTPSبروتوكتتتول HTTPعتتتبر -SSLيستتتمح بتشتتتفير البياظنتتتا ت فتتتي
الشهادة ) (Certificateهي طريقة تستخدم لتوزيع المفتاح العمومي وغيره متتن المعلومتتا ت
عن الخادوم والمنظمة المسؤولة عنه؛ نتونقع الشهادا ت إلسكتروظنصيا بواسطة »سلطة الشتتهادا ت« )،(CA
لضتتتبط ختتتادوم آمتتتن باستتتتخدام تشتتتفير وفتتتق المفتتتتاح العمتتتومي ،عليتتتك إرستتتال -فتتتي أغلتتتب
الحال ت -طلب الشهادة )متضمصنا المفتاح العمتتومي الختتاص بتتك( ودليصل علتتى هويتتة شتتركتك ودفعتتصة
ماليتت صة إلتتى ستتلطة شتتهادا ت؛ ثتتم ستتتتحقق ستتلطة الشتتهادا ت متتن طلتتب الشتتهادة ومتتن هويتتتك ،ثتتم
سنتر شسل الشهادة إلى خادومك المن .بشسكتل بديل ،تستطيع إظنشاء شهادتك الموقعة ذاتصيا.
ملحظة :لحظ أظنه ل يجدر بك استخدام الشهادا ت الموقعة ذاتصيا في أغلبية بيئا ت العمل الظنتاجية.
بإكمتتتال مثتتتال ،HTTPSستتتتوفر شتتتهادة موقعتتتة متتتن ستتتلطة الشتتتهادا ت إمسكتتتاظنينتين مهمتتتتين
المتصفحا ت تتعرف )عتتادصة( تلقائ صيتتا علتتى الشتتهادة وتستتمح بإظنشتتاء اتصتتال آمتتن دون طلتتب •
موافقة المستخدم.
عنتتدما تعطتتي ستتلطة الشتتهادا ت شتتهاد صة موقعتتة ،فإظنهتتا تضتتمن هويتتة المنظمتتة التتتي تتتوفر •
أغلبية متصفحا ت الويب والحواسيب التي تدعم SSLلديها قائمتتة بستتلطا ت الشتتهادا ت التتتي
نتقنبتتل شتتهاداتها تلقائصيتتا؛ إذا واجتته المتصتتفح شتتهاد صة لتتم تسكتتن ستتلطة الشتتهادا ت التتتي أصتتدرتها فتتي
قتتائمته ،فتتإظنه ) أي المتصتتفح( ستتيطلب متتن المستتتخدم قبتتول أو رفتتض التصتتال؛ وقتتد نتودلتتد بعتتض
عملية الحصول على شهادة من سلطة الشهادا ت هي عملية سهلة جصدا ،لمحة سريعة كالتالي:
.2أظن ششئ طلب شهادة بناصء على المفتاح العمومي ،يحتوي طلب الشتتهادة علتتى معلومتتا ت عتتن
.3أرستتل طلتتب الشتتهادة متتع الوثتتائق التتتي تثبتتت هويتتتك إلتتى ستتلطة الشتتهادا ت؛ ل ظنستتتطيع
إخبارك أدية سلطة شهادا ت عليك أن تختارها؛ ربما يسكون قرارك مبنصيا على تجارب ستابقة،
أو على تجارب أحد أصدقائك أو زملئك ،أو على عوامل اقتصادية.
بعتتتد أن تختتتتار ستتتلطة الشتتتهادا ت ،فعليتتتك اتبتتتاع تعليمتتتاتهم التتتتي يوفروظنهتتتا عتتتن كيفيتتتة .4
.6ث دبت هذه الشهادة على خادومك المن ،واضبط البرامج الملئمة لستخدام هذه الشهادة.
إذا كنت ستحصتل علتتى شتتهادة متن ستلطة شتهادا ت أو كنتتت ستنتودقع شتتهادتك ذاتصيتا ،فتتإن أول
إذا كتتتتتتاظنت الشتتتتتتهادة سنتستتتتتتتخ ندم متتتتتتن عفتتتتتتاريت الختتتتتتدما ت ،مثتتتتتتل أباتشتتتتتتي ،أو ،Postfix
مرور تسمح للخدما ت أن تبدأ دون تدخل يدوي ،وهذه هي الطريقة المفضلة لبدء تشغيل عفريت.
سيغطي هذا القسم طريقة توليد مفتاح متع عبتارة متترور ،وواحتتد آختر بتتدون عبتتارة مترور؛ ثتتم
سنستخدم المفتاح بدون عبارة مرور لتوليد شهادة سنتستخندم في مختلف عفاريت الخدما ت.
تحذير :تشغيل خدمة آمنة بدون عبارة مرور هو أمر ملئم لظنك لن تحتاج إلى إدخال عبارة المرور كل مرة تبتتدأ
فيها خدمتك المنة ،لسكن هذا غير آمن وأي كشف عن المفتاح سيؤدي إلى جعل الخادوم عرضصة للهجما ت.
لتوليد »مفاتيح« لطلب توقيع الشهادة ،عليك تنفيذ المر التي من شمنحث الطرفية:
تستتتطيع الن إدختتال عبتتارة متترورك ،لفضتتل قتتدر متتن الحمايتتة ،يجتتب أن تحتتتوي علتتى القتتل
علتتتى ثماظنيتتتة محتتتارف؛ الطتتتول الدظنتتتى عنتتتد تحديتتتد الخيتتتار -des3هتتو أربعتتتة محتتتارف؛ ويجتتتب أن
تحتتتوي علتتى أرقتتام أو علتتى علمتتا ت ترقيتتم ول تحتتتوي علتتى كلمتتة متتن القتتاموس؛ تتتذكر أن عبتتارة
أعد كتابة عبارة المرور للتحقق؛ وبعد إعادة كتابتهتا بشتسكل صتحيح ،فستنيونلد مفتتتاح الختادوم
أظنششئ الن مفتاصحا غير آمن ) insecureأي بدون عبارة مرور( ثم بددل بين أسماء المفاتيح:
أصبح الن استتم ملتتف المفتتتاح غيتتر المتتن هتو ،server.keyوسنستتتخدم هتتذا الملتتف لتوليتتد
س نتستتأل عتتن إدختتال عبتتارة المتترور ،إذا أدخلتتت عبتتارصة صتتحيحصة ،فسنتستتأل عتتن إدختتال استتم
يجتتب الن إرستتال ملتتف طلتتب توقيتتع الشتتهادة إلتتى ستتلطة الشتتهادا ت لمعتتالجته؛ ستستتتخدم
سلطة الشهادا ت ملف طلب توقيع الشتتهادة لصتتدار الشتتهادة؛ وعلتتى السكفتتة الختترى ،تستتتطيع توليتتد
سيستتألك المتتر الستتابق عتتن عبتتارة المتترور ،بعتتد أن تتتدخل عبتتارة المتترور الصتتحيحة ،فسنتننشتتأ
تحذير :إذا اسنتخ شدم خادومك المن في بيئة إظنتاجية ،فربما تحتاج إلى شهادة موقع من سلطة الشتتهادا ت ) ،(CA
ليس من المستحسن استخدام شهادة موقعة ذاتصيا.
اضبط الن ببساطة أ دية تطبيقا ت فيها إمسكاظنية استخدام التشفير وفق المفتاح العمومي لسكي
تستتتتتخدم ملفتتتتا ت الشتتتتهادة والمفتتتتتاح؛ علتتتتى ستتتتبيل المثتتتتال ،يمسكتتتتن أن يتتتتزود أباتشتتتتي ،HTTPS
إذا كتتاظنت تتطلتتب الختتدما ت علتتى شتتبسكتك أكتتثر متتن مجتترد بضتتع شتتهادا ت موقعتتة ذاتصيتتا ،فربمتتا
يسكون من المفيد بذل جهد إضافي وإعداد سلطة شهادا ت داخلية؛ ستسمح الشتتهادا ت الموقعتتة متن
سلطة الشهادا ت الخاصة بك لمختلف الخدما ت باستخدام الشتتهادا ت لسكتتي تثتتق بستتهولة بالختتدما ت
أظنششئ أو صل المجلدا ت التي سنضع فيها شهادة سلطة الشهادا ت والملفا ت المتعلقة بذلك:
تحتاج ستلطة الشتهادا ت إلتتى بضتتعة ملفتتا ت إضتافية لسكتي تعمتتل ،واحتةد لسكتتي يتعقتب آختر رقتم
تسلسلي ناستخ شدم من سلطة الشتتهادا ت ،إذ يجتتب أن تملتك كتتل شتتهادة رقصمتتا تسلستتلصيا فريتتصدا؛ وملتتةف
ن
آخر لتسجيل الشهادا ت التي أصشدنر ت:
الملتتف الثتتالث هتتو ملتتف ضتتبط ستتلطة الشتتهادا ت ،علتتى الرغتتم متتن أظنتته ليتتس مطلوصبتتا ،لسكتتن متتن
المنطقتتتي وجتتتوده عنتتتتد إظنشتتتاء عتتتددة شتتتتهادا ت؛ عتتتتددل ملتتتف /etc/ssl/openssl.cnfوفتتتي قستتتتم
] ،[ CA_defaultغدير ما يلي:
أظنت الن جاه ةز لبدء توقيع الشهادا ت ،أول شتتيء مطلتوب هتو » طلتب توقيتع الشتتهادة« )راجتع
القستتم الستتابق لمزيتتد متتن المعلومتتا ت( ،بعتتد أن تحصتتل علتتى طلتتب توقيتتع الشتتهادة ،فأد ش
ختتل متتا يلتتي
بعد إدخال كلمة المترور لمفتتتاح ستلطة الشتتهادا ت ،فسنتستتأل عتتن توقيتع الشتهادة ،ومترصة أختترى
لصدار الشهادة ،يجب أن ترى كميصة كبيرصة من المخرجا ت المتعلقة بإظنشاء الشهادة.
المخرجتتا ت ،اظنستتخ والصتتق كتتل شتتيء متتن بدايتتة الستتطر -----BEGIN CERTIFICATE -----إلتتى
الستتطر -----END CERTIFICATE----إلتتى ملتتف مستتمى بنفتتس استتم المضتتيف لخادومتتك مسكتتان
في النهاية ،اظنسخ الشهادة الجديدة إلى المضيف الذي يحتاج لهتتا واضتتبط الختتدما ت الملئمتتة
لسكي تستخدمها ،المسكان الفتراضتتي لتثتتبيت الشتتهادا ت هتتو ،/etc/ssl/certsوهتتذا متتا ستنيمدسكن عتتددة
و .مصادر
لتعليما ت تفصيلية عن استخدام التشفير ،راجع صفحة ».«SSL Certificates HOWTO •
ليننسكس؛ وبتشسكيل طبقة فوق طبقة ظنظام الملفا ت ،فإن eCryptfsيحمي الملفا ت بغتتض النظتتر عتتن
هنالك خيار أثناء التثتتبيت لتشتتفير قستتم ،/homeهتتذا سيضتتبط تلقائصيتتا كتتل شتيء يحتتتاج لتته
النظام لتشفير ووصل ذاك القسم .سنشرح هنا طريقة الضبط لتشفير /srvباستخدام .eCryptfs
الن ش
صل القسم الذي تريد تشفيره:
هنالتتك طريقتتتان لوصتتل ظنظتتام ملفتتا ت نمشتتنفر باستتتخدام ecryptfsأثنتتاء القلع؛ سيستتتخدم
هتتذا المثتتال الملتتف /root/.ecryptfsrcالتتذي يحتتتوي علتتى خيتتارا ت الوصتتل ،بالضتتافة إلتتى ملتتف
key=passphrase:passphrase_passwd_file=/mnt/usb/passwd_file.txt
ecryptfs_sig=5826dd62cf81c615
ecryptfs_cipher=aes
ecryptfs_key_bytes=16
ecryptfs_passthrough=n
ecryptfs_enable_filename_crypto=n
]passphrase_passwd=[secrets
ج .أدوا ت
ت أتخرى
ت أخرى مفيدة:
الحزمة ecryptfs-utilsتحتوي على أدوا ت
المعلومتتا ت المشتتفرة؛ يمسكتتن تنفيتتذ هتتذه الداة متتن المستتتخدمين العتتاديين للحفتتاظ علتتى
د .مصادر
المراقبتتة هتتي جتتزء مهتتم متتن إدارة الختتواديم والختتدما ت الساستتية؛ نترانقتتب معظتتم الختتدما ت
سنستتتتخدم فتتتي أمثلتتتة هتتتذا الفصتتتل ختتتادومين بأستتتماء server01و server02؛ سنيضتتتنبط
ظنأمل أن تساعدك هذه المثلة البسيطة في مراقبة الخواديم والخدما ت الضافية في شبسكتك.
.1ناجيوس Nagios
ا .التثبيت
أوصل ،ثبت الحزمة nagiosعلى خادوم ،server01وذلك بإدخال المر التي في الطرفية:
سنيطنلب منك إدخال كلمة مرور لمستخدم ،nagiosadminتصاريح المستخدم مخزظنة فتتي
.apache2-utils
الن على خادوم ،server02ثدبت الحزمة nagios-nrpe-server؛ بتنفيذ المر التي على
:server02
ملحظة :سيستمح NRPEل ك بتنفيتذ فحوصتا ت محليتة علتى الجهتزة البعيتدة ،هنالتك طترق أخترى للقيتام بتذلك
عبر إضافا ت Nagiosأخرى.
هنالك عدة مجلدا ت تحتوي على ضبط Nagiosوملفا ت التحقق ).(check files
والمضيفين ...إلخ.
.server
:/usr/lib/nagios/plugins/المسكان الذي تخنزن فيه ملفتتا ت التحق ق الثنائيتة ،اس تخدم •
مثال:
/usr/lib/nagios/plugins/check_dhcp -h
هنالتتك وفتترة فتتي التحققتتا ت التتتي يمسكتتن ضتتبط Nagiosليجريهتتا علتتى أي مضتتيف؛ سنيضتتنبط
Nagiosفتتتي هتتتذا المثتتتال للتحقتتتق متتتن مستتتاحة القتتترص الصتتتلب المتتتتوفرة و DNSو MySQL؛
ملحظة :راجع »الفصل الحادي عشر :خواديم الويب« لمزيتد من المعلوما ت حول ضتتبط ختتادوم أباتشتتي ،وراجتتع
»الفصل الثامن« لمعلوما ت حول ،DNSوالفصل الثاظني عشر لمعلوما ت حول .MySQL
هنالك بعض المصطلحا ت التي عندما نتشنرح سنتسدهل فهم ضبط :Nagios
المضيف ) :(hostخادوم أو محطة عمل ) ،(workstationأو جهاز شبسكي ...إلخ .الذي نيرانقب. •
مجموعتتة مضتتيفين ) :(host groupمجموعتتة متتن المضتتيفين المتشتتابهين؛ علتتى ستتبيل •
الخدمة ) :(serviceالخدمة التي نترانقب في المضيف ،مثل HTTPأو DNSأو ... NFSإلخ. •
مجموعتتتة الختتدما ت ) :(service groupتستتمح لتتك بجمتتتع عتتتددة ختتدما ت متشتتتابهة متتع •
بعضها بع ص
ضا ،هذا مفيد لتجميع عددة خدما ت HTTPعلى سبيل المثال.
Nagiosأي ص
ضا من البوابة بعمل pingلها.
تثبيتتتا ت Nagiosالضتتخمة قتتد يصتتبح ضتتبطها معقتتصدا جتتصدا ،لتتذلك متتن الفضتتل عتتادصة البتتدء
ج .الضبط
.1أوصل ،أظنشئ ملف ضبط للمضيف للخادوم server02؛ ما لم نيذكر عسكس ذلك ،فعليتتك تنفيتتذ
\ sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg
/etc/nagios3/conf.d/server02.cfg
define host {
use generic-host ; Name of host template to
use
host_name server02
alias Server 02
address 172.18.100.101
}
# check DNS service.
define service {
use generic-service
host_name server02
service_description DNS
check_command check_dns!172.18.100.101
}
:services_nagios.cfg
▲ | 315
14.04 - دليل إدارة خواديم أوبنتو المراقبة
: مضيصفاhostgroups_nagios2.cfg
# MySQL hostgroup.
define hostgroup {
hostgroup_name mysql-servers
alias MySQL servers
members localhost, server02
}
:بإدخال المر
mysql -u root -p \
-e "create user nagios identified by 'secret';"
▲ | 316
14.04 - دليل إدارة خواديم أوبنتو المراقبة
allowed_hosts=172.18.100.100
command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w
20% -c 10% -e
وأي ص
:nagios أعد تشغيلserver01 ضا على الخادوم
▲ | 317
دليل إدارة خواديم أوبنتو 14.04 - المراقبة
يجب أن تسكون قادصرا على رؤية المضتتيف والتحقتق متتن الختدما ت فتتي ملفتتا ت Nagios CGI؛
nagiosadminوكلمة مروره.
د .مصادر
لتتتتم يشتتتترح هتتتتذا القستتتتم إل القليتتتتل متتتتن ميتتتتزا ت Nagios؛ تحتتتتتوي الحزمتتتتتين nagios- •
.2مونين Munin
ا .التثبيت
ب .الضبط
للخادوم :server02
allow ^172\.18\.100\.100$
ملحظة :لما كان هذا التثبيت حدي صثا ،فربما ستحتاج لبعض الوقت لعرض معلوما ت مفيدة.
ت إضتتتافية مثتتتل
تحتتتتوي حزمتتتة munin-plugins-extraعلتتتى تحققتتتا ت متتتن أداء ختتتدما ت
د .مصادر
تحديتتصدا صتتفحة »توثيتتق «Muninالتتتي تحتتتوي علتتى معلومتتا ت عتتن الضتتافا ت الختترى، •
ختتتتادوم التتتتويب هتتتتو برمجيتتتتة مستتتتؤولة عتتتتن قبتتتتول طلبتتتتا ت HTTPمتتتتن العملء المعروفيتتتتن
بمتصفحا ت الويب ،وتخديمهم بردود HTTPمع محتويا ت البياظنا ت الختياريتتة؛ التتتي تسكتتون عتتادصة
ت التتويب عتتادصة
التتويب لتختتديم الصتتفحا ت المطلوبتتة متتن العملء؛ نيطلتتب ونيعتترض العملنء صتتفحا ن
نيتتد ش
خل المستتتخدم ) URLاختصتتار للعبتتارة (Uniform Resource Locatorللشتتارة إلتتى
ختتادوم ويتتب باستتم النطتتاق السكامتتل ) (FQDNوالمستتار إلتتى الهتتدف المطلتتوب؛ علتتى ستتبيل المثتتال،
لعرض الصفحة الرئيسية لموقع أوبنتو ،فسيدخل المستخدم اسم النطاق السكامل فقط:
www.ubuntu.com
www.ubuntu.com/community
أشتتهر بروتوكتول نمستتتخ ندم لنقتتل صتفحا ت التويب هتو بروتوكتتول ظنقتتل النتتص الفتتائق ) Hyper
النتتص الفتتائق فتتوق طبقتتة مقتتابس آمنتتة ) Hyper Text Transfer Protocol over Secure
نيستتتتخندم ختتتادوم ويتتتب أباتشتتتي عتتتادصة متتتع محتتترك قواعتتتد بياظنتتتا ت ،MySQLولغتتتة معالجتتتة
و بيتتتتتترل؛ نيستتتتتتنمى هتتتتتتذا الضتتتتتتبط بالمصتتتتتتطلح Linux, Apache, MySQL and ) LAMP
التثبيت
الضبط
نيضتتتتنبط أباتشتتتتي بوضتتتتع تعليمتتتتا ت ) (directivesفتتتتي ملفتتتتا ت ضتتتتبط ظنصتتتتية بستتتتيطة؛ هتتتتذه
ملتتف :apache2.confملتتف ضتتبط أباتشتتي الرئيستتي؛ يحتتتوي علتتى العتتدادا ت العامتتة •
لباتشي.
الملف :httpd.confتاريخصيا كان ملف ضبط أباتشتي الرئيستتي؛ ونستدمي هتتذا الملتتف باستتم •
المجلتتدا ت تاليتتتة التتذكر؛ يمسكتتن أن نيستتتخ ندم هتتذا الملتتف لعتتدادا ت الضتتبط التتتي يجريهتتا
المجلد :conf-availableيحتوي على ملفا ت الضبط المتوفرة لباتشتي؛ جميتع الملفتا ت •
.available
/conf-available؛ فعنتتتدما نتضتتتاف وصتتتلة رمزيتتتة لملتتتف ضتتتبط ،فتتتإظنه ستتتنيفنعل عنتتتدما نيعتتتاد
(variablesلباتشي.
مجلتتد :mods-availableيحتتتوي هتتذا المجلتتد علتتى ملفتتا ت خاصتتة لتحميتتل الوحتتدا ت •
) (modulesوضبطها ،ل تملك جميع الوحدا ت ملفا ت ضبط خاصة بها.
مجلد :mods-enabledيحتوي على الوصل ت الرمزية إلى الملفا ت فتتي /etc/apache2 •
/mods-available؛ فعنتتدما نتضتتاف وصتتلة رمزيتتة لملتتف ضتتبط ختتاص بوحتتدة ،فتتإن هتتذه
ملتتف :ports.confيحتتتوي علتتى التعليمتتا ت التتتي نتحتتددد منافتتذ TCPالتتتي يستتتمع إليهتتا •
أباتشي.
مجلد :sites-availableيحتوي هذا المجلد على ملفا ت الضبط »للمضتتيفين التتوهميين« •
) (Virtual Hostsفي أباتشي؛ يسمح المضيفون الوهميون بضبط أباتشي لتشغيل عدة
صتل وصتصل رمزصيتتا لهتذا المجلتد س نتفنعل فتي المترة القادمتة التتي
فإن ملفا ت الضبط التي نتو ن
الملف :magicنيستخندم لتحديد ظنوع MIMEبناصء على أول عددة بايتا ت من الملف. •
بالضافة لتذلك ،يمسكتن أن نتضتاف ملفتا ت ضتبط أخترى باستتخدام التعليمتة Include؛ ويمسكتتن
أن نتستخدم المحارف الخاصة ) (wildcardsلتضمين العديد من ملفا ت الضبط؛ أي تعليمتتة يمسكتتن
ي متتن ملفتتا ت الضتتبط تلتتك .ل تؤختذ التعتديل ت علتى ملفتتا ت الضتتبط الرئيستتية بعيتتن
أن توضع فتي أ د
ضتتا ملصفتتا يحتتتوي علتتى أظنتتواع المستتتندا ت ) (mime types؛ نيحتتندد استتم الملتتف
يقتترأ الختتادوم أي ص
العدادات الساسية
يشرح هذا القسم معامل ت ضبط خادوم أباتشي الساسية؛ ارجتتع إلتى توثيتتق أباتشتتي للمزيتتد
من التفاصيل.
يأتي أباتشي مع ضبط افتراضتتي » صتتديق« للمضتيفين التوهميين؛ هتذا يعنتي أظنته مضتبوط متع
أو نيستتتخ ندم كمتتا هتتو لتتو أرد ت الحصتتول علتتى موقتتع وحيتتد فقتتط؛ أو تستتتطيع استتتخدامه كقتتالب
للمضيفين الوهميين الضافيين إذا كنت تريد الحصول على عددة مواقع؛ إذا نتشر ن
ك كما هو ،فسنيخددم
المضيف الوهمي الفتراضتي موقعتتك الفتراضتتي؛ أو الموقتع التتذي ستيراه مستتتخدمو الموقتع لتو أن
يعتتاد تعريفهتتا فتي ضتبط المضتيف التوهمي ،فسنيستتتخ ندم الضتبط الفتراضتي؛ علتتى ستبيل المثتال ،تستتطيع ضتبط
عنوان بريد webmasterول نتعيد تعريفه لسكل مضيف وهمي.
إذا أرد ت ضبط مضيتف وهم ي جديد أو موقع؛ فاظنسخ هذا الملف إلتتى ظنفتتس المجلتتد باستتتم متتن
ت
\ sudo cp /etc/apache2/sites-available/000-default.conf
/etc/apache2/sites-available/mynewsite.conf
ع ددل ملف ضبط الموقع الجديد باستخدام بعض التعليما ت المشروحة في السفل.
webmaster@localhost؛ يجب أن نتعت ندل القيمتة إلتى البريتد اللسكتتروظني الختاص بتك )إذا كنتت
مديصرا للنظام(؛ إذا حدثت مشسكلة مع موقع الويب ،فستتنيظشهر أباتشتي رستتالة خطتتأ تحتتوي علتى هتتذا
البريد اللسكتروظني للتبليغ عن المشسكلة؛ اعثر على هذه التعليمة فتتي ملتتف ضتتبط الموقتتع الختتاص بتتك
في ./etc/apache2/sites-available
التعليمتتة listenتحتتدد المنفتتذ وبشتتسكل اختيتتاري عنتتوان IPالتتذي يجتتب علتتى أباتشتتي الستتتماع
إليه؛ إذا لم نيحندد عنوان ،IPفسيستتتمع أباتشتتي علتتى جميتتع عنتتاوين IPالنمستتنندة للختتادوم التتذي يعمتتل
عليه أباتشي؛ القيمة الفتراضية للتعليمة listenهي 80؛ عددل هذه القيمة إلى 127.0.0.1:80لجعتتل
أباتشي يستمع فقط إلى بطاقة loopbackلذلك لن يسكون متوفصرا إلتى الظنتترظنت ،عتددل القيمتة إلتى 81
) علتتى ستتبيل المثتتال( لتغييتتر المنفتتذ التتذي يستتتمع إليتته أباتشتتي؛ أو اتركتته كمتتا هتتو للعمتتل العتتادي؛ هتتذه
التتتذي سيستتتتجيب أباتشتتتي لتتته؛ المضتتتيف التتتوهمي الفتراضتتتي ل يملتتتك خاصتتتية ServerName
نمحتتت نددة ،لتتتذلك سيستتتتجيب لجميتتتع الطلبتتتا ت التتتتي ل تطابقهتتتا التعليمتتتة ServerNameفتتتي أي
تستضتتيف الموقتتع علتتى خادومتتك ،فتتإن قيمتتة ServerNameفتتي ملتتف ضتتبط المضتتيف التتوهمي
الخاص بك ستسكون ، ubunturocks.comأضف هذه التعليمة إلى ملتف ضتبط المضتيف ال وهمي
ربمتتتا تريتتد متتتن موقعتتتك أن يستتتتجيب إلتتتى ،www.ubunturocks.comولمتتتا كتتان العديتتتد متتن
المستخدمين يعتبرون أدن السابقة wwwهتي ستابقة ملئمتة لمواقتع التويب؛ فعليتك استتخدام التعليم ة
فمث صل ،سيستتتتتبب الضتتتتتبط التتتتتتي استتتتتتجابة موقعتتتتتك لي طلتتتتتب ظنطتتتتتاق ينتهتتتتتي بالعبتتتتتارة »
:«.ubunturocks.com
ServerAlias *.ubunturocks.com
نتحددد التعليمة DocumentRootأين يجب أن يبحث أباتشتتي عتتن الملفتتا ت لظنشتتاء الموقتتع؛
default.conf؛ يمسكنك تستطيع تعتديل هتذه القيمتة فتي ملتف ضتبط مضتيفك التوهمي؛ لسكتن تتذكر
ملحظظة :تأكتد أظنتك ستس تبدل mynewsiteباستم أك ثر وصتصفا للمض يف التوهمي؛ إحتدى الطترق لتستمية الملتف
هي استخدام قيمة ServerNameللمضيف الوهمي.
وبشسكتل مشابه ،استخدم الداة a2dissiteلتعطيتل المواقتع؛ يمسكتن أن يسكتون هتذا مفيتصدا عنتد
العدادات الافتراضية
سيشتترح هتتذا القستتم إعتتدادا ت الضتتبط الفتراضتتية لختتادوم أباتشتتي؛ مثصل ،إذا أضتتفت مضتتيصفا
وهم صيا فالعدادا ت التتي ستضتبطها للمضتتيف التوهمي ستتسكون لهتتا الولويتة لتتذاك المضتتيف التوهمي؛
وسنتستخندم القيمة الفتراضية للتعليما ت غير النمعنرفة ضمن إعدادا ت المضيف الوهمي.
المستخدم فهرس الدليل بإدخال شرطة أمامية ) (/في ظنهاية اسم الدليل.
فأظنه إما سيحصل على صفحة DirectoryIndexإن وجد ت ،أو علتتى قائمتتة بمحتويتتا ت المجلتتد مولتتندصة متتن
الخادوم إذا لم تسكن موجودصة وكان قد نحتتددد الخيتتار ،Indexesأو صتتفحة » «Permission Deniedإن لتتم
يتحقق أيي منهما .سيحاول الخادوم إيجاد أحد الملفا ت المذكورة في التعليمة DirectoryIndexوستتنتعيد
أول ملف ستجده؛ إذا لم تجد أي ملف من تلك الملفتتا ت وكتتان الخيتتار » «Options Indexesمضتتبوصطا لهتتذا
المجلتتتد ،فستتتيودلد الختتتادوم قائمتتتصة بصتتتيغة HTMLللمجلتتتدا ت الفرعيتتتة والملفتتتا ت فتتتي هتتتذا التتتدليل؛ القيمتتتة
"index.cgi index.pl index.php index.xhtml index.htmوبالتالي إذا نعنثر أباتشتتي علتتى ملتتف
في المجلد المطلوب يطابق أحد تلك السماء ،فسنيظشهر أول مطابقة.
التعليمتتة ErrorDocumentتستتمح لتتك بتحديتتد ملتتف لسكتتي يستتتعمله أباتشتتي عنتتد حتتدوث خطتتأ
معين؛ على سبيل المثال ،إذا طلب المستخدم ملصفا غير موجوتد ،فسيحدث خطأ 404؛ وافتراضصيا ،سنيعيد
تستتتتطيع تغييتتتر هتتتذا لسكتتتل موقتتتع بنتتتاصء علتتتى ملفتتتا ت ضتتتبط مضتتتيفك التتتوهمي باستتتتخدام التعليمتتتة
.other-vhosts-access-logربما تحدد أي ص
ضا الملف الذي تريد تسجيل الخطاء إليه باستتتخدام
اترك هذا السجل منفص صل عن سجل النقتتل للمستاعدة فتي استسكشتتاف الخطتاء الحاصتلة متع ختتادوم
نتحندد بعض الخيارا ت على أساس المجلد بدصل من الخادوم؛ التعليمتتة Optionsهتتي إحتتداها،
><Directory /var/www/mynewsite
...
></Directory
التعليمتتتة Optionsضتتمن قستتم Directoryتقبتتل قيمتتة واحتتدة أو أكتتثر متتتن القيتتتم التيتتة
ExecCGIالستتتماح بتنفيتتتذ ستتتسكربتا ت ،CGIلتتتن نتننفتتتذ ستتتسكربتا ت CGIمتتتا لتتتم نيحتتتندد هتتتذا •
الخيار.
تنويه :ل يجب أن نتننفذ أغلبيتة الملفتا ت كستسكربتا ت ،CGIلن ذلتك س يسكون خطتصرا جتصدا! ستسكربتا ت CGIيجتب أن
نتبقى في مجلد منفصل وخارج المجلد الجذر لموقعك ،ويجب أن يسكون الخيار ExecCGIمضتتبوصطا لهتتذا المجلتتد
فقط؛ هذا هو الضبط الفتراضي ،والمسكان الفتراضي لسسكربتا ت CGIهو ./usr/lib/cgi-bin
:Includesالسماح بتضمينا ت من جهة الخادوم؛ حيث تستتمح تضتتمينا ت الختتادوم لملتتف •
المعلوما ت.
:Indexesعتتتتتترض قائمتتتتتتة نمن نستتتتتتقة بمحتويتتتتتتا ت المجلتتتتتتد ،إذا لتتتتتتم نيعتتتتتتثر علتتتتتتى ملتتتتتتف •
تحذير :لغراض تتعلق بالحمايتتة ،ل يجتب أن نيضتتنبط هتتذا الخيتار عتادصة؛ وخصو ص
صتا فتي مجلتد جتذر الموقتع! فدعتتل
هتتذا الخيتتار بحتتذر لسكتتل مجلتتد علتتى حتتدة إن كنتتت متأكتت صدا أظنتتك تريتتد أن يتمسكتتن المستتتخدمون متتن رؤيتتة كامتتل
محتويا ت المجلد.
إعدادات httpd
التعليمة :LockFileتضبط التعليمة LockFileالمسار إلى ملف القفل التذي سيستتخدم •
محلتتي ،ويجتتب أن يتتترك لقيمتتته الفتراضتتية متتا لتتم يسكتتن مجلتتد الستتجل ت موجتتوصدا علتتى
مشاركة ،NFSإذا كتاظنت هتذه هتي الحالتتة ،فيجتتب أن تبتتندل القيمتة إلتتى مستتار فتي القتترص
التعليمتتتة :PidFileالتعليمتتتة PidFileتضتتتبط الملتتتف التتتذي نيستتتدجل فيتتته الختتتادوم رقتتتم •
عمليته ) process IDأو pidاختصتتاصرا(؛ يجتتب أن يسكتتون هتتذا الملتتف قتتابصل للقتتراءة فقتتط
من الجذر ،وفي أغلب الحال ت ،يجب أن تترك هذه التعليمة بقيمتها الفتراضية.
عتتن الطلبيتتا ت؛ هتتذا الخيتتار نيعتت درف حتتدود وصتتول الختتادوم ،لتتن يتمسكتتن زوار الموقتتع متتن
الوصتتول إلتتى أي ملتتف ل يمسكتتن لهتتذا المستتتخدم الوصتتول إليتته ،القيمتتة الفتراضتتية لهتتذه
التعليمة هي "."www-data
تحظظذير :متتا لتتم تسكتتن متأكتتصدا تماصمتتا ممتتا تفعتتل ،فل تضتتبط التعليمتتة Userإلتتى ،rootسيستتبب استتتخدام الجتتذر
كمستخدم هنا في إظنشاء ثغرا ت كبيرة في خادوم الويب.
المجموعتتتة التتتتي ستتتيجيب عبرهتتتا الختتتادوم عتتتن الطلبيتتتا ت؛ المجموعتتتة الفتراضتتتية هتتتي
" "www-dataأي ص
ضا.
وحدات أباتشي
أباتشي هو خادوم يعتمد على الوحدا ت ،هذا يعنتتي أن الوظيفتتة الساستتية فقتتط هتتي مضتتنمنة
فتتي أستتاس الختتادوم؛ الميتتزا ت الضتتافية متتتوفرة عتتبر وحتتدا ت يمسكتتن تحميلهتتا إلتتى أباتشتتي؛ نتضتتنمن
افتراضتت ييا مجموعتتة أساستتية متتن الوحتتدا ت فتتي الختتادوم أثنتتاء البنتتاء ،إذا نبشنتتي الختتادوم ليستتتخدم
الوحتتدا ت النمحنملتتة ديناميسك صيتتا ،فيمسكتتن بنتتاء تلتتك الوحتتدا ت بنتتاصء منفصتتصل ويمسكتتن أن تضتتاف فتتي أي
وقتتت باستتتخدام التعليمتتة LoadModule؛ عتتدا ذلتتك ،فيجتتب إعتتادة بنتتاء أباتشتتي فتتي كتتل متترة
يبنتتتي أوبنتتتتو أباتشتتتي ليستتتمح بالتحميتتتل التتتديناميسكي للوحتتتدا ت؛ يمسكتتتن أن نتضتتتاف تعليمتتتا ت
الضبط شرطييا في حال تطلب وجود وحدة معينة بوضعها في قسم >.<IfModule
تستطيع تثبيت وحدا ت أباتشي إضافية واستخدامها في خادوم التويب؛ علتى س بيل المثتال،
ظن دفذ المر التي من الطرفية لتثبيت وحدة الستيثاق الخاصة بقواعد بياظنا ت :MySQL
ضبط HTTPS
نتضتتتتيف الوحتتتتدة mod_sslميتتتتزصة مهمتتتت صة لختتتتادوم أباتشتتتتي ،أل وهتتتتي القتتتتدرة علتتتتى تشتتتتفير
التصال ت؛ وهذا يعنتي أظنته عنتدما يتواص ل متصتفح ال ويب باستتخدام ،SSLفسنتستتخندم الستابقة
تتوفر الوحدة mod_sslفتي الحزمتتة apache2-common؛ ظندفتذ المتتر التتي متتن الطرفيتتة
الفتراضي سيستخدم شهادة ومفتاح مولد من الحزمة ssl-cert؛ هذه الشهادا ت مناسبة للختبار ،لسكتتن
يجتتتب استتتتبدال الشتتتهادة والمفتتتتاح المولتتتد تلقائ صيتتتا بشتتتهادة خاصتتتة بتتتالموقع أو الختتتادوم ،للمزيتتتد متتتن
المعلوما ت حول توليد مفتاح والحصول على شهادة ،راجع »الفصل التاسع :الحماية«.
أد ش
خل المر التي لضبط أباتشي ليتعامل مع :HTTPS
بعد أن ضبطنا أباتشي ليستخدم ،HTTPSفعلينا إعادة تشغيل الخدمة لتفعيل العدادا ت الجديدة:
ملحظة :اعتما صدا على من أين حصلت على الشهادة ،ربما تحتاج إلى إدخال عبارة مرور عند تشغيل أباتشي.
لسكتتي يتمسكتتن أكتتثر متتن مستتتخدم متتن السكتابتتة إلتتى ظنفتتس المجلتتد ،فمتتن الضتتروري أن ظنعطتتي إذن
السكتابتتتة للمجموعتتتة التتتتي يشتتتتركون بهتتتا؛ المثتتتال التتتتي نيشتتتاشرك إذن السكتابتتتة للمجلتتتد /var/www
للمجموعة »:«webmasters
ملحظة :لو أرد ت أن نيمننح الوصول لكثر من مجموعة واحدة للمجلد ،ففدعل قوائم التحسكم بالوصول ).(ACLs
ا .مصادر
خاص لباتشي.
لستتئلة حتتول أباتشتتي علتتى أوبنتتتو ،فاستتأل فتتي قنتتاة IRCالمستتماة #ubuntu-server •
لمتتا كتتان أباتشتتي نيدنمتتج عتتادصة متتع PHPو ،MySQLفصتتفحة ويسكتتي أوبنتتتو »Apache •
.2لغة PHP5
إن PHPهي لغة برمجة عامة ملئمتة لتطتوير التتويب؛ يمسكتتن تضتمين ستسكربت PHPفتي HTML؛
وهذا القسم سيشرح كيفية تثبيت وضبط PHP5على خادوم أوبنتو مع أباتشي و .MySQL
يفترض هذا القسم أظنتك ثبتتت وضتبطت ختادوم التويب أباتشتي وقواعتد بياظنتا ت MySQL؛ تستتطيع
الرجوع إلى القسام التي تشرح ضبط أباتشي و MySQLفي هذا السكتاب لمزيتد من المعلوما ت.
ا .التثبيت
لغة PHP5متوفرة في أوبنتو ،وعلتى عسكتس بتايثون وبيترل المثبتتتتين فتي النظتام افتراضتييا،
أد ش
خل المر التي في الطرفية لتثبيت :PHP5
تستطيع تشغيل سسكربتا ت PHP5من س طر الوامتر؛ يجتب عليتك تثتبيت الحزمتة php5-cli
لتنفيذ سسكربتا ت PHP5من سطر الوامر؛ وذلك بإدخال المر التي في الطرفية:
تستتتطيع أي ص
ضتا تشتغيل ستتسكربتا ت PHP5دون تثتتبيت وحتتدة PHP5التابعتتة لباتشتتي؛ للقيتتام
بذلك ،عليك تثبيت الحزمة php5-cgi؛ وذلك بإدخال المر التي في الطرفية:
ب .الضبط
بعتتتد أن نتثدبتتتت ،PHP5تستتتتطيع تشتتتغيل ستتتسكربتا ت PHP5متتتن متصتتتفح التتويب ،وإذا ثبتتتتت
خادوم أباتشتتي مضتبوةط افتراضتتصيا لتشتغيل ستتسكربتا ت PHP5؛ بسكلمتتا ت أخترى ،وحتدة PHP5
مفنعلتتة افتراضتت صيا فتتي ختتادوم أباتشتتي بعتتد تثتتبيت الوحتتدة مباشتترصة؛ رجتتاصء تأكتتد إذا كتتاظنت الملفتتا ت
/etc/apache2/mods/enabled/php5.confو /etc/apache2/modsenabled/php5.l
oadموجودصة ،إن لم تسكن موجودصة ،فتستطيع تفعيل الوحدة باستخدام المر .a2enmod
بعتتد أن تثبتتت الحزمتتة المتعلقتتة بلغتتة PHP5ونتف دعتتل وحتتدة أباتشتتي ،فعليتتك أن تعيتتد تشتتغيل
ج .التختبار
<?php
;)(phpinfo
>?
د .مصادر
هنالتتتتك مجموعتتتتة كتتتتبيرة متتتتن السكتتتتتب عتتتتن ،PHPكتابتتتتان جيتتتتدان متتتتن O'Reillyهمتتتتا •
.3خادوم Squidالوتسيط
إن Squidهتتتو ختتتادوم تخزيتتتن وستتتيط للتتتويب ) (web proxy cache serverالتتتذي يتتتوفر
ختتتتدما ت الوستتتتاطة والتخزيتتتتن لتتتتبروتوكول ظنقتتتتل النتتتتص الفتتتتائق ) ،(HTTPوبروتوكتتتتول ظنقتتتتل الملفتتتتا ت
) ،(FTPوغيرهمتتتا متتتن بروتوكتتتول ت الشتتتبسكة الشتتتهيرة؛ يمسكتتتن أن يتتتدعم Squidالتخزيتتتن والوستتتاطة
تخزيتتن مخبتتأ مختلفتتة ،مثتتل بروتوكتتول تخزيتتن الظنتتترظنت ) Internet Cache Protocolاختصتتاصرا
والتوستتع متتن مسكتتتب فرعتتي إلتتى شتتبسكة الشتتركة السكتتبيرة وذلتتك بتتتوفير آليتتا ت مراقبتتة وتحسكتتم فتتي
الوصتتتول للمعتتتامل ت المهمتتتة باستتتتخدام بروتوكتتتول إدارة الشتتتبسكة المبستتتط ) Simple Network
عند اختيار حاسوب ليعمل كخادوم ، Squidفتأكد أظن ه مضتبوط م ع كميتتة كتبيرة متن التذاكرة
ا .التثبيت
أد ش
خل المر التي في الطرفية لتثبيت خادوم :Squid
ب .الضبط
المثلة التية تعترض بعتتض التعليمتا ت التتي يمسكتن تعتديلها لتغييتر ستلوك ختادوم Squid؛ للمزيتد متن
تنويه :قبتل تعتديل ملتف الضتبط ،تأكتد أظنتك سنتنششتئ ظنستخ صة متن الملتف الصتلي وتحميهتا متن السكتابتة كتي تحصتل
على العدادا ت الفتراضية كمرجتع لك ،أو أن تعيد استخدامها وقت الحاجة.
الطرفية:
لضتتتبط ختتتادوم Squidلسكتتتي يستتتتمع إلتتتى منفتتتذ TCPذو الرقتتتم 8888بتتتدصل متتتن منفتتتذ TCP
http_port 8888
عددل التعليمة visible_hostnameلسكي تعطي خادوم Squidاسم مضيف خاص بته؛ هتتذا
visible_hostname weezie
باستتتخدام التحسكتتم فتتي الوصتتول الختتاص بختتادوم ،Squidربمتتا تضتتبط استتتخدام ختتدما ت
الظنتتترظنت التتتي يسكتتون فيهتتا Squidوستيصطا لتتتتوفر للمستتتخدمين التتذي يملسكتتون عنتتاوين IPمعدينتتة؛
باستتتخدام ميتتزا ت التحسكتتم بالوصتتول الممتتتازة التتتي يوفرهتتا Squid؛ فربمتتا تضتتبط استتتخدام
ختتدما ت الظنتتترظنت التتتي يسكتتون فيهتتا Squidوستتي صطا كتتي تتتتوفر فقتتط أثنتتاء ستتاعا ت العمتتل العاديتتة؛
على سبيل المثتال ،س نحاكي وص ول المتوظفين خلل ستاعا ت العمتل متن 9:00AMإلتى 5:00PM
ملحظة :بعد عمل تغيرا ت إلى ملف الضبط ،/etc/squid3/squid.confفاحفظ الملف ثتم أع د تشتغيل ختادوم
Squidلسكي تأخذ التغيرا ت مجراها بإدخال المر التي في الطرفية:
sudo service squid3 restart
ج .مصادر
ا .التثبيت
قبل تثبيت ،Ruby on Railsيجب أن يسكون لديك خادومي أباتشي و MySQL؛ رجاصء نعد
بعد أن نتثنبت حزم أباتشي و MySQL؛ فيجب أن تسكون جاهصزا لتثتتبيت حزمتتة Ruby on Rails؛
ب .الضبط
النطاقا ت.
DocumentRoot /path/to/rails/application/public
<Directory "/path/to/rails/application/public">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
allow from all
AddHandler cgi-script .cgi
</Directory>
.Ruby on Rails هذا كل ما في المر! يجب أن يسكون خادومك جاهصزا الن لتخديم تطبيقا ت
مصادر.ج
▲ | 347
دليل إدارة خواديم أوبنتو 14.04 - خواديم الويب
هي النسخة الحالية التي تضاف إليها الميزا ت الجديدة .نيعنتنبر أن كل الصتتدارين مستتتقر ،لسكتتن هتتذا
السكتاب سيركز على تومسكا ت ، 7لسكن أغلبية تفاصيل الضبط المشروحة هنا صالحة لسكل النسختين.
نتتتتدعم حتتتزم تومسكتتتا ت فتتتي أوبنتتتتو طريقتتتتين مختلفتتتتين لتشتتتغيل تومسكتتتا ت؛ يمسكنتتتك تثتتتبيته
بالطريقة السكلسيسكية لعموم النظام ،مما يجعل تومسكا ت يبدأ في وقت القلع وسيعمل كمستتتخدم
) tomcat7أو (tomcat6بتتتدون امتيتتتازا ت؛ لسكنتتتك تستتتتطيع إظنشتتتاء ظنستتتخ خاصتتتة منتتته وتشتتتغيلها
صتا
بامتيازا ت المستتخدم ،التذي يمسكنتك بتدؤه أو إيقتافه بنفستك؛ الطريقتتة الثاظنيتتة هتي مفيتدة خصو ص
في الخادوم التطويري حيتث يحتتاج عت ددة مستتخدمين إلتى اختبتار البرمجيتا ت فتي ظنستخ تومسكتا ت
الخاصة بهم.
المتتر الستتابق ستتنيث دبت ختتادوم تومسكتتا ت متتع تطتتبيق التتويب الفتراضتتي ROOT؛ التتذي نيظشهتتر
ب .الضبط
AJPعلى المنفذ 8009؛ ربما تريد تغيير هذين المنفذين الفتراضيين لتفادي التضاربا ت مع خواديم
أخرى على النظام ،يمسكن فعل ذلك بتعديل السطر التية في :/etc/tomcat7/server.xml
تبديل JVMاليمستخلدمة
يعمتتل تومسكتتا ت افتراضتتصيا عمصل ممتتتاصزا متتع ،OpenJDKثتتم ستتنيجدرب JVMالخاصتتة بشتتركة
ص
Sun؛ ثتتتم ستتتيجرب JVMsالختتترى؛ إذا كتتتان لتتتديك عتتتددة JVMsمثبتتتتة ،فيمسكنتتتك ضتتتبط أ ي
ي منهتتتا
JAVA_HOME=/usr/lib/jvm/java-6-sun
يمسكتتن أن نتعتتنرف أستتماء المستتتخدمين وكلمتتا ت مرورهتتم وأدوارهتتم )المجموعتتا ت( فتتي حاويتتة
><role rolename="admin"/
><user username="tomcat" password="s3cret" roles="admin"/
يأتي تومسكا ت مع تطبيقا ت ويب يمسكن تثبيتها لغراض التوثيق أو الدارة أو لغراض تجريبية.
توثيق تومكات
تحتوي الحزمتة tomcat7-docsعلتتى توثيتق تومسكتا ت محزيمتا كتطتتبيق ويتتب تستتطيع التدخول
تومسكا ت عبر واجهة ويب ،يمسكنك تثبيتهما عبر إدخال المر التي في الطرفية:
أولهمتتتتتا هتتتتتو تطتتتتتبيق التتتتتويب » «manager؛ التتتتتذي يمسكتتتتتن الوصتتتتتول إليتتتتته افتراضتتتتتصيا عتتتتتبر
ديناميسكييا.
لسباب تتعلق بالحماية ،ل يمسكن للمستخدم tomcat7أن يسكتب إلتتى مجلتتد /etc/tomcat7
افتراضتت صيا؛ بعتتض الميتتزا ت فتتي تطبيقتتا ت التتويب هتتذه )ظنشتتر التطبيقتتا ت ،أو إظنشتتاء مضتتيف وهمتتي(
تحتتتاج إلتتى إذن السكتابتتة إلتتى ذاك المجلتتد؛ إذا أرد ت استتتخدام هتتذه الميتتزا ت ،فعليتتك تنفيتتذ الوامتتر
تثبيتهما بالمر:
نيستخدم تومسكا ت اس تخداصما واست صعا فتي التطتوير وحتال ت الختبتار حيتث ل يسكتون استتخدام
ظنستتخة واحتتدة لعمتتوم النظتتام كاف صيتتا لعتتدة مستتتخدمين علتتى ظنظتتام واحتتد؛ تتتأتي حتتزم تومسكتتا ت فتتي
أوبنتو مع الدوا ت اللزمة لظنشاء ظنسخ موجهة للمستخدمين ،مما يسمح لسكل مستخدم في النظام
بتشتتتغيل ) دون امتيتتتازا ت الجتتتذر( ظنستتتخة خاصتتتة منفصتتتلة بينمتتتا متتتا تتتتزال تستتتتخدم تلتتتك النستتتخة
ملحظة :من الممسكن تشغيل ظنسخة لعموم النظتام ،وظنستخ خاصتة علتتى التتوازي )أي مصعتا(؛ شتريطة أدل يستتخدموا
ظنفس منافذ .TCP
يمسكنك تثبيت كل ما يلزم لدعم النسخ الخاصة بتنفيذ المر التي في الطرفية:
tomcat7-instance-create my-instance
سنينششتئ المتتر الستابق مجلتتد my-instanceجديتد متع كتتل المجلتتدا ت الفرعيتة والستسكربتا ت
اللزمة؛ يمسكنك على سبيل المثال تثبيت المسكتبا ت الشائعة في المجلد الفرعي lib/ووضتتع تطتتبيق
ستجد ملفا ت ضبط تومسكا ت التقليدية في النسخة الخاصة في المجلد الفرعي conf/؛ يجب
عليك ،على ستبيل المثتتال ،تعتتديل ملتتف conf/server.xmlلتغييتر المنفتتذ الفتراضتتي النمستتخندم
من ظنسخة تومسكا ت الخاصة لتفادي التضارب مع النسخ الخرى التي قد تسكون تعمل على النظام.
يمسكنك بدء ظنسختك الخاصة بإدختتال المتر التتتي فتي الطرفيتة )بفترض أن ظنستختك موجتودةة
my-instance/bin/startup.sh
ملحظظظظظظظظظظظظة :عليتتتتتتتتتتتك التحقتتتتتتتتتتتق متتتتتتتتتتتن المجلتتتتتتتتتتتد الفرعتتتتتتتتتتتي /logsلي خطتتتتتتتتتتتأ؛ إذا حصتتتتتتتتتتتلت علتتتتتتتتتتتى خطتتتتتتتتتتتأ
java.net.BindException: Address already in use<null>:8080فاعلم أن المنفذ نمستخندم متن قبتل
وعليك تغييره.
my-instance/bin/shutdown.sh
ه .مصادر
كتاب » «Tomcat: The Definitive Guideمصدر جيد لبناء تطبيقا ت الويب مع تومسكا ت. •
حيث تتتوفران فتي المستتودع الرئيستي )(main؛ ويشترح هتذا الفصتل كيفيتة تثتبيت وض بط
ي الذكر. ن
خادونمي قواعد البياظنا ت آظنف د
.1خادوم MySQL
إن MySQLهو خادوم قواعد بياظنا ت سريع ومتعدد الخيوط ) (multi-threadedومتعتدد
أي ص
ضا تضمينه في البرمجيا ت سريعة النشر ).(mass-deployed
ا .التثبيت
سنيطلب منك إدخال كلمة مرور للمستخدم الجذر لخادوم MySQLأثناء التثبيت.
بعد أن ينتهي التثبيت ،فيجتب أن يبتدأ ختادوم MySQLتلقائصيتا؛ تستتطيع تنفيتذ المتر التتي
يجب أن تشاهد شيصئا شبيصها بما يلي بعد تنفيذ المر السابق:
ب .الضبط
السجل ،ورقم المنفذ … إلتتخ .فمثصل لضتتبط MySQLليستتتمع إلتتى التصتتال ت متتن مضتتيفي الشتتبسكة،
بعتتتد إجتتتراء التعتتتديل ت علتتتى ملتتتف /etc/mysql/my.cnf؛ فيجتتتب إعتتتادة تشتتتغيل عفريتتتت
:MySQL
أدختتتل المتتتر التتتتي فتتتي الطرفيتتتة إذا رغبتتتت بتغييتتتر كلمتتتة متتترور المستتتتخدم الجتتتذر ) (root
في :MySQL
على الرغتتم متن أن الضتتبط الفتراضتتي لختادوم MySQLالمتوفر متتن حتزم أوبنتتو يعمتتل عمصل
صحي صحا دون مشاكل ،لسكن هنالك بعض المور التي عليك أخذها بعين العتبار قبل الكمال.
صدمنمت قواعد بياظنا ت MySQLللستماح بتخزيتن البياظنتا ت بطترتق مختلفتة؛ نيشتتار لهتذه الطترق
ن
إما بمحركا ت قواعد البياظنا ت أو محركا ت التخزين ) (Storage engine؛ هنالك محركان رئيسيان
ستتتتسكون مهتصمتتتا بهمتتتا InnoDB :و MyISAM؛ ل تتغيتتتر طريقتتتة التعامتتتل متتتع محركتتتا ت التخزيتتتن
المختلفتتة بالنستتبة للمستتتخدم النهتتائي؛ حيتتث تتعامتتل MySQLمتتع المتتور بطريقتتة مختلفتتة وراء
الستار ،أي أظنه بغض النظر عن محرك التخزين الذي تستخدمه ،فإظنك ستتعامل متتع قواعتتد البياظنتتا ت
لسكتل محترك إيجابيتتاته وستلبياته؛ وبينمتا متن الممسكتن دمتج عتددة محركتتا ت قواعتد بياظنتتا ت علتى
مستتتوى الجتتدول ،لسكتتن ذلتتك خطيتتةر ،فربمتتا يقلتتل ذلتتك متتن الفعاليتتة والداء لظنتتك نتقدستتم المتتوارد بيتتن
المحتتتترك MyISAMهتتتتو القتتتتدم بيتتتتن المحركيتتتتن المتتتتذكورين؛ يمسكتتتتن أن يسكتتتتون أستتتترع متتتتن
InnoDBفي حال ت مع دينة ويفضل العمال التتتي تتطلتتب القتتراءة فقتتط؛ تتمحتتور بعتتض تطبيقتتا ت
التويب حتول ) MyISAMعلتتى الرغتتم أظنهتتا لتن نتبنطتئ إذا استتتخدمت (InnoDB؛ يتدعم MyISAM
لسكن MyISAMقادر على قفل الجدول بأكمله فقط عند السكتابة ،هذا يعنتتي أن عمليتتصة واحتتدصة فقتتط
تستطيع تحديث الجدول في لحظة زمنية معيدنة؛ قد يسكون هذا إعاقتتصة لتوستتع تطتتبيق يعتمتتد علتتى
هتتتذا الجتتتدول؛ ول يحتتتتوي MyISAMعلتتتى ميتتتزة » ،«journalingوهتتتذا يعنتتتي أظنتتته متتتن الصتتتعب
استرجاع البياظنتتا ت بعتد حتتدوث اظنهيتتار؛ المقتال التتتي يتوفر بعتض النقتاط لعتبارهتتا حتول استتخدام
المحتترك InnoDBهتتو محتترك قواعتتد بياظنتتا ت أكتتثر حداثتتصة ،نصتتدمم ليسكتتون متوافصقتتا متتع ACID
الذي يضمن إجراء العمليا ت على قواعد البياظنا ت بطريقة عملية؛ قفل السكتابة يحتتدث علتتى مستتتوى
السجل ) (rowضمن الجدول؛ هذا يعني أظنه من الممسكن إجراء عتددة تحتديثا ت لس جل ت جتدوتل متا
في ظنفس الوقت؛ التخزين الموقت للبياظنتتا ت يحتدث فتي التذاكرة ضتمن محترك قواعتد البياظنتا ت ،ممتا
يسمح بالتخزين على أساس السجل وليس على أستتاس كتلتتة الملتتف ) (file block؛ ولسكتتي يتوافتتق
إن InnoDBهو المحرك الفتراضتتي فتتي MySQL 5.5ومتتن المستحستتن بشتتدة استتتخدامه
هنالك عدد من المعامل ت التي يمسكن تعديلها فتتي ملتتف ضتبط MySQLممتتا يستتمح لتتك بتحستتين
أداء الختتادوم متتع متترور التتوقت؛ ربمتتا تجتتد الداة » «Percona's my.cnf generating toolمفيتتدصة
للعداد البتدائي؛ ستولد هذه الداة ملف my.cnfليسكون أكثر ملئمصة لمسكاظنيا ت ومتطلبا ت خادومك.
ل تستبدل ملف my.cnfالمولد من Perconaإذا وضعت بياظنتتا ت فتتي قاعتتدة بياظنتتا ت ،بعتتض
التغييرا ت في الملف لن تسبب مشاكل لظنها نتع ددل طريقة تخزين البياظنا ت على القرص الصلب ولتتن
تتمسكن من تشغيل MySQL؛ إذا أرد ت استخدامه وكاظنت لديك بياظنا ت موجتتودة مستتبصقا ،فعليتتك أن
سنتسأل عتن كلمتة مترور المستتخدم الجتذر لقواعتد MySQLقب ل إظنشتاء ظنس خة متن البياظنتتا ت؛
من المستحسن أن تتأكد أظنه ل يوجد مستخدمين أو عمليا ت تستخدم قاعدة البياظنتتا ت قبتتل إجتتراء
هذه الخطوة؛ ربما تأخذ عملية النسخ بعض الوقت بناصء على مقتدار البياظنتتا ت الموج ودة ف ي قاعتدة
البياظنا ت لديك؛ لن ترى شيصئا على الشاشة أثناء تنفيذ المر السابق.
الن احذف وأعد تهيئة مجال قواعد البياظنا ت وتأكد أن الملسكيتتة صتحيحة قبتتل إعتادة تشتتغيل
:MySQL
كتتل متتا تبقتتى الن هتتو إعتتادة استتتيراد بياظناتتتك؛ وللحصتتول علتتى فسكتترة عتتن متتدى إتمتتام عمليتتة
الستيراد ،فربما تجد الداة (Pipe Viewer) pvمفيدصة؛ المر التي يظهر كيفية تثبيت واستخدام
pvلهذه الحالة ،ربما ل تريد أن تستخدمها وكل متتا عليتتك فعلته هتو استتبدال pvبتتالمر cat؛ تجاهتل
أية أوقا ت متوقعة للظنتهاء ) (ETAمولدة من pv؛ لظنها مبنية على الوقت المستتتغرق لسكتتي نيعانلتتج كتتل
سجل من الملف ،لسكن سرعة إدراج البياظنا ت قد تختلف اختلصفا كبيصرا من سجل إلى سجل:
ملحظظظة :هتتذا ليتتس ضتترورصيا لسكتتل تعتتديل ت my.cnf؛ أغلبيتتة المتغيتترا ت التتتي قتتد ترغتتب فتتي تعتتديلها لتحستتين
الداء يمسكن أن نتغ نير حتى وإن كان يعمل الخادوم؛ تأكد متن الحصتتول علتى ظنستخة احتياطيتتة متن ملفتا ت الضتتبط
والبياظنا ت قبل إجراء التعديل ت.
الداة » «MySQL Tunerهتتتي أداة مفيتتتدة تستتتتطيع التصتتتال إلتتتى خدمتتتة MySQLالتتتتي
ت
تعمل وتوفر اقتراحا ت عتتن كيفيتتة ضتبطها بأفضتتل ضتتبط لحالتتتك؛ وكمتتا كتتان يعمتتل الختتادوم لتتوق ت
أطتتول ،كلمتتا كتتاظنت »النصتتيحة« التتتي ستتيوفرها mysqltunerأفضتتل؛ ختتذ بعيتتن العتبتتار الظنتظتتار
لمتتدة 24ستتاعة فتتي بيئتتة إظنتاجيتتة قبتتل تشتتغيل هتتذه الداة؛ تستتتطيع تثتتبيت mysqltunerمتتن
مستودعا ت أوبنتو:
mysqltuner
ت لسكتتي تعتتدلها فتتي ملتتف my.cnf؛ يمسكتتن تعتتديل أغلبيتتة القتراحتتا ت علتتى
القستتم الستتفلي اقتراحتتا ت
الختتتادوم مباشتتتر صة دون إعتتتادة تشتتتغيله ،اظنظتتتر إلتتتى توثيتتتق MySQLالرستتتمي للمتغيتتترا ت المناستتتبة
لتعديلها في البيئا ت الظنتاجية .ما يلي هو جزء من تقرير من قاعدة بياظنتتا ت إظنتاجيتتة التتذي نيظشهتتر أن
Variables to adjust:
)key_buffer_size (> 1.4G
)query_cache_size (> 32M
)table_cache (> 64
)innodb_buffer_pool_size (>= 22G
تعليتتق أخيتتر عتتن ضتتبط قواعتتد البياظنتتا ت :بينمتتا ظنستتتطيع أن ظنقتتول أن بعتتض العتتدادا ت هتتي
الفضتتتل ،لسكتتتن قتتتد يختلتتتف الداء متتتن تطتتتبيق لختتتر؛ علتتتى ستتتبيل المثتتتال ،متتتا يعمتتتل عمصل ممتتتتاصزا
أو التطبيقتتا ت التجاريتتة؛ الداء متعلتت ةق بتتأظنواع الطلبيتتا ت واستتتخدام الفهتتارس ،وإذا متتا كتتان تصتتميم
قاعدة البياظنا ت جي صدا ،وهسكذا ...ربما من الجيد إظنفاق بعض الوقت فتتي البحتتث عتتن إعتتدادا ت ملئمتتة
لقواعد البياظنا ت بناصء على التطبيقا ت التتتي تستتخدمها؛ لسكتتن بعتتد أن تتجتتاوز التعتتديل ت حتصدا معديصنتتا،
فإن أديتتة تغييتترا ت تجريهتتا ل تتستبب إل بتحستين بستتيط جتتصدا فتتي أداء التطتتبيق ،ومتن الفضتل لتك
تحستتتين التطتتتبيق ظنفستتته ،أو التفسكيتتتر فتتتي توستتتيع ختتتادوم MySQLإمتتتا باستتتتخدام عتتتتاد أفضتتتل
ه .مصادر
التوثيق السكامل متوفر بصيغ onlineو offlineمن ».«MySQL Developers portal •
لمعلوما ت عامة حول ،SQLاظنظر إلى كتاب ».«Using SQL Special Edition •
صفحة ويسكي أوبنتو » «Apache MySQL PHPفيها بعض المعلوما ت المفيدة. •
.2خادوم PostgreSQL
PostgreSQLهي قاعدة بياظنا ت علئقية تعتمد على السكائنتتا ت وتملتتك ميتتزا ت أظنظمتتة قواعتتد
ا .التثبيت
بعد اظنتهاء التثبيت ،عليك ضبط خادوم PostgreSQLبناصء على متطلباتتتك ،علتتى الرغتتم متتن
ب .الضبط
نيضتتتنبط غيتتتر ذلتتتك؛ رجتتتاصء راجتتتع » «PostgreSQL Administrator's Guideإذا أرد ت ضتتتبط
على سبيل المثال ،إذا ثبتتت ختتادوم ،PostgreSQL 9.1فتإن ملفتا ت الضتبط ستنتخنزن فتي المجلتد
./etc/postgresql/9.1/main
'*' = listen_addresses
ربما تريد تعديل بقية المعامل ت ،إذا كنت تعرف ماذا تفعل للتفاصيل ،ارجع إلى ملف الضتتبط
الن وبعد أن استطعنا التصال بختادوم PostgreSQLفتإن الخط وة التيتة هتي ضتبط كلمتة
مرور للمستخدم postgres؛ ظنفذ المر التي في الطرفيتة للتصتال بقاعتدة بياظنتا ت PostgreSQL
الفتراضية:
postgres؛ بعد أن تتصل إلى خادوم PostgreSQLوتحصل على شمنحث لدخال تعليما ت .SQL
يمسكنك إدخال أمر SQLالتي في شمنحث psqlلضبط كلمة المرور للمستخدم :postgres
فتتتي النهايتتتة ،يجتتتب أن نتعيتتتد تشتتتغيل خدمتتتة PostgreSQLلتهيئتتتة الضتتتبط الجديتتتد ،وذلتتتك
تحظظذير :الضتتبط الستتابق ليتتس كتتامصل بتتأي شتتسكل متتن الشتتسكال ،رجتتاصء راجتتع » PostgreSQL Administrator's
«Guideلمعامل ت ضبط إضافية.
ج .مصادر
كما نذشكر سابصقا ،فإن » «PostgreSQL Administrator's Guideهو مصدر رائع ،وهتتو •
متوفر أي ص
ضا في حزمة postgresql-doc-9.1؛ ظنفذ ما يلي لتثبيت تلك الحزمة:
أد ش
ختتتل الوصتتتلة file:///usr/share/doc/postgresql-doc-9.1/html/index.html
راجع أي ص
ضا صفحة ويسكي أوبنتو » «PostgreSQLلمزيتد من المعلوما ت. •
إعداد شائع لخواديم أوبنتو؛ هنالك تشسكيلة واسعة ج صدا من البرمجيا ت مفتوحتتة المصتتدر المسكتوبتتة
لتجميعتتة برامتتج LAMP؛ أشتتهر تلتتك البرمجيتتا ت هتتي تطبيقتتا ت التتويسكي ،وأظنظمتتة إدارة المحتتتوى،
ميزة من مزايتا LAMPهتي المروظنتة غيتر العاديتة لستتخدام قواعتد بياظنتتا ت أو خ واديم ويتب
أو لغتتتتا ت برمجيتتتتة مختلفتتتتة بتتتتدائل شتتتتائعة لقواعتتتتد MySQLتتضتتتتمن PostgreSQLو SQLite؛
أستترع طريقتتة للبتتدء فتتي تثتتبيت LAMPهتتي استتتخدام tasksel؛ الداة taskselهتتي أداة
خاصة بدبيان/أوبنتو التي نتث دبت حزصما مترابطة للقيام »بمهمة« في ظنظامتتك؛ أد ش
ختتل المتتر التتتي فتتي
بعد إتمام عملية التثبيت ،ستسكون قادصرا على تثبيت أغلبية تطبيقا ت LAMPبهذه الطريقة:
استخراج الملفا ت من الرشيف إلى مجلد يمسكن لخادوم الويب الوصول إليه. •
اعتمتتتا صدا علتتتى المسكتتتان التتتذي استتتتخرجت الملفتتتا ت إليتتته ،فاضتتتبط ختتتادوم التتتويب لنيختتتددم •
الصفحا ت من هناك.
شدغل سسكربصتا ،أو افتح صفح صة متتن التطتتبيق لتثتتبيت قاعتتدة البياظنتتا ت التتي يحتتتاج لهتتا هتتذا •
التطبيق.
باستعماله.
عيب من عي وب هتذه الطريقتتة هتي أن ملفتا ت التطتبيق ل توض ع فتي مسكتان قياستي فتي ظنظتتام
الملفا ت ،المر التذي قتتد يستبب فوضتتى؛ عيتتب آختتر كتبير هتو تحتتديث التطتتبيق ،فعنتد إصتدار ظنستخة
لحسن الحظ ،هنالك عدد من تطبيقا ت LAMPنمحنزمة في أوبنتو ،ومتوفرة للتثبيت كغيرها
من التطبيقتتا ت؛ لسكتن حستتب التطتتبيق ،فربمتتا هنالتك خطتوا ت أختترى للضتتبط والعتداد؛ سيشتترح هتتذا
ا .التثبيت
يجتتب أن تسكتتون قتتد ثبتتتت ختتادوم أباتشتتي؛ رجتتاصء راجتتع » الفصتتل الحتتادي عشتتر« لمزيتتتد متتن
ب .الضبط
لضتتبط أول تطتتبيق ويسكتتي ختتاص بتتك ،فعليتتك تنفيتتذ سلستتلة الوامتتر التيتتة؛ علتتى فتترض أظنتتك
cd /usr/share/moin
sudo mkdir mywiki
sudo cp -R data mywiki
sudo cp -R underlay mywiki
sudo cp server/moin.cgi mywiki
sudo chown -R www-data.www-data mywiki
sudo chmod -R ug+rwX mywiki
sudo chmod -R o-rwx mywiki
'data_dir = '/org/mywiki/data
إلى:
'data_dir = '/usr/share/moin/mywiki/data
أي ص
ضا ،تحت الخيار ،data_dirأضف الخيار :data_underlay_dir
'data_underlay_dir='/usr/share/moin/mywiki/underlay
ملحظة :إذا سميت الويسكي باسم ،my_wiki_nameفيجب إضافة الستتطر )"* ("my_wiki_name",r".إلتتى
ملف /etc/moin/farmconfig.pyبعد السطر )"*.("mywiki", r".
بعتتد أن تضتتبط MoinMoinليعتتثر علتتى أول تطتتبيق ويسكتتي mywikiعليتتك ضتتبط أباتشتتي
ضمن الوسم
<VirtualHost *>:
### moin
"ScriptAlias /mywiki "/usr/share/moin/mywiki/moin.cgi
"alias /moin_static193 "/usr/share/moin/htdocs
><Directory /usr/share/moin/htdocs
Order allow,deny
allow from all
></Directory
### end moin
بعد أن تضبط خادوم أباتشي وتجعله جاه صزا لتطتبيق التويسكي ،يجتب عليتك أن تعيتتد تشتتغيله،
ج .التجربة
http://localhost/mywiki
د .مصادر
أي ص
ضا ،صفحة ويسكي أوبنتو ».«MoinMoin •
.2تطبيق MediaWiki
إن MediaWikiهتتتي برمجيتتتة Wikiمبنيتتتة علتتتى التتتويب مسكتوبتتتة بلغتتتة PHP؛ يمسكنهتتتا أن
ا .التثبيت
قبتتل تثتتبيت ،MediaWikiيجتتب عليتتك تثتتبيت أباتشتتي ولغتتة برمجتتة PHP5وظنظتتام إدارة
قواعتتد بياظنتتا ت؛ وأشتتهرها MySQLأو ،PostgreSQLاختتتر واحتتصدا بنتتاصء علتتى احتياجاتتتك ،رجتتاصء
ارجع إلى القسام التي تشرح تثبيتها في هذا السكتاب للمزيد من المعلوما ت.
ب .الضبط
يجب عليك إزالة التعليق من السطر التي للوصول إلى تطبيق :MediaWiki
بعد أن نتزيل التعليق من السطر الستتابق ،فف دعتتل الضتتبط ثتتم أعتتد تشتتغيل ختتادوم أباتشتتي ثتتم ادختتل
تنظظويه :رجتتاصء اقترأ القستتم » «Checking environment...فتتي تلتتك الصتتفحة؛ ستتتسكون قتادصرا علتتى حتتل مشتتاكل
عديدة بقراءة هذا القسم بحذر.
:/etc/mediawiki
\ sudo mv /var/lib/mediawiki/config/LocalSettings.php
/etc/mediawiki/
ربما تريتتد أي ص
ضتتا تعتديل /etc/mediawiki/LocalSettings.phpلسكتي تضتبط حتتد التتذاكرة
ج .الضاافات
تودفر الضافا ت ميزا ت وتحسينا ت على تطتتبيق MediaWiki؛ تمنتتح هتتذه الضتتافا ت متتدراء
أي ص
ضا إضافة السطر التي في ظنهاية الملف :/etc/mediawiki/LocalSettings.php
;"require_once "$IP/extensions/ExtentionName/ExtentionName.php
د .مصادر
.3تطبيق phpMyAdmin
صتتا لدارة ختتواديم ،MySQLوهتتو
إن phpMyAdminهتتو تطتتبيق LAMPمسكتتتوب خصي ص
مبرمج بلغة ،PHPويمسكن الوصول إليه عبر متصفح الويب ،حيث يودفر phpMyAdminواجهة
ا .التثبيت
قبل تثبيت phpMyAdminفستحتاج إلى وصول إلى قاعدة بياظنا ت MySQLسواصء على
ظنفتتس المضتتيف التتذي ستتنيثنبت عليتته phpMyAdminأو علتتى مضتتيف آختتر متتتوفر عتتبر الشتتبسكة؛
للمزيد من المعلومتا ت حتول MySQLفتاظنظر إلتتى القستتم الختتاص بهتتا فتي هتذا السكتتتاب؛ أد ش
ختتل المتتر
الختتادوم الحقيقتتي؛ وعنتتد صتتفحة تستتجيل التتدخول ،اكتتتب rootفتتي حقتتل استتم المستتتخدم ،أو أي
مستخدم MySQLإذا كنت قد أعدد ت واحصدا؛ ثم أدخل كلمة مرور ذاك المستخدم.
بعد تسجيل الدخول ،تستطيع إعتتادة ضتبط كلمتة متترور الجتتذر إن كتان ذلتك ضترورصيا ،وإظنشتاء
ب .الضبط
لستخدام phpMyAdminلدارة قواعد بياظنا ت MySQLعلى خادوم آخر ،عتتددل قيمتتة متتا
;'$cfg['Servers'][$i]['host'] = 'db_server
بعتتتد ضتتتبطه ،ستتتجل خروجتتتك متتتن phpMyAdminثتتتم أعتتتد تستتتجيل التتتدخول ،ويجتتتب أن
phpMyAdmin؛ يحتوي هذا الملف على تعليما ت لتحميل ،PHPوأذوظنا ت المجلد ...إلخ.
ج .مصادر
يتتتتأتي توثيتتتتق phpMyAdminمثب صتتتتا متتتتع الحزمتتتتة ويمسكتتتتن الوصتتتول إليتتته متتتتن وصتتتلة •
Wordpress تطبيق.4
وظنظتتام إدارة محتتتوى مسكتوبتتة، ومنصتتة ظنشتتر،( هتتي أداة تتتدوينWordpress) إن وردبريتتس
التثبيت.ا
الضبط.ب
/etc/apache2/sites- فعليك ضبط موقع أباتشي؛ افتح الملف،لضبط أول تطبيق وردبريس
▲ | 380
دليل إدارة خواديم أوبنتو 14.04 - تطبيقا ت LAMP
بعتتد أن اظنتهيتتت متتن ضتتبط ختتادوم أباتشتتي ،وجعلتتته جتتاهصزا لتطتتبيق وردبريتتس ،فعليتتك الن
لتبسيط تشغيل عددة ظنسخ متن وردبريتس ،فست دم ملتف الضتبط بنتتاصء علتى استم المضتيف؛ وهتذا
يعنتي أظنتك تستتطيع أن تملتك عت ددة مضتيفين وهمييتن بمطابقتتة استم المضتيف ف ي ملتف الضتبط متع
ملتتتتف استتتتم المضتتتتيف التتتتوهمي فتتتتي أباتشتتتتي؛ فعلتتتتى ستتتتبيل المثتتتتال ،تسكتتتتون أستتتتماء الملفتتتتا ت هتتتتي
… /etc/wordpress/config-hostalias1.phpإلخ.
هتتتذه التعليمتتتا ت تفتتتترض أظنتتتك تستتتتطيع الوصتتتول إلتتتى أباتشتتتي عتتتبر المضتتتيف المحلتتتي )ربمتتتا
باستتتتتتخدام ظنفتتتتتق (SSH؛ إذا لتتتتتم يسكتتتتتن ذلتتتتتك هتتتتتو المتتتتتر ،فاستتتتتتبدل /etc/wordpress/config-
localhost.phpبالسم ./etc/wordpress/config/NAME_OF_VIRTUAL_HOST.php
بعتتتد أن نيسك نتتتتب ملتتتف الضتتتبط ،فعليتتتك اختيتتتار ظنمتتتط لستتتماء مستتتتخدمي MySQLوكلمتتتا ت
مرورهم لسكل ظنسخة وردبريس؛ لسكن سنعرض في هذا السكتاب مثال واحد هو localhostفقط.
/etc/wordpress ؛ افتح الملتتفMySQL علينا الن ضبط وردبريس لستخدام قاعدة بياظنا ت
<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'yourpasswordhere');
define('DB_HOST', 'localhost');
define('WP_CONTENT_DIR', '/usr/share/wordpress/wp-content');
?>
فيتتته أوامتتترwordpree.sql وذلتتتك بفتتتتح ملتتتف متتتؤقت باستتتم،ثتتتم أظن ششتتتئ قاعتتتدة البياظنتتتا ت
: التيةMySQL
▲ | 382
دليل إدارة خواديم أوبنتو 14.04 - تطبيقا ت LAMP
لحظ كلمة المرور النمونلدة إن لم تختر واحدصة ،ثم سدجل دخولك إلى لوحة تحسكم وبرديس.
ج .مصادر
إذا كتتان لتتديك أكتتثر متتن حاستتوب فتتي ظنفتتس الشتتبسكة ،فعنتتد حتت ي
د معنيتتن ستتتحتاج إلتتى مشتتاركة
الملفا ت بين تلك الحواسيب؛ ظنشرح في هذا الفصل تثبيت وضبط ،FTPو ،NFSو .CUPS
.1خادوم FTP
بروتوكتتول ظنقتتل الملفتتا ت ) File Transfer Protocolاختصتتاصرا (FTPهتتو بروتوكتتول TCP
ل توفر إمسكاظنية التشفير ،وسنتن نقل معلومتا ت المستتخدم متع البياظنتتا ت فتي صتيغة ستهلة التفستير؛ إذا
الفصل السادس.
يعمل FTPوفق ظنمط »عميل/ختادوم«؛ حيتث نتستمى مسكوظنتة FTPفتتي الختتادوم »عفريتتت ،«FTP
التتذي يستتتمع بشتتسكل متواصتتل لطلبتتا ت FTPمتتن العملء البعيتتدين؛ وعنتتد وصتتول طلتتب ،فتتإظنه يجتتري
يء التصال ،وسنتننفذ الوامر النمرنسلة من عميل FTPأثناء مدة عمل الجلسة.
عملية الدخول ونيه د
في ظنمط المستخدم المجهول )(Anonymous؛ يمسكن للعملء البعيدين الوصول إلى ختتادوم
إلسكتتروظني كسكلمتة مترور؛ أمتا فتي ظنمتط المستتخدم الموث وق ،فيجتب علتى المستتخدم امتلك حستاب
وكلمتتتتة متتتترور؛ الخيتتتتار الثتتتتاظني غيتتتتر آمتتتتن أبتتتت صدا ول يجتتتتب أن يستتتتتخدم إل فتتتتي الحتتتتال ت الخاصتتتتة؛
إذا كنت تبحث عن طريقة آمنة لنقل الملفا ت ،فاظنظر إلى SFTPفي .OpenSSH-Serverوصول
المستتخدم إلتتى مجلتدا ت وملفتا ت ختتادوم FTPيتعلتق بالذوظنتتا ت المعطيتتة للحستتاب أثنتتاء تستتجيل
الدخول؛ وكقاعدة عامة ،سيخفي عفريتت FTPالمجلتد الجتذر لختادوم FTPوستيحول المستتخدم
إلى مجلد منزل FTP؛ وهذا سيخفي بقية ظنظام الملفا ت من الجلسا ت البعيدة.
إن vsftpdهتتتو عفريتتتت FTPمتتتتوفر فتتتي أوبنتتتتو ،ومتتتن الستتتهل تثتتتبيته وإعتتتداده وصتتتياظنته؛
افتراضتتتصيا ،لتتتم نيضتتتنبط vsftpdللستتتماح للمستتتتخدمين المجهتتتولين بالتنزيتتتل؛ إذا كنتتتت تريتتتد
anonymous_enable=Yes
سنيننشتتأ مستتتخدم باستتم ftpمتتع مجلتتد المنتتزل /srv/ftpأثنتتاء التثتتبيت؛ هتتذا هتتو مجلتتد FTP
الفتراضي.
إذا أرد ت تغييتتر هتتذا المستتار إلتتى /srv/files/ftpعلتتى ستتبيل المثتتال ،فببستتاطة أظنششتتئ مجلتتصدا
في النهاية ،اظنسخ أ ديتة ملفتتا ت ومجلتدا ت تريتد للمستتخدمين المجهتولين تنزيلهتتا عتتبر ftpإلتى
افتراضتتصيا ،يسكتتون vsftpdمضتتبو صطا علتتى الستتتيثاق متتن مستتتخدمي النظتتام والستتماح لهتتم
بتنزيل الملفا ت؛ إذا أرد ت السماح للمستخدمين برفع الملفا ت ،فعددل الملف :/etc/vsftpd.conf
write_enable=YES
الن عنتتدما يتصتتل مستتتخدمو النظتتام عتتبر ،FTPفستتيبدؤون فتتي مجلتتد المنتتزل الختتاص بهتتم،
وبشسكتل مشابه ،ل نيسنمح افتراض صيا للمستتخدمين المجهتولين برفتع الملفتا ت إلتى ختادوم FTP؛
لتغيير ذلك العداد عليك أن نتزيل التعليق عن السطر التي ونتعيد تشغيل خدمة :vsftpd
anon_upload_enable=YES
تحذير :إن الستماح للمستتخدمين المجهتتولين برفتع الملفتتا ت إلتتى الختتادوم هتتو أمتةر خطيتةر جتصدا ،ول نيف ن
ضتتل أبتصدا أن
نيسنمح للمستخدمين المجهولين برفع الملفا ت مباشرصة من الظنترظنت.
يحتتوي ملتتف الضتبط علتى العديتتد متتن خيتارا ت الضتتبط؛ توجتتد معلومتتا ت حتول كتل خيتتار فتي
ملف الضبط؛ ويمسكنك مراجعة صفحة التدليل man 5 vsftpd.confللمزيتد متن التفاصتيل حتول
كل إعداد.
أن يق ديد وصول المستخدمين إلى مجلدا ت المنزل الخاصة بهم بإزالة التعليق عن السطر:
chroot_local_users=YES
يمسكنك أن تق ديد قائمة محددة من المستخدمين إلى مجلدا ت المنزل الخاصة بهم فقط:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
يحتوي على قائمة بالمستخدمين المسموح لهم واحصدا في كل سطر؛ ثم أعد تشغيل :vsftpd
إلتتى FTP؛ القائمتتة الفتراضتتية تتضتتمن ،rootو ،daemonو ... nobodyإلتتخ .لتعطيتتل الوصتتول
يمسكن أن نيشنفر FTPباستخدام ،FTPSالذي يختلف عتن SFTP؛ FTPSهتو FTPعتبر طبقتة
المقتتابس المنتتة ) (SSL؛ إن SFTPهتتو مثتتل جلستتة FTPعتبر اتصتتال SSHمشتتفر؛ اختلف رئيستتي
» «shellعلى النظام ،بدصل من صدفة nologin؛ قد ل يسكون توفير صدفة لسكتتل المستتتخدمين
أمصرا ملئصما في بعض البيئا ت مثل خادوم ويب مشترك؛ لسكن من الممسكن تقييد مثل هذه الحستتابا ت
إلى SFTPفقط وتعطيل التعامل مع الصدفة ،راجع قسم OpenSSHلمزيتد من المعلوما ت.
ssl_enable=Yes
أي ص
ضا ،لحظ الخيارا ت المتعلقة بالشهادة والمفتاح:
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ضتتشبنطت هتتذه الخيتتارا ت افتراضتت صيا إلتتى الشتتهادة والمفتتتاح المتتوفر متتن الحزمتتة ssl-sert؛ لسكتتن
ن
يجتتب استتتبدالهما فتتي البيئتتتا ت الظنتاجيتتة بالشتتهادة والمفتتتاح النمونلتتد لمضتتيف محتتدد؛ للمزيتتد متتن
أعد الن تشغيل ،vsftpdوسنيجبر المستخدمون غير المجهولين على استخدام :FTPS
يحتوي على:
الصدفا ت التي تسمح الوحدة PAMلها بالوصول هي الصدفا ت المذكورة في ملف ./etc/shells
يمسكتتن ضتتبط أغلبيتتة عملء FTPالشتتهيرين ليتصتتلوا عتتبر .FTPSالداة lftpالتتتي تعمتتل متتن
ه .مصادر
محطا ت العمل المحلية تستهلك مساحة قرص أقل لظنهتا تستتخدم بياظنتتا ت يمسكتن تخزينهتا •
ل توجتد حاجتة لنين نشتتأ للمستتخدمين مجلتدا ت منتزل منفصتلة فتي كتل جهتاز ش بسكي؛ حيتث •
يمسكن ضبط مجلدا ت المنزل على خادوم NFSوتتوفر للجميع عبر الشبسكة.
أجهزة التخزين مثل سواقا ت CD-ROMوأقراص USBيمسكن استتخدامها متتن الجهتتزة الختترى •
على الشبسكة ،وربما يقلل هذا من عدد مشغل ت الوسائط القابلة للزالة في الشبسكة.
ا .التثبيت
ب .الضبط
تستطيع ضبط المجلدا ت لسكي »نتصندر« عبر إضافتها لملف ،/etc/exportsعلى سبيل المثال:
/ubuntu )*(ro,sync,no_root_squash
/home )*(rw,sync,no_root_squash
تستتتتطيع استتتتبدال علمتتتة "*" بإحتتتدى صتتتيغ أستتتماء المضتتتيفين ،تأكتتتد متتتن أن تعريتتتف استتتم
استخدم المتر mountلوصتل مجلتد NFSمشتتترك متن جهتتاز لختتر؛ وذلتك بسكتابتتة أمتتر شتبيه
تحظظذير :يجتتب أن تسكتتون ظنقطتتة الوصتتل /local/ubuntuموجتتودصة مستتبصقا ،ول يجتتب أن يسكتتون هنالتتك أديتتة ملفتتا ت
أو مجلدا ت فرعية في ظنقطة الوصل.
طريقة أخترى لوصتل مشتتاركة NFSمتن جهتاز لختر هتي إضتافة ستطر إلتى ملتف /etc/fstab؛
فتتي الجهتتاز المحلتتي التتذي يجتتب وصتتل NFSإليتته؛ الشتتسكل العتتام للستتطر التتذي سنيضتتاف إلتتى ملتتف
/etc/fstabهو:
إذا حدثت معك مشسكلة في وصل ،NFSفتأكتتد أن الحزمتتة nfs-commonمثبتتتة فتتي ظنظتتام
د .مصادر
.3ممبادر iSCSI
إن (Internet Small Computer System Interface ) iSCSIهتتو بروتوكتتول يستتمح
بنقتتل أوامتتر SCSIعتتبر الشتتبسكة؛ عتتادصة نيستتتخندم iSCSIفتتي (Storage Area Network ) SAN
للستتماح للختتواديم بالوصتتول إلتتى مختتزن كتتبير لمستتاحة القتترص الصتتلب؛ نيشتتير بروتوكتتول iSCSI
يمسكتتن أن نيضتتنبط ختتادوم أوبنتتتو كمبتتادر أو هتتدف ،iSCSIيتتوفر هتتذا السكتتتاب الوامتتر والضتتبط
اللزم لعتتداد مبتتادر ،iSCSIعلتتى فتترض أظنتتك تملتتك هتتدف iSCSIفتتي شتتبسكتك وتملتتك المتيتتازا ت
المناسبة للتصال إليه؛ التعليما ت حول إعداد هدف تختلف اختلصفا كبيصرا بين مزودي العتاد ،لتتذلك
يلي:
node.startup = automatic
تستتتطيع التأكتتد إذا كتتان الهتتدف متتتوفصرا حالصيتتا باستتتخدام الداة iscsiadm؛ وذلتتك بإدختتال
إذا كان الهدف متوفصرا ،فيجب أن تشاهد مخرجا ت شبيهة بما يلي:
192.168.0.10:3260,1 iqn.1992-05.com.emc:sl7b92030000520000-2
ملحظة :قد يختلف رقم iqnوعنوان IPفي العلى بناصء على العتاد الذي تستخدمه.
يجب أن تسكون الن قادصرا على التصال بهدف ،iSCSIواعتماصدا علتتى إعتتدادا ت الهتتدف ،فربمتتا
dmesg | grep sd
قتد يختلتف، الجديد؛ تذكر أن هتذا مجترد مثتالiSCSI هو قرصsdb يسكون،في الناتج أعله
▲ | 397
دليل إدارة خواديم أوبنتو 14.04 - خواديم الملفا ت
في الطرفية:
ملحظة :الوامر التية من داخل الداة fdisk؛ راجع man fdiskلتعليما ت تفصتتيلية؛ أي ص
ضتتا الداة cfdiskفتي
بعض الحيان تسكون »صديقة« للمستخدم أكثر.
فسكرة جيدة هي التأكد أن كل شيء يعمل على ما يرام قبل إعادة تشغيل الخادوم.
ج .مصادر
) Common UNIX Printing Systemاختصتتاصرا ،(CUPSظنظتتام الطباعتتة هتتذا هتتو طبقتتة محمولتتة
متوفرة مجا صظنا التي أصبحت المعيار القياسي الجديد للطباعة في غالبية توزيعا ت ليننسكس.
يتتتتدير CUPSمهتتتتام الطباعتتتتة والطلبيتتتتا ت ويتتتتوفر ختتتتدما ت طباعتتتتة عتتتتبر الشتتتتبسكة باستتتتتخدام
CUPSدعصمتتا لمجتتاتل واستتع جتصدا متتن الطابعتتا ت ،بتتدصءا متن طابعتتا ت مصتتفوفة النقتط )(dot-matrix
) (PPDوالكتشاف التلقائي لطابعا ت الشبسكة ،ويوفر واجهة ويب بسيطة كأداة للضبط والدارة.
ا .التثبيت
ولستسكشاف الخطاء ،يمسكنك الوصول إلى أخطاء خادوم CUPSعبر ملف سجل فتتي الملتتف
تواجهتتك ،فيمسكتتن زيتتادة درجتتة »الستتهاب« لستتجل CUPSبتغييتتر التعليمتتة LogLevelفتتي ملتتف
الضبط إلى " "debugأو حتى إلى " ،"debug2مما يؤدي إلى تستجيل كتل ش يء؛ تأكتد متن إعتادة
القيمة الفتراضية " "infoبعد حل مشسكلتك لتفادي زيادة حجم السجل زيادصة كبيرصة جصدا.
ب .الضبط
يتدبع ملتف ضتبط CUPSظنفتس الصتيغة العامتة لملتف الضتبط الرئيستي لختادوم أباتشتي؛ ستنذكر هنتا
تنويه :عليك إظنشاء ظنسخة من الملف الصلي قبتل تعتديل ملتف الضتبط ،وعليتك حمايتة تلتك النستخة متن السكتابتة،
لذلك ستسكون لديك العدادا ت الفتراضية كمرجع أو لعادة استخدامها وقت الحاجة.
يلئمتتتتتتتتك؛ فمث صل إن كنتتتتتتتتت أظنتتتتتتتتت متتتتتتتتدير ختتتتتتتتادوم ، CUPSوكتتتتتتتتان بريتتتتتتتتدك اللسكتتتتتتتتتروظني هتتتتتتتتو
ServerAdmin user@example.com
علتتى عنتتوان IP 127.0.0.1؛ ولسكتتي تجعتتل ختتادوم CUPSيستتتمع علتتى عنتتوان IPلبطاقتتة شتتبسكية،
فعليك تحديد إما اسم مضيف ،أو عنوان ،IPأو اختياصرا ،عنوان IPومنفذ؛ وذلتتك بإضتتافة التعليمتتة
Listen؛ على سبيل المثال ،لو كان خادوم CUPSيقبع على شبسكة محليتة بعنتوان IPه و 192.16
8.10.250وتريتتتد أن تجعلتتته متا صحتتتا لبقيتتتة الظنظمتتتة علتتتى هتتتذه الشتتتبسكة الفرعيتتتة؛ فعليتتتك تعتتتديل
قتتد تحتتذف أو تضتتع تعليصقتتا قبتتل الشتتارة إلتتى عنتتوان (127.0.0.1) loopbackإذا لتتم ترغتتب
في أن يستتمع cupsdإلتى هتذه البطاقتة لسكنتك تريتتده أن يستتتمع فقتتط إلتتى بطاقتتة إيتثرظنت للشتتبسكة
المحلية LAN؛ لتفعيل الستماع لسكل منافذ الشبسكة بما فيها loopbackلمضيف معديتتن ،فتستتتطيع
للمزيد متن المثلتة عتن تعليمتا ت الضتبط لختادوم ،CUPSراجتع ص فحة التدليل الخاصتة بملتف
man cupsd.conf
ملحظظظة :فتتي كتتل متترة نتعتتددل فيهتتا علتتى ملتتف الضتتبط /etc/cups/cupsd.conf؛ فستتتحتاج إلتتى إعتتادة تشتتغيل
خادوم CUPSبسكتابة المر التالي في الطرفية:
ملحظظظظظظظة :يمسكتتتتتتن أن نيضتتتتتتنبط ونيرانقتتتتتتب CUPSباستتتتتتتخدام واجهتتتتتتة ويتتتتتتب ،التتتتتتتي تتتتتتتتوفر افتراضتتتتتتصيا علتتتتتتى
http://localhost:631/admin؛ يمسكن استخدام واجهة الويب لجراء كل مهام إدارة الطابعة.
لسكي تنفذ المهام الدارية عبر واجهة الويب ،فعليتك إمتا تفعيتتل حستتاب الجتذر علتى خادومتتك،
د .مصادر
ص لختتر عتتبرتشتتترك العديتتد متتن الظنظمتتة فتتي عمليتتة الحصتتول علتتى بريتتد إلسكتتتروظني متتن شتتخ ت
صتتتحيصحا لسكتتتي تتتتتم العمليتتتة بنجتتتاح؛ يستتتتخدم النمرشستتتل »عميتتتل مستتتتخدم البريتتتد« )Mail User
Agentاختصتتاصرا (MUAأو عميتتل بريتتد إلسكتتتروظني ،لرستتال رستتالة عتتبر واحتتد أو أكتتثر متتن »عملء
ظنقتتل البريتتد« ) Mail Transfer Agentsاختصتتاصرا ،(MTAسيستتلم آخرهتتم البريتتد إلتتى »عميتتل
إيصتتال البريتتد« ) Mail Delivery Agentاختصتتاصرا (MDAليصتتال البريتتد إلتتى صتتندوق بريتتد
المستلم ،الذي بدوره يحصل عليه عميل البريد اللسكتروظني للمستلم عادصة باستخدام خادوم POP3
أو .IMAP
.1خادوم Postfix
إن Postfixهتتو عميتتل ظنقتتل البريتتد ) (MTAالفتراضتتي فتتي أوبنتتتو؛ التتذي نيو ن
صتتف بتتأظنه ستتريع
وسهل الدارة ،وآمن ومتوافق مع عميل ظنقل البريد sendmail؛ يشتترح هتتذا القستتم طريقتتة تثتبيت
وضبط ،Postfixويشرح أي ص
ضا كيفية إعداد خادوم SMTPباستخدام اتصال آمن )لرسال رسائل
ملحظة :لن يشرح هذا السكتاب » «Postfix Virtual Domainsللمزيد من المعلوما ت حول النطاقا ت الوهميتتة
وغيرها من إعدادا ت الضبط المتقدمة ،فراجع قسم »مصادر« في ظنهاية هذا القسم.
ا .التثبيت
سنتسأل بعض السئلة أثناء عملية التثبيت ،وسنيشنرح الضبط بتفاصيل أكبر في المرحلة القادمة.
Internet Site
mail.example.com
steve
mail.example.com, localhost.localdomail, localhost
No
127.0.0.1/8 8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
0
+
all
ملحظتتتتة :استتتتتبدل mail.example.comبالنطتتتتاق التتتتذي ستتتتيقبل استتتتتلم البريتتتتد عليتتتته ،و 192.168.0.0/24
بالشبسكة التي عندك ومجالها؛ و steveباسم ملئم للمستخدم.
Postfixيستخدم mboxلصيغة صندوق البريد؛ وبتدصل متتن تعتديل ملتتف الضتبط مباشتترصة ،يمسكنتتك
استتتخدام المتتر postconfلضتتبط كتتل معتتامل ت postfix؛ ستتنتخنزن معتتامل ت الضتتبط فتتي ملتتف
/etc/postfix/main.cf؛ وإذا أرد ت إعادة ضبط معامل مع نين ،يمسكنك إمتا أن تنفتذ المتر أو تعتدل
ملحظة :هذا سيضع البريد الجديد فتي مجلتتد ،/home/username/Maildirلتذلك تريتتد ضتبط عميتتل تستتليم
البريد ) (MDAلستخدام ظنفس المسار.
) (TLSلتشتتتفير عمليتتتة الستتتتيثاق؛ سيستتتمح ختتتادوم SMTPللعميتتتل بتتتأن ينقتتتل البريتتتد بعتتتد
الستيثاق.
ثتتتم ودلتتتد أو احصتتتل علتتتى شتتتهادة TLSرقميتتتة ،راجتتتع »الفصتتتل التاستتتع :الحمايتتتة«؛ هتتتذا المثتتتال
يستتتخدم أي ص
ضتتا ستتلطة شتتهادا ت ) Certificate Authorityأو ،(CAللمزيتتد متتن المعلومتتا ت حتتول
ملحظظظة :عملء مستتتخدمي البريتتد ) (MUAالتتتي تتصتتل إلتتى ختتادوم البريتتد عتتبر TLSيجتتب أن تتعتترف علتتى
الشهادة المستخدمة فتي TLS؛ يمسكتن فعتل ذلتك إمتا باستتخدام شتهادة متن ستلطة شتهادا ت تجاريتة ،أو استتخدام
شهادة موقعة ذاتصيا ،وعلتى المستتخدمين أن نيثدبتتوا أو يقبلتوا الشتهادة يتدوصيا ،شتهادا ت TLSمتن عميتل ظنقتتل بريتد
إلتتى عميتتل ظنقتتل بريتتد آختتر ل نيتح نقتتق منهتتا إل بعتتد موافقتتة مستتبقة متتن المنظمتتا ت المتتتأثرة؛ ل يوجتتد ستتبب لعتتدم
استخدام شهادة موقعة ذاتصيتا عنتد استتعمال TLSمتن MTAإلتتى ،MTAمتتا لتتم تتطلتب السياستا ت المحليتتة ذلتك؛
راجع قسم »إظنشاء شهادة موقعة ذاتصيا« لمزيتد من المعلوما ت.
ضتشب ن
وشتهادة موقعتتةSMTP-AUTH ط ليستتخدم قتد نPostfix فيسكتتون، بعد تنفيذ كتل الوامتر الستابقة:ملحظة
ن
. مشفرTLS ذاتصيا أظنششئت لتصال
▲ | 409
14.04 - دليل إدارة خواديم أوبنتو خدما ت البريد اللسكتروظني
myhostname = server1.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = server1.example.com, localhost.example.com,
localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,permit_mynetworks,reject
_unauth_destination
smtpd_tls_auth_only = no
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/ssl/private/smtpd.key
smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt
smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
:؛ فنفذ المر التي لعادة تشغيل العفريتpostfix بعد إكمال الضبط البتدائي لخدمة
▲ | 410
14.04 - دليل إدارة خواديم أوبنتو خدما ت البريد اللسكتروظني
SASL ضبط.د
:الطرفية
service auth {
# auth_socket_path points to this userdb socket by default.
It's typically
# used by dovecot-lda, doveadm, possibly imap process, etc.
Its default
# permissions make it readable only by root, but you may
need to relax these
# permissions. Users that have access to this socket are
able to get a list
# of all usernames and get results of everyone's userdb
lookups.
unix_listener auth-userdb {
#mode = 0600
#user =
#group =
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
▲ | 411
دليل إدارة خواديم أوبنتو 14.04 - خدما ت البريد اللسكتروظني
auth_mechanisms = plain
إلى ما يلي:
ضنبنط ن
ت ،Dovecotفأعد تشغيله بالمر: بعد أن ن
) deliveryكتتتاظنت نتحتتتتنزم مستتتبصقا باستتتتم (dovecot-postfix؛ هتتتذه الحزمتتتتة ستتتنتثدبت Dovecot
وتضبط Postfixليستخدمها لستيثاق SASLوعميل تسليم البريد )(MDA؛ تضبط هذه الحزمة
Dovecotأي ص
ضا للخدما ت IMAPو IMAPSو POP3و .POP3S
ملحظة :ربما تريد أو ل تريد تشغيل ،IMAPأو ،IMAPSأو ،POP3أو POP3Sعلى خادوم البريد عندك؛ على
ستتتتتبيل المثتتتتتال ،إذا كنتتتتتت تضتتتتتبط خادومتتتتتك ليسكتتتتتون بوابتتتتتصة للبريتتتتتد ،أو نمنردشتتتتتصحا للرستتتتتائل العشتتتتتوائية ) (Spam
أو الفيروسا ت ...إلخ .فإذا كتاظنت هتذه هتي الحالتة عنتدك ،فمتن الستهل اس تخدام الوامتر الستابقة لضتبط Postfix
لستخدام .SMTP-AUTH
يجب أن تحصتل الن علتتى ختتادوم بريتد يعمتل تماصمتتا؛ لسكتتن هنالتتك بعتتض الخيتارا ت التتي تريتتد
ضتتبطها لمزيتت تد متتن التخصتتيص؛ علتتى ستتبيل المثتتال ،تستتتخدم الحزمتتة الستتابقة شتتهادة ومفتتتاح متتن
حزمة ،ssl-certوفي بيئة إظنتاجية يجب أن تستخدم شتهادة ومفتتتاح مونلتد للمضتيف؛ راجتع قستتم
smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key
و .التختبار
اكتمل الن ضبط SMTP-AUTH؛ حان الن الوقت لختبار العدادا ت.
للتأكد إذا كان SMTP-AUTHو TLSيعملن عمصل صحيصحا ،فندفذ المر التي:
ehlo mail.example.com
إذا رأيت السطر التية بين غيرها ،فإن كل شيء يعمل على ما يرام؛ اكتب quitللخروج.
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
سنقدم في هذا القسم بعض الطرق الشائعة لتحديد السبب إذا حدثت مشسكلة ما.
الخروج من chroot
تحتاج إلى إعادة تشغيل Postfixلستخدام الضبط الجديد ،وذلك بإدخال المر التي في الطرفية:
تفعيل Smtps
ملفات السجل
لمراقبة الرسائل الداخلة إلى السجل في الوقت الحقيقي ،فاستتتخدم المتتر tailمتتع الخيتتار -f
كما يلي:
tail -f /var/log/mail.err
يمسكتتتن زيتتتادة كميتتتة التفاصتتتيل التتتتي سنتستتت نجل؛ هتتتذه بعتتتض خيتتتارا ت الضتتتبط لزيتتتادة مستتتتوى
إذا كتتاظنت لتتديك مشتتسكلة فتتي إرستتال أو استتتقبل البريتتد متتن ظنطتتاق معيتتن ،فيمسكنتتك إضتتافة ذاك
/master.cfوبإضافة الخيار -vبعد القيد ،على سبيل المثال ،عددل القيد smtpكما يلي:
ملحظظظة :متتن الضتتروري ملحظتتة أظنتته بعتتد إظنشتتاء تعتتديل متتن تعتتديل ت التستتجيل المتتذكورة آظنصفتتا ،فيجتتب أن يعتتاد
تحميل عملية Postfixلسكي نتدشرك الضبط الجديد:
لزيتتادة مقتتدار المعلومتتا ت المستتجلة عنتتد استسكشتتاف مشتتاكل ،SASLيمسكنتتك ضتتبط الخيتتارا ت
auth_debug=yes
auth_debug_passwords=yes
ملحظة :يمسكن أن تزيد بعض الخيارا ت م ن مقتدار المعلومتا ت النمرنستلة إلتى الستجل زيتادصة كتبيرصة؛ تتذكر أن نتعيتد
مستوى التسجيل إلى الحالة الطبيعية بعد أن تح د
ل المشتسكلة؛ ثتم أع د تحميتل العفريتت الملئتم كتي يأختذ الضتبط
الجديد مفعوله.
ح .مصادر
يمسكن أن تسكون مهمة إدارة خادوم Postfixمهمصة معقتتدصة جتتصدا؛ وستتتحتاج فتتي مرحلتتتة متتا •
مسكتتان رائتتع للستتؤال عتتن مستتاعدة فتتي Postfixوالشتتتراك فتتي مجتمتتع أوبنتتتو هتتو قنتتاة •
لمعلوما ت معمدقة عن ،Postfixفينصح مطورو أوبنتو بسكتاب » .«The Book of Postfix •
راجع أي ص
ضا صفحة ويسكي أوبنتو » «Postfixللمزيد من المعلوما ت. •
.2خادوم Exim4
إن Exim4هتتو عميتتل ظنقتتل رستتائل آختتر مطتتور فتتي جامعتتة كتتامبردج لستتتخدامه فتتي أظنظمتتة
يوظنسكس المتصلة إلى الظنترظنت؛ يمسكن تثبيت Eximبدصل من ،sendmailوذلك على الرغتتم متتن أن
ا .التثبيت
ب .الضبط
ستتتتظهر واجهتتتة مستتتتخدم تستتتمح لتتتك بضتتتبط العديتتتد متتتن المعتتتامل ت؛ فمثصل نتقنستتتم ملفتتتا ت الضتتتبط
في Exim4إلى ع ددة ملفا ت ،إذا أرد ت أن تجعلهم في ملف واحد ،فتستطيع ضبط ذلك من هذه الواجهة.
جميتتتتتع المعتتتتتامل ت التتتتتتي ضتتتتتبطتها فتتتتتي واجهتتتتتة المستتتتتتخدم مخزظنتتتتتةة فتتتتتي الملتتتتتف التتتتتتالي
بعد أن تنتهي من الضبط ،يمسكنك تنفيذ المر التي لتولد ملف ضبط رئيسي:
sudo update-exim4.conf
أول خطوة هي إظنشاء شهادة لستخدامها مع TLS؛ وذلك بإدخال المر التي في الطرفية:
sudo /usr/share/doc/exim4-base/examples/exim-gencert
/03_exim4-config_tlsoptionsوإضافة ما يلي:
MAIN_TLS_ENABLE = yes
ي
وأزل التعليقتتتتتتا ت عتتتتتتن قستتتتتتنم د/etc/exim4/conf.d/auth/30_exim4-config_examples
:login_saslauthd_server وplain_saslauthd_server
plain_saslauthd_server:
driver = plaintext
public_name = PLAIN
server_condition = ${if saslauthd{{$auth2}{$auth3}}{1}{0}}
server_set_id = $auth2
server_prompts = :
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif
#
login_saslauthd_server:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
# don't send system passwords over unencrypted connections
server_condition = ${if saslauthd{{$auth1}{$auth2}}{1}{0}}
server_set_id = $auth1
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif
فمتن الضتتروري، الجديتدexim لسكتتي يتمسكتتن عميتل البريتتد الختتارجي متتن التصتتال إلتى ختتادوم
sudo /usr/share/doc/exim4/examples/exim-adduser
▲ | 420
دليل إدارة خواديم أوبنتو 14.04 - خدما ت البريد اللسكتروظني
يجب أن يحمي المستخدمون ملفا ت كلمة المرور الجديدة لخادوم eximبالوامر التية:
sudo update-exim4.conf
sudo service exim4 restart
يوفر هذا القسم معلوما ت حول ضبط خدمة saslauthdلتوفير الستيثاق لخادوم .Exim4
START=yes
Exim4الخدمنة :saslauthd
ن
ضشبط الن Exim4مع SMTP-AUTHليستخدم TLSواستيثاق .SASL
ه .مصادر
يتوفر أي ص
ضا كتاب ».«Exim4 Book •
.3برمجية Dovecot
ب متتع اعتبتتار الحمايتتة متتن الولويتتا ت؛ ويتتدعم
إن Dovecotهتتو عميتتل تستتليم البريتتد ،مسكتتتو ة
صتتتيغتي صتتتندوق البريتتتد الرئيستتتتيتين mbox :أو Maildir؛ يشتتترح هتتتذا القستتتتم كيفيتتتتة ضتتتتبطه
ا .التثبيت
ب .الضبط
التتتذي تريتتتد استتتتخدامه ،حيتتتث يمسكتتتن أن يسكتتتون pop3أو ) pop3sأي pop3المتتتن( ،أو ،imap
أو ) imapsأي imapالمتن( ؛ شترح عتن هتذه التبروتوكول ت ختتارج عتن ظنطتاق هتذا السكتتاب ،للمزيتد
يستتتخدمان تشتتفير SSLللتصتتال؛ بعتتد أن تختتتار التتبروتوكول ،فعليتتك تعتتديل الستتطر التتتي فتتي
الملف :/etc/dovecot/dovecot.conf
ثم اختر صندوق البريد التذي تريتد اس تخدامه ،حيتث يتدعم Dovecotالصتيغتين maildir
و mbox؛ هاتان هما أشهر صيغتين مستعملتين للبريد؛ يملتتك كلهمتتا مزايتتا خاصتتصة بتته ،ومشتتروحصة
أو
ملحظة :يجب عليك ضبط عميل ظنقل البريتد ) (MTAلنقتتل البريتتد التتوارد إلتى هتتذا النتوع متتن صتندوق البريتتد إذا
كان مختلصفا عنما ضبطته.
بعتتد الظنتهتتاء متتن ضتتبط ،dovecotيجتتب عليتتك إعتتادة تشتتغيل عفريتتت dovecotلتجتتدرب
عمل الخادوم:
telnet localhost pop3أو telnet localhost imap2؛ لتتترى إن شتتاهد ت شتتيصئا شتتبيصها بمتتا
ssl = yes
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
يمسكنك الحصول على شهادة SSLمن س لطة إصتدار الشتهادا ت أو إظنشتاء شتهادة SSLموقعتة
ذات صيا؛ الخيتتار الخيتتر هتو خيتار جيتد للبريتد اللسكتتتروظني ،لن عملء SMTPظنتتادصرا متتا يشتتسكون حتول
الشتتهادا ت الموقعتتة ذاتصيتتا؛ رجتتاصء نعتتد إلتتى الفصتتل التاستتع لمزيتتد متتن المعلومتتا ت حتتول إظنشتتاء شتتهادة
SSLموقعتتة ذات صيتتا؛ يجتتب عليتتك الحصتتول علتتى ملتتف مفتتتاح وملتتف الشتتهادة بعتتد إظنشتتائك للشتتهادة؛
عليتتك ضتتبط الجتتدار النتتاري للستتماح للتصتتال ت علتتى المنافتتذ الضتترورية للوصتتول إلتتى ختتادوم
ب آخر ،وهي:
البريد من حاسو ت
IMAP – 143
IMAPs – 993
POP3 – 110
POP3s – 995
ه .مصادر
.4برمجية Mailman
إن Mailmanهتتتو برمجيتتتة مفتوحتتتة المصتتتدر لدارة ظنقاشتتتا ت البريتتتد اللسكتتتتروظني وقتتتوائم
الخبتتار اللسكتروظنيتتة؛ وتعتمتتد العديتتد متتن قتتوائم البريتتد المفتوحتتة المصتتدر )بمتتا فيهتتا قتتوائم بريتتد
أوبنتو( على Mailmanكبرمجية قوائم البريد؛ حيث أظنها قوية وسهلة التثبيت والدارة.
ا .التثبيت
لرسال واستقبال الرسائل؛ حيث يعمل عمصل ممتاصزا مع خواديم البريد التية:
Postfix •
Exim •
Sendmail •
Qmail •
سنتعلم طريقة تثبيت وضبط Mailmanمع خادوم ويب أباتشي ومع أحد خادونمي البريتتد
Postfixأو Exim؛ إذا أرد ت استخدام Mailmanمع خادوم بريد مختلف ،فرجاصء نعد إلى قستتم
ملحظة :تحتاج إلى خادوم بريد وحيد فقط ،و Postfixهو عميل ظنقل البريد الفتراضي في أوبنتو.
Apache2
لتثبيت ،apache2راجع الفصل الحادي عشر لمزيد من التفاصيل.
Postfix
راجع القسم الول من هذا الفصل لتعليما ت عن تثبيت وضبط .Postfix
Exim4
لتثبيت ،Exim4راجع القسم الثاظني من هذا الفصل.
نتختتنزن ملفتتا ت الضتتبط فتتي مجلتتد /etc/exim4بعتتد تثتتبيت exim4؛ وتسكتتون ملفتتا ت ضتتبط
exim4مقسمة إلى عدة ملفا ت مختلفة افتراضت صيا فتي أوبنتتو؛ يمسكنتك تغييتر هتذا الس لوك بتعتديل
'dc_use_split_config='true
Mailman
ظندفذ المر التي في الطرفية لتثبيت :Mailman
تنسخ هذه الحزمة ملفا ت التثبيت إلتى مجلتد ،/var/lib/mailmanوتثبتت ستسكربتا ت CGI
ب .الضبط
يفترض هتتذا القستم أظنتتك ثبتتتت mailmanو apache2و postfixأو exim4بنجتاح؛ كتتل
مثا ة
ل عن ملتف ضتبط أباتشتي يتأتي متع Mailmanالموجتود فتي ،/etc/mailman/apache.conf
ولسكي يستخدم أباتشي ملف الضبط هذا ،فيجب أن نيننسخ إلى :/etc/apache2/sites-available
\ sudo cp /etc/mailman/apache.conf
/etc/apache2/sites-available/mailman.conf
هتتذا سنينششتتئ مضتتيصفا وهمصيتتا فتتي أباتشتتي لموقتع إدارة Mailman؛ فدعتتل الن الضتتبط الجديتتد
Postfix
ستتتنربط النطتتتاق lists.example.comمتتتع القائمتتتة البريديتتتة للدمتتتج متتتع Postfix؛ رجتتتاصء
اظنظتتر أي ص
(transporter) « للتحقتتق متتن أن لتديك »الناقتل/etc/postfix/master.cf ضتتا فتي
:التي
lists.example.com mailman:
: يبني خريطة الربط بإدخال المر التي في الطرفيةPostfix عليك الن جعل
▲ | 430
دليل إدارة خواديم أوبنتو 14.04 - خدما ت البريد اللسكتروظني
Exim4
تستطيع تشغيل خادوم Eximبإدخال المر التي في الطرفية بعد تثبيت :Exim4
ولجعتتل mailmanيعمتتل متتع ،Exim4فيجتتب عليتتك أن تضتتبط Exim4؛ وكمتتا نذشكتتنر ستتابصقا،
يستخدم Exim4افتراضصيا عتت ددة ملفتتا ت ضتبط للظنتواع المختلفتة؛ لمزيتد متن التفاصتيل ،ارجتع إلتتى
موقتتع ويتتتب .Eximيجتتب عليتتك إضتتتافة ملتتف ضتتبط جديتتتد يحتتتوي علتتى أظنتتواع الضتتتبط التيتتتة
لتشغيل :mailman
نينششتتئ Eximملتتف ضتتبط رئيستتي بتتترتيب كتتل ملفتتا ت الضتتبط الصتتغيرة هتتذه؛ ولتتذلك ترتيتتب
ي جصدا.
هذه الملفا ت أمةر ضرور ة
الرئيسي
( يجتتب أن نتختتنزن فتتي مجلتتدMain) جميتتع ملفتتا ت الضتتبط التتتي تنتمتتي إلتتى النتتوع الرئيستتي
:04_exim4-config_mailman
# start
# Home dir for your Mailman installation -- aka Mailman's
prefix
# directory.
# On Ubuntu this should be "/var/lib/mailman"
# This is normally the same as ~mailman
MM_HOME=/var/lib/mailman
#
# User and group for Mailman, should match your --with-mail-gid
# switch to Mailman's configure script. Value is
normally "mailman"
MM_UID=list
MM_GID=list
#
# Domains that your lists are in - colon separated list
# you may wish to add these into local_domains as well
domainlist mm_domains=hostname.com
#
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# These values are derived from the ones above and should not
need
# editing unless you have munged your mailman installation
#
# The path of the Mailman mail wrapper script
MM_WRAP=MM_HOME/mail/mailman
#
# The path of the list config file (used as a required file
when
# verifying list addresses)
MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck
# end
▲ | 432
14.04 - دليل إدارة خواديم أوبنتو خدما ت البريد اللسكتروظني
النقل
( يجتتتتب أن نتختتتتنزن فتتتتي مجلتتتتدtransport ) جميتتتتع الملفتتتتا ت التتتتتي تنتمتتتتي إلتتتتى ظنتتتتوع النقتتتتل
:40_exim4-config_mailman
mailman_transport:
driver = pipe
command = MM_WRAP \
'${if def:local_part_suffix \
{${sg{$local_part_suffix}{-(\\w+)(\\
+.*)?}{\$1}}} \
{post}}' \
$local_part
current_directory = MM_HOME
home_directory = MM_HOME
user = MM_UID
group = MM_GID
الموجه
( يجتتتتب أن نتختتتتنزن فتتتتي مجلتتتتدrouter ) جميتتتتع الملفتتتتا ت التتتتتي تنتمتتتتي إلتتتتى ظنتتتتوع المتتتتوجه
:101_exim4-config_mailman
mailman_router:
driver = accept
require_files = MM_HOME/lists/$local_part/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : \
-confirm+* : -join : -leave : \
-owner : -request : -admin
transport = mailman_transport
▲ | 433
14.04 - دليل إدارة خواديم أوبنتو خدما ت البريد اللسكتروظني
لسكن ترتيب ملفا ت ضبط التوجيه مهم؛ حيث يجتتب، ترتيب ملفا ت الضبط » الرئيسي« و» النقل« غير مهم:تحذير
؛ هتتتذان الملفتتتان يحتويتتتان علتتتى ظنفتتتس ظنتتتوع200_exim4-config_primary أن يظهتتتر هتتتذا الملتتتف قبتتتل ملتتتف
. وتسكون الولوية للذي يأتي أوصل،المعلوما ت
Mailman
: تستطيع تشغيله بالمر التي،mailman بعد تثبيت
Enter the email address of the person running the list: user
at ubuntu.com
Initial mailman password:
To finish creating your mailing list, you must edit your
/etc/aliases (or
equivalent) file by adding the following lines, and possibly
running the
`newaliases' program:
▲ | 434
دليل إدارة خواديم أوبنتو 14.04 - خدما ت البريد اللسكتروظني
mailman-owner: "|/var/lib/mailman/mail/mailman
"owner mailman
mailman-request: "|/var/lib/mailman/mail/mailman
"request mailman
mailman-subscribe: "|/var/lib/mailman/mail/mailman
"subscribe mailman
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman
"unsubscribe mailman
#
لقتتد ضتتبطنا إمتتا Postfixأو Exim4للتعتترف علتتى كتتل البريتتد متتن mailman؛ لتتذلك ليتتس
ضرورصيا إظنشاء أدية قيتود جديتتدة فتتي /etc/aliases؛ إذا أجريتت أديتتة تعتتديل ت إلتتى ملفتتا ت الضتبط،
فرجاصء تأكد أظنك أعد ت تشغيل هذه الخدما ت قبل الكمال إلى القسم التي.
ملحظظظة :ل نيستتتخشدم Exim4الستتماء البديلتتة فتتي العلتتى لتمريتتر البريتتد إلتتى ،Mailmanحيتتث أظنتته يستتتخدم
طريقتتة »الكتشتتاف«؛ لتجاهتتل الستتماء البديلتتة ) (aliasesعنتتد إظنشتتاء القائمتتة ،فأضتتف الستتطر MTA=Noneإلتتى
ملف ضبط ،Mailmanالذي هو ./etc/mailman/mm_cfg.py
ج .الدارة
لنفتتتترض أن لتتتتديك تثبيصتتتتتا افتراضتتتتصيا وأنظنتتتتك أبقيتتتتت علتتتتى ستتتتسكربتا ت CGIفتتتتي المجلتتتتد التتتتتالي
http://hostname/cgi-bin/mailman/admin
ستظهر القائمتتة البريديتتة الفتراضتية علتى الشاشتة وهتي mailman؛ إذا ضتغطت علتى استم
القائمة البريدية ،فس نتسأل عن كلمتتة المتترور للستتتيثاق؛ إذا أدخلتت كلمتتة مترور صتحيحة ،فستتتسكون
قادصرا على تغيير العدادا ت الدارة للقائمة البريدية؛ يمسكنك إظنشاء قائمة بريدية جديدة باستتتخدام
الداة السطرية /usr/sbin/newlist؛ أو بشسكل بديل يمسكنك إظنشاؤها عبر واجهة الويب.
د .المستخدمون
يتتوفر Mailmanواجهتتة ويتتب للمستتتخدمين ،ودجتته متصتتفحك ظنحتتو العنتتوان التتتي للوصتتول
لتلك الصفحة:
http://hostname/cgi-bin/mailman/listinfo
ستتتتظهر القائمتتتة البريديتتتة الفتراضتتتية mailmanعلتتتى الشاشتتتة؛ وإذا ضتتتغطت علتتتى استتتم
القائمتتتة البريديتتتة ،فستتتيظهر ظنمتتتوذج للشتتتتراك فيهتتتا؛ يمسكنتتتك إدختتتال بريتتتدك اللسكتتتتروظني واستتتمك
)اختيتتاري( وكلمتتة المتترور للشتتتراك؛ سنير نستتل بريتتد للتتدعوة إلتتى بريتتدك اللسكتتتروظني ،ويمسكنتتك اتبتتاع
ه .مصادر
راجع أي ص
ضا صفحة ويسكي أوبنتو ».«Mailman •
.5ترشيح البريد
واحدة متن أكتتبر المشتاكل متع البريتتد اللسكتتروظني اليتوم هتي مشتتسكلة البريتتد غيتر المرغتوب فيته
ضا على فيروسا ت أو أشتسكاتل أخترى متن البرمجيتا ت الخبيثتة؛ ووفصقتا لبعتض
تحتوي هذه الرسائل أي ص
التقارير ،تشغل هذه الرسائل حيصزا كبيصرا من البريد اللسكتروظني النمرنسل عبر الظنترظنت.
هتتتتتذه المرشتتتتتحا ت يمسكنهتتتتتا فتتتتتي بعتتتتتض الحيتتتتتان تحديتتتتتد إذا متتتتتا كتتتتتاظنت الرستتتتتالنة عشتتتتتوائيصة دون
الحاجتتتة إلتتتى معالجتهتتتا ببرمجيتتتا ت تستتتتهلك المتتتوارد؛ أشتتتهر هتتتذه المرشتتتحا ت هتتتي opendkim
و .python-policyd-spf
(Frameworkمع .Postfix
ثتتم نيستتتخندم ClamAVلفحتتص الرستتالة؛ إذا حتتو ت الرستتالة علتتى فيتتروس ،فسيرفضتتها •
.Postfix
ستتنتحنلل الرستتائل »النظيفتتة« متتن Spamassassinللتحقتتق إذا كتتاظنت الرستتالة هتتي رستتالة •
على سبيل المثال ،إذا كان » رصيد العشوائية« لرستتالة متتا أكتبر متن خمستتين بالمئتتة ،فيمسكتن أن
نتتتزال الرستتالة تلقائصيتتا متتن الطتتابور ) (queueحتتتى دون إعلم المتلقتتي؛ طريقتتة أختترى للتعامتتل متتع
هتتذه الرستتائل هتتي إيصتتالهم لعميتتل مستتتخدم البريتتد ) (MUAوالستتماح للمستتتخدم بتتأن يتعامتتل متتع
ا .التثبيت
هنالتتك بعتتض الحتتزم الختترى التتتي يمسكتتن أن نتدنمتتج متتع Spamassassinلكتشتتاف أفضتتل
للرسائل العشوائية:
بالضتتتافة إلتتتى برمجيتتتا ت الترشتتتيح الرئيستتتية ،ستتتنحتاج إلتتتى أدوا ت الضتتتغط لنعالتتتج بعتتتض
مرفقا ت البريد:
sudo apt-get install arj cabextract cpio lha nomarch pax rar
unrar unzip zip
ملحظظظة :إذا لتتم نيعنثتتر علتتى بعتتض الحتتزم الستتابقة ،فتأكتتد متتن تفعيتتل مستتتودع multiverseفتتي الملتتف التتتالي
./etc/apt/sources.list
إذا أجريتت ن
ت تعتتديل ت ت علتتى ذاك الملتتف ،فتأكتتد متتن تحتتديث فهتترس الحتتزم بتنفيتتذ المتتر sudo
ب .الضبط
ClamAV
الستتتلوك الفتراضتتتي لبرمجيتتتة ClamAVتناستتتب احتياجاتنتتتا؛ للمزيتتتد متتتن خيتتتارا ت الضتتتبط
يعثر Spamassassinتلقائ صيتتا علتتى المسكوظنتتا ت الضتتافية ويستتتخدمها إن تتتوفر ت؛ هتتذا يعنتتي
ENABLED=1
Amavisd-new
بتعتتديلAmavisd-new ف دعل استسكشتتاف الرستتائل العشتتوائية ومضتتاد الفيروستتا ت فتتي،أوصل
:/etc/amavis/conf.d/15-content_filter_mode الملف
use strict;
#
# Default antivirus checking mode
# Uncomment the two lines below to enable it
#
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \
$bypass_virus_checks_re);
#
# Default SPAM checking mode
# Uncomment the two lines below to enable it
#
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \
$bypass_spam_checks_re);
قد تسكون إعادة معالجة الرستائل العشتوائية فسكترصة س يئصة لن العنتوان النمعتاد مزيتةف غالصبتا؛ ربمتتا
$final_spam_destiny = D_DISCARD;
▲ | 441
14.04 - دليل إدارة خواديم أوبنتو خدما ت البريد اللسكتروظني
:( المزيد من الرسائل كرسائل عشوائيةflag) وربما ترغب بتعديل قيمة الخيارا ت التية لتعليم
فربمتتا تحتتاج، للنطتتاقMX ( مختلصفتتا عتن ستجلhostname) إذا كان اسم المضيف للختتادوم
، يتدو صيا؛ وإذا كتان الختادوم يستتتلم البريتتد لكتتثر متتن ظنطتتاق$myhostname إلى أن تضبط الخيتتار
:nf.d/50-user
$myhostname = 'mail.example.com';
@local_domains_acl = ( "example.com", "example.org" );
@local_domains_acl = qw(.);
▲ | 442
دليل إدارة خواديم أوبنتو 14.04 - خدما ت البريد اللسكتروظني
.6قائمة DKIMالبيضاء
يمسكتتتتن ضتتتبط Amavisd-newليضتتتيف عنتتتاوين متتتن ظنطاقتتتا ت معينتتتة متتتع مفاتيتتتتح ظنطتتتاق
) (Domain Keysصالحة إلى القائمة البيضتتاء )(Whitelist؛ هنالتتك بعتتض النطاقتتا ت المضتتبوطة
مسبصقا في :/etc/amavis/conf.d/40-policy_banks
عنتتوان متتن النطاقتتا ت الفرعيتتة للنطتتاق " "example.comالتتذي يستتتخدم توقيتتع النطتتاق
من " "example.comهذا يستخدم عادصة لمجوعا ت النقاش التي تونقع رسائلها.
يمسكن أن يملك ظنطا ةق واحد أكثر من ضبط للقائمة البيضتتاء؛ عليتتك إعتتادة تشتتغيل amavisd-
فإن الرسالة لن تحصل علتتى أي فحتص متتن، في هذا السياق؛ عندما نيضاف النطاق إلى القائمة البيضاء:ملحظة
.الفيروسا ت أو الرسائل العشوائية؛ ربما يسكون أو ل يسكون هذا هو السلوك الذي ترغبه لهذا النطاق
Postfix افي.ا
▲ | 444
14.04 - دليل إدارة خواديم أوبنتو خدما ت البريد اللسكتروظني
-o content_filter=
-o receive_override_options=no_header_body_checks
هذا ستيمنع الرستائل النمو نلتدة للتبلي غ عتن الرستائل العشتوائية متن تصتنيفها كرستائل عش وائية؛
التختبار.ب
: يجب أن نتشاشهد،( الرسائل التي نتمنرر عبر نمردشح المحتوىheader) وفي ترويسة
X-Spam-Level:
X-Virus-Scanned: Debian amavisd-new at example.com
X-Spam-Status: No, hits=-2.3 tagged_above=-1000.0 required=5.0
tests=AWL, BAYES_00
X-Spam-Level:
▲ | 445
دليل إدارة خواديم أوبنتو 14.04 - خدما ت البريد اللسكتروظني
ملحظة :قد تختلف النتائج المعروضة عنمتا س يظهر عنتدك ،لسكتن متن المهتم وجتود القيتدين X-Virus-Scanned
و .X-Spam-Status
أفضتتل طريقتتة لمعرفتتة ستتبب حتتدوث مشتتسكلة متتا هتتي مراجعتتة ملفتتا ت الستتجل .لتعليمتتا ت
ت عتتن
;$log_level = 2
ملحظة :عند زيادة درجة السهاب لسجل ،Amavisd-newفسيزداد ظناتج سجل Spamassassinأي ص
ضا.
LogVerbose true
ملحظة :بعد تغيير إعدادا ت التسجيل للبرمجيا ت ،تذكر أن تعيد تشغيل الخدمة لسكي تأخذ العدادا ت الجديدة
مفعولها؛ أي ص
ضا تذكر أن تعيد القيمة الفتراضية بعد أن تحل المشسكلة.
د .مصادر
موقع .DKIM.org
أي ص
ضا ،تستطيع أن تسأل أسئلتك في قناة #ubuntu-severعلى خادوم .freenode •
ستتنناقش فتتي هتتذا الفصتتل كيفيتتة تثتتبيت وضتتبط ختتادوم (ircd-irc2) IRCوستتنناقش أي ص
ضتتا
.1خادوم IRC
يحتتتوي مستتتودع أوبنتتتو علتتى العديتتد متتن ختتواديم ،IRCيشتترح هتتذا القستتم كيفيتتة تثتتبيت
ا .التثبيت
أد ش
خل المر التي في الطرفية لتثبيت خادوم :ircd-irc2
نيختتنزن ملتتف الضتتبط فتتي مجلتتد ،/etc/ircdوالتوثيتتق متتتوفةر فتتي المجلتتد فتتي المستتار التتتالي:
./usr/share/doc/ircd-irc2
ب .الضبط
رجتتاصء تأكتتد أظنتتك تضتتيف أستتماء DNSالبديلتتة لستتم مضتتيف IRC؛ علتتى ستتبيل المثتتال ،إذا ضتتبطت
المضيفين عندك؛ ل يتوجب أن يسكون اسم مضيف IRCهو ظنفسه اسم مضيف الخادوم.
عليتتك إضتتافة أستتطر خاصتتة لضتتبط قائمتتة بالمنافتتذ التتتي يستتتمع إليهتتا IRC؛ ولضتتبط »الوراق
العتمادية للمشغل« ،ولتضبط الستيثاق من العميل ...إلخ .رجاصء ارجع إلى المثال عن ملف الضبط
الموجود في ./usr/share/doc/ircd-irc2/ircd.conf.example.gz
لفتتتة IRCهتتي الرستتالة التتتي تظهتتر فتتي عميتتل IRCعنتتدما يتصتتل إلتتى الختتادوم ،ويمسكتتن أن
بعد إجراء التعديل ت الضرورية لملف الضبط ،تستطيع إعادة تشغيل خادوم IRCبتنفيذ المر التي:
ج .مصادر
ربما تسكون مهتصما بإلقاء ظنظرة إلى خواديم IRCالخرى المتوفرة فتتي مستتتودعا ت أوبنتتتو، •
الفوريتتة( ونيستتتخندم بواستتطة عتت ددة برمجيتتا ت مشتتهورة .يشتترح هتتذا القستتم طريقتتة إعتتداد ختتادوم
Jabberd 2على شبسكة LANمحلية؛ يمسكن أن نيع ندل هذا الضتبط لت وفير ختدما ت تبتادل الرستائل
ا .التثبيت
لتثبيت ،jabberd2أد ش
خل المر التي في الطرفية:
ب .الضبط
المستتتتخدم؛ هتتتذا شتتتسكل بستتتيط جتتت صدا متتتن أشتتتسكال الستتتتيثاق؛ لسكتتتن يمسكتتتن ضتتتبط Jabberd2لسكتتتي
><id>jabber.example.com</id
><driver>db</driver
><id>jabber.example.com</id
وعددل أي ص
ضا > <moduleفي قسم > <authregإلى:
><module>db</module
يمسكنك الن التصال على الخادوم بعميل Jabberمثل بيدجن ) (Pidginعلى سبيل المثال.
ملحظظظة :ميتتزة استتتخدام Berkeley DBلمعلومتتا ت المستتتخدم هتتو أظنهتتا ل تحتتتاج إلتتى صتتياظنة إضتتافية بعتتد
ضبطها؛ إذا أرد ت المزيد من التحسكم في حسابا ت المستخدمين ،فمن المستحسن استخدام آلية استيثاق أخرى.
ج .مصادر
أي ص
ضا ،هنالك بعض المعلوما ت في صفحة ويسكي أوبنتو ».«Setting Up Jabber Server •
التحسكتتم بالصتتدارا ت ) (Version Controlهتتو فتتن إدارة التغييتترا ت إلتتى المعلومتتا ت؛ وهتتي
أداة محورية للمبرمجين ،الذين يستتتهلسكون وقتهتتم بتتإجراء تعتتديل ت صتتغيرة إلتتى البرمجيتتا ت ومتتن
ثم يتراجعون عنها في اليوم التالي! لسكتن فائتدة برمجيتا ت التحسكتتم بالصتدارا ت تمتتد ختارج حتدود
.1نظام Bazaar
إن Bazaarهتتو ظنظتتام جديتتد للتحسكتتم بالصتتدارا ت ممتتول متتن كاظنوظنيسكتتال -الشتتركة التجاريتتة
التي تقف خلف أوبنتو ،وعلى النقيتتض متتن Subversionو CVSاللتتذان يتتدعمان ظنمتتط المستتتودع
ا .التثبيت
أد ش
خل المر التي في الطرفية لتثبيت :bzr
ب .الضبط
المر bzrأي ص
ضا مع مساعدة مدمجة فيه:
bzr help
علتتتى الرغتتتم متتتن أظنتتته مفيتتتد كنظتتتام يعمتتتل بمفتتترده ،لسكنتتته يملتتتك قابليتتتة الدمتتتج الختيتتتاري متتتع
، Launchpadالتتتذي هتتتو ظنظتتتام التطتتتوير التعتتتاوظني المستتتتخدم متتتن كاظنوظنيسكتتتال ومجتمتتتع البرمجيتتتا ت
المفتوحة المحيط بها لدارة وتوستيع أوبنتتو؛ للمزيتد متن المعلومتا ت حتول كيفيتة استتخدام Bazaar
.2نظام Git
إن Gitهتتتو ظنظتتتام تحسكتتتم بالصتتتدارا ت متتتونزع ) (distributedومفتتتتوح المصتتتدر مطتتتنور متتتن
لينوس تورفالدس لدعم تطوير ظنتواة ليننسكتتس؛ حيتث يسكتتون كتتل مجلتد فتي Gitعبتتارة عتن مستتتودع
متتع تأريتتخ كامتتل وإمسكاظنيتتا ت لتتبتتع الصتتدارا ت ،وليتتس متعشمتتصدا علتتى الوصتتول علتتى الشتتبسكة أو علتتى
خادوم مركزي.
ا .التثبيت
ب .الضبط
يجب لسكل مستخدم gitأن يعدرف ظنفسه أوصل إلى ،gitوذلك بتنفيذ المدرين التيين:
متتتا ستتتبق يسكفتتتي لستتتتخدام gitفتتتي طريقتتتة موزعتتتة وآمنتتتة ،حيتتتث نيفتتتتنرض أنن المستتتتخدمين
يستطيعون الوصول إلى الخادوم عبر SSH؛ حيث يمسكن إظنشاء مستودع جديد على الخادوم بالمر:
يمسكن لي عميل يملك وصوصل عبر SSHإلى الخادوم أن ينسخ المستودع بالمر:
بعد ظنسخ الملفا ت إلى جهاز العميل ،يمسكنه تعديلها ثم إيداعها ومشاركتها بالوامر:
cd /path/to/repository
# Edit some files
# Commit all changes to the local version of the repository
git commit -a
# Push changes to the server's version of the repository
git push origin master
الذين يريدون تثبيت gitعلى خادوم سيريدون عموصما إظنجاز المهتتام فتتي gitكنظتتام إدارة التحسكتتم
بالكواد المصتدرية تقليتدي؛ وعنتد وج ود عت ددة مستتخدمين وامتيتازا ت وص ول لهتم ،فالحتل المثتل
ضبط Gitolite
ضتتبط ختتادوم Gitoliteمختلتتف قليصل عتتن معظتتم الختتواديم فتتي الظنظمتتة الشتتبيهة شبيتتوظنسكس؛
فبدصل من ملفا ت الضبط التقليديتتة فتي ،/etc/فتإن Gitoliteنيختدزن الضتبط فتي مستتودع git؛ أول
سنترك الن Gitoliteلسكي يعرف عن مفتاح SSHالعمومي لمدير المستودع؛ هنا ظنفتتترض أن
المستتتخدم الحتتالي هتتو متتدير المستتتودع؛ إذا لتتم تضتتبط مفتتتاح SSHبعتتد ،فراجتتع الفصتتل الستتادس
لمزيتد من التفاصيل:
sudo su - git
gl-setup /tmp/*.pub
سيسمح Gitoliteلك بعمل تغيترا ت مبدئيتتة لضتبطه أثنتتاء عمليتة العتداد؛ يمسكنتتك الن ظنستخ
وتعديل مستودع ضبط Gitoliteمن المستخدم المتدير )المستتخدم التذي اس تورد ت مفتتاح SSH
العمومي الخاص به(؛ نعد إلى ذاك المستخدم ،ثم اظنسخ مستودع الضبط:
exit
git clone git@$IP_ADDRESS:gitolite-admin.git
cd gitolite-admin
للمستخدم.
إضافة مستخدمين جدد إلى Gitoliteهي عملية سهلة :احصل على مفتاح SSHالعمومي لهم
ل تطتتابق بالضتترورة أستتماء مستتتخدمي النظتتام ،حيتتث نتستتتخندم أستتمائهم فتتي ملتتف ضتتبط Gitolite
فقط ،وذلك لدارة التحسكم بالوصول؛ وبشسكل مشابه ،يمسكن حتذف المستتخدمين بحتتذف ملتتف المفتتاح
العمومي الخاص بهم؛ ول تننس أن تودع التغييرا ت وتدفعها إلى خادوم gitبعد كل تعديل:
نتدار المستتودعا ت بتعتتديل الملتف conf/gitolite.conf؛ الشتتسكل العتام لته هتو قيتود مفصتولة
بفراغتتتا ت نتحتتتددد ببستتتاطة قائمتتت صة بالمستتتتودعا ت ثتتتم بعتتتض قواعتتتد الوصتتتول؛ متتتا يلتتتي هتتتو المثتتتال
repo gitolite-admin
RW+ = admin
R = alice
repo project1
RW+ = alice
RW = bob
R = denise
استخدام تخادومك
العمومية إلتتى مستتتودع ضتبط ، Gitoliteثتتم يمسكنهتتم الوصتول إلتتى أي مستتتودع لهتم حتق الوصتول
.3نظام Subversion
إن Subversionهتتو ظنظتتام إدارة إصتتدارا ت مفتتتوح المصتتدر؛ يمسكنتتك باستتتخدام Subversion
أن نتس دجل تاريخ كل الملفتا ت المصتدرية والمستتندا ت؛ حيتث يتتدير الملفتتا ت والمجلتتدا ت متتع متترور الزمتن.
توضع شجرة من الملفا ت في مستودع مركزي ،هذا المستودع يشتتبه كتثيصرا ختتادوم الملفتا ت العتتادي ،عتدا
ا .التثبيت
للوصول إلى مستودع Subversionعبر بروتوكول ،HTTPيجب عليك تثبيت وضبط ختتادوم
ويب ،نأثشب ن
ت عمل Subversionمع أباتشي؛ الرجاء العودة إلتى القستتم الختتاص بإعتتداد ختتادوم أباتشتتي
فتتتي الفصتتتل الحتتتادي عشتتتر لمزيتتتتد متتتن المعلومتتتا ت؛ للوصتتتول إلتتتى مستتتتودع Subversionباستتتتخدام
استيراد الملفات
لستيراد مجلد:
علتتى الجهتتاز المحلتتي أو عتتبر بروتوكتتول ت الشتتبسكة المختلفتتة؛ لسكتتن مسكتتان المستتتودع ) repository
(locationهتتو دائصمتتا عنتتوان URL؛ الجتتدول التتتي يحتتتوي علتتى أظنمتتاط URLالمختلفتتة لمختلتتف
طرق الوصول.
سنرى -في هذا القسم -كيفية ضبط Subversionلسكل طرق الوصول الستتابقة؛ سنشتترح هنتتا
هذه هي أبسط طرق الوصول؛ ل تحتاج إلى أي خادوم Subversionيعمتتل؛ نتستتتخندم هتتذه
الطريقة للوصول إلى Subversionمن ظنفس الجهاز؛ شسكل المر النمدنخل في سطر الوامر هو:
svn co file:///path/to/repos/project
أو:
svn co file://localhost/path/to/repos/project
ملحظة :إن لم تحتتدد استم المضتيف ،فهنالتتك ثلث خطتوط مائلتتة ) (///حيتث اثنتتين منهتا للتتبروتوكول بالضتتافة
إلى الخط المائل في أول المسار؛ إذا حدد ت اسم المضيف ،فسيسكون هنالك خطين مائلين فقط.
تعتمتتتد أذوظنتتتا ت المستتتتودع علتتتى أذوظنتتتا ت ظنظتتتام الملفتتتا ت؛ إذا امتلتتتك المستتتتخدم إذن القتتتراءة
يجتتب عليتتك ضتتبط ختتادوم أباتشتتي للوصتتول إلتتى مستتتودع Subversionعتتبر بروتوكتتول
WebDAV؛ أضف السطر التية بين العنصرين > <VirtualHostو > </VirtualHostفتي ملتف
><Location /svn
DAV svn
SVNPath /home/svn
AuthType Basic
"AuthName "Your repository name
AuthUserFile /etc/subversion/passwd
Require valid-user
></Location
التغيير السابق في ضبط أباتشي يتطلب إعادة تحميل الخدمة ،وذلك بالمر التي:
المستتتتودع مملوصكتتتا متتتن مستتتتخدم HTTP؛ يسكتتتون مستتتتخدم HTTPعتتتادصة فتتتي أظنظمتتتة أوبنتتتتو هتتتو
www-data؛ أد ش
خل المر التي في الطرفية لتغيير ملسكية ملفا ت المستودع:
ملحظة :بتغيير ملسكية المستودع إلتتى ،www-dataفلتتن تتمسكتتن متن استتيراد أو إيتتداع الملفتا ت فتي المستتودع
بالمر svn import file:///عبر أي مستخدم عدا المستخدم .www-data
ظندفذ المر التي في الطرفية لظنشاء الملف )الذي سنينششئ الملف ويضيف أول مستخدم(:
لضتتافة مستتتخدمين آخريتتن ،احتتذف الخيتتار ،-cحيتتث يستتتبدل هتتذا الخيتتار الملتتنف القتتديم؛
س نيضتتاف المستتخدم بعتد إدخالتتك لسكلمتتة المتترور بنجتاح؛ يمسكنتتك الن الوصتول إلتى المستتودع
svn co http://servername/svn
تحظظذير :ستت نتنقل كلمتتة المتترور كنتتص واضتتح ،إذا كنتتت قل صقتتا علتتى التجستتس علتتى كلمتتة المتترور ،فمتتن المستحستتن
استخدام تشفير ،SSLاقرأ القسم التي للتفاصيل.
كتتثيصرا الوصتتول إلتتى http://عتتدا أظنتته عليتتك تثتتبيت وضتتبط الشتتهادة الرقميتتة فتتي ختتادوم أباتشتتي؛
لستخدام SSLمع Subversion؛ راجتع الفصتل الحتادي عشتر للمزيتد متن المعلومتا ت حتول ض بط
أباتشي مع .SSL
يمسكنك تثبيت شهادة رقمية نمصند نرة متتن ستلطة توقيتتع الشتتهادا ت؛ أو يمسكنتتك تثتتبيت شتتهادتك
الموقعة ذاتصيا.
تفترض هذه الخطوة أظنك ثبتت وضبطت شهادصة رقمي صة في خادوم أباتشي؛ راجع الوامر في
القستتتم الستتتابق للوصتتتول إلتتتى مستتتتودع ،Subversionحيتتتث أنن الخطتتتوا ت متماثلتتتة تماصمتتتا عتتتدا
يمسكنك ضبط التحسكتتم بالوصتول بعتد إظنشتاء مستتودع Subversion؛ تستتطيع تعتديل الملتف
المثال ،يمسكنك إزالة التعليق عن السطر التية في ملف الضبط لضبط الستيثاق:
]# [general
# password-db = passwd
بعتتتد إزالتتتة التعليتتتق عتتتن الستتتطرين الستتتابقين ،يمسكنتتتك إدارة قائمتتتة المستتتتخدمين فتتتي ملتتتف
،passwdلذلك عددل ملف passwdفي ظنفس المجلد وأضف مستخدصما جديصدا كما يلي:
username = password
للوصول إلى Subversionعبر التتبروتوكول الختتاص svn://؛ متتن الجهتتاز ظنفستته أو متتن جهتتاز
آخر ،تستطيع تشغيل svnserverبالمر svnserve؛ الذي يسكون شسكله العام كما يلي:
سيبدأ Subversionبالستماع إلى المنفذ الفتراضي ) (3690بعد تنفيذ المر السابق؛ عليك
وبناصء على إعدادا ت الخادوم ،قد نيطنلب منك توفير كلمة مرور؛ وبعد أن تستوثق ،فسنيسحب
المر الفرعي update؛ الشسكل العام للمر النمدنخل إلى الطرفية هو كما يلي:
إلى الدليل؛ على سبيل المثال ،لتعلم المزيد عن المر ) coأي السحب ،(checkoutرجاصء ظندفذ المر
التي من الطرفية:
svn co help
طريقة ضبط وتشغيل الخادوم هي ظنفسها في طريقة svn://؛ يفترض هذا القسم أظنك اتبعت
نيفتتنرض أي ص
ضتا أظنته لتديك ختادوم sshف ي ذاك الجهتاز ويستمح للتصتال ت القادمتتة؛ للتأكتد متن
ذلك ،رجاصء جدرب تستجيل التدخول إلتى ذاك الحاس وب باستتخدام ،sshإذا استتطعت التدخول فتإن
SSL؛ البياظنا ت المنقولة في هذه الطريقة مشفرة ،وللوصول إلتى مستتودع المشتتروع )للستحب علتى
svn co svn+ssh://hostname/var/svn/repos/project
قتتد نتستتأل عتتن كلمتتة المتترور اعتمتتا صدا علتتى ضتتبط الختتادوم؛ إذ عليتتك إدختتال كلمتتة المتترور التتتي
تستخدمها للوصول عبر ssh؛ وبعد أن يستوثق منتك الختتادوم ،فيمسكتتن ستحب السكتود متتن مستتودع
.Subversion
.4نظام CVS
إن CVSهو خادوم تحسكم بالصدارا ت؛ تستطيع استخدامه لتسجيل تاريخ ملفا ت المصدر.
ا .التثبيت
بعد تثبيت ،cvsيجب عليتتك تثتتبيت xinetdلتشتتغيل أو إيقتتاف ختتادوم cvs؛ وذلتتك بإدختتال
ب .الضبط
تستطيع ضبط xinetdلبدء خادوم CVSبعد أن نيضتتنبط المستتتودع البتتدائي؛ يمسكنتك ظنستتخ
service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
user = root
wait = no
type = UNLISTED
server = /usr/bin/cvs
server_args = -f --allow-root /srv/cvs pserver
disable = no
}
ملحظة :تأكد أن تعددل المستودع إذا غير ت مجلد المستودع الفتراضي ).(/srv/cvs
من هنا يمسكنك المتابعة في إضافة المستخدمين والمشاريع الجديدة وإدارة خادوم .CVS
تحذير :يسمح CVSللمستخدم بإضافة مستخدمين بشسكل مستقل عن ظنظتتام التشتتغيل؛ وربمتتا أستتهل طريقتتة هتتي
استخدام مستخدمي ليننسكس لخادوم ،CVSعلى الرغم من أن لها مساوئ أمنية؛ راجع دليل CVSللتفاصيل.
يشتترح هتتذا القستتم كيفيتتة إضتتافة مشتتاريع جديتتدة إلتتى مستتتودع CVS؛ أظنششتتئ مجلتتصدا وأضتتف
المستندا ت والملفا ت المصدرية إليه؛ ثم ظندفذ المر التي لضافة هذا المشروع إلى مستودع :CVS
cd your/project
\ cvs -d :pserver:username@hostname.com:/srv/cvs import -m
"Importing my project to CVS repository" . new_project start
تنتتتويه :يمسكتتتن استتتتخدام متغيتتتر البيئتتتة CVSROOTلتخزيتتتن المجلتتتد الجتتتذر لختتتادوم CVS؛
يمسكنتتك تجنتتب استتتخدام الخيتتار -dفتتي أمتتر cvsالستتابق بعتتد أن »نتصتتددر« ) (exportمتغيتتر البيئتتة
.CVSROOT
ل يخدمان أي هدف في هذا السياق ،لسكن ولما كان خادوم CVSيتطلب وجودهما؛ فيجب أن تضعهما.
تحظظظذير :عنتتتدما تضتتتيف مشتتتروصعا جديتتتصدا ،فيجتتتب أن يملتتتك مستتتتخدم CVSإذن الوصتتتول إلتتتى مستتتتودع CVS
)(/srv/cvs؛ تملتتك المجموعتتة srcافتراضتتصيا إذن السكتابتتة إلتتى مستتتودع CVS؛ لتتذلك تستتتطيع إضتتافة المستتتخدم
إلى هذه المجموعة ،ثم سيستطيع إضافة وإدارة المشاريع في مستودع .CVS
.5مصادر
صفحة Bazaarالرئيسية. •
.Launchpad •
تتتتألف شتتبسكا ت الحواستتيب عتتاد صة متتن خليتتط متتن أظنظمتتة التشتتغيل ،وعلتتى الرغتتم متتن أن شتتبسكة
مبنية كام صل من حواسيب بأظنظمة خادوم وسطح مسكتب أوبنتو يمسكن أن تسكون ذا ت فائتتدة عظيمتتة؛
إ دل أن بعض بيئتتا ت الشتتبسكة يجتتب أن تحتتتوي علتتى أظنظمتتة أوبنتتتو ومايسكروستتوفت® وينتتدوز® تعمتتل
ستتوي صة بتنتتاغم؛ ستتيقدم هتتذا الجتتزء متتن السكتتتاب المبتتادئ الساستتية والدوا ت المستتتخدم فتتي ضتتبط
.1مقدمة
يتطلب التواصل الشبسكي الناجح بين ختتادوم أوبنتتتو وعملء وينتتدوز تتتوفير ودمتتج الختتدما ت
الشتتتائعة لبيئتتتا ت وينتتتدوز؛ تستتتاعد مثتتتل هتتتذه الختتتدما ت فتتتي مشتتتاركة البياظنتتتا ت والمعلومتتتا ت عتتتن
الحواستتتيب والمستتتتخدمين الموجتتتودين فتتتي الشتتتبسكة ،ويمسكتتتن تصتتتنيفها تحتتتت ثلثتتتة تصتتتنيفا ت
الستيثاق والوصول .التحقق من هوية حاسوب أو مستخدم للشبسكة وتحديد المعلوما ت •
التتتي نيصتتنرح للحاستتوب أو المستتتخدم بالوصتتول إليهتتا عتتبر تقنيتتا ت مثتتل أذوظنتتا ت الملفتتا ت،
لحسن الحظ ،يمسكن لخادوم أوبنتو توفير هذه الخدما ت إلتتى عملء وينتتدوز ومشتتاركة متتوارد
الشبسكة معهم؛ واحد من أهم البرمجيا ت التي يتضمنها ظنظام أوبنتو للتعامل الشبسكي مع ويندوز هو
سيقدم هذا القسم من السكتاب بعض حال ت استخدام سامبا الشائعة ،وطريقتتة تثتبيت وض بط
.2خادوم الملفات
أحتتد أشتتهر الطتترق للتواصتتل الشتتبسكي بيتتن أوبنتتتو ووينتتدوز هتتو ضتتبط ستتامبا كختتادوم ملفتتا ت؛
يشرح هذا القسم طريقة ضبط خادوم سامبا لمشاركة الملفا ت مع عملء ويندوز.
سنيض نبط الخادوم لمشاركة الملفا ت مع أي عميل علتتى الشتتبسكة دون طلتتب كلمتتة متترور منتته؛ إذا
كاظنت بيئتك تتطلب متحسكما ت بالوصول أكثر تقييصدا ،فراجع القسم »تأمين خادوم سامبا لتختتديم
الملفا ت والطباعة«.
ا .التثبيت
أول خطوة هي تثبيت حزمة samba؛ وذلك بإدخال المر التي من الطرفية:
هذا كل ما عليك فعله! يجب أن تسكون الن جاهصزا لضبط سامبا لمشاركة الملفا ت.
ب .الضبط
ملتتف ضتتبط ستتامبا الرئيستتي موجتتوةد فتتي /etc/samba/smb.conf؛ توجتتد كميتتةة كتتبيرةة متتن
ملحظظظظة :ل نتضتتتنمن جميتتتع الخيتتتارا ت المتتتتوفرة فتتتي ملتتتف الضتتتبط الفتراضتتتي؛ راجتتتع صتتتفحة التتتدليل للملتتتف
smb.confأو مجموعة ».«Samba HOWTO
workgroup = EXAMPLE
...
security = user
المعامتتل securityموجتتوةد فتتي أستتفل قستتم ] ،[globalويوجتتد قبلتته تعليتتق افتراضتتصيا؛ غديتتر
أي ص
ضا القيمة EXAMPLEإلى قيمة تلئم بيئتك.
أظنششئ قسصما جديتت صدا فتي ظنهايتتة الملتتف -أو أزل التعليتق عتن أحتد المثلتة -للمجلتد التذي تريتتد أن
تشاركه:
][share
comment = Ubuntu File Server Share
path = /srv/samba/share
browsable = yes
guest ok = yes
read only = no
create mask = 0755
:pathمسار المجلد الذي تريد مشاركته؛ يستتخدم هتذا المثتال /srv/samba/sharename •
،(FHSفإن /srvهو مسكان تخزين البياظنتا ت التتي ستنتخندم؛ ويمسكتن )تقنصيتا( أن تسكتون مشتتاركا ت
سامبا في أي مسكان في ظنظتتام الملفتا ت لطالمتتا كتتاظنت الذوظنتا ت صتحيحصة ،لسكتن اللتتزام بالمعتتايير
أمةر حسن.
:browsableيف دعل إمسكاظنية تصفح عملء ويندوز للمجلد باستخدام »مستسكشف الملفا ت«. •
:guest okيسمح للعملء بالتصال إلى المشاركة دون توفير كلمة مرور. •
:read onlyتحديتتد إذا متتا كتتاظنت المشتتاركة للقتتراءة فقتتط أم كتتان إذن السكتابتتة معطصيتتا؛ •
نيعطى إذن السكتابة فقط عندما تسكتتون القيمتتة هتتي ) noكمتتا هتتو الحتتال فتتي هتتذا المثتتال( إذا
ضشب نط سامبا ،فيجب إظنشاء المجلد وتغيير الذوظنا ت؛ وذلك بإدخال المر التي من الطرفية:
بعد أن ن
ملحظة :الخيار -pينخشبر mkdirبأن نينششئ كامل شجرة المجلد إن لم تسكن موجودصة.
تحذير :يسمح الضبط السابق بالوصول لي مستخدم في الشبسكة المحلية ،لضبط أكثر أماصظنا راجع القسم »تتتأمين
خادوم سامبا لتخديم الملفا ت والطباعة«.
تستتتطيع الن متتن عميتتل وينتتدوز أن تسكتتون قتتادصرا علتتى تصتتفح ختتادوم أوبنتتتو للملفتتا ت ورؤيتتة
مشتتاركة المجلتتد؛ إذا لتتم تظهتتر المشتتاركة عنتتد عميلتتك تلقائصيتتا ،فحتتاول أن تصتتل إلتتى الختتادوم عتتبر
عنوان IPالخاص به؛ مثصل \\192.168.1.1 ،في ظنافذة مستسكشف الملفا ت ،حاول إظنشتتاء مجلتتد متتن
وأعد تشغيل خدمة سامبا؛ عليك أن تتأكد أن المجلد الذي تريد مشاركته موجتتود فعصل ،والذوظنتتا ت
النمعطاة له صحيحة.
ملحظظظة :المشتتاركة النمستتماة »] «[shareوالمستتار /srv/samba/shareهمتتا مجتترد مثتتالين؛ عتتددل استتم ومستتار
المشتتاركة لملئمتتة بيئتتتك؛ فسكتترة جيتتدة هتتي تستتمية استتم المشتتاركة باستتم المجلتتد فتتي ظنظتتام الملفتتا ت؛ مثتتال آختتر
سيسكون مشاركصة باسم ] [qaبمسار ./srv/samba/qa
ج .مصادر
الشبسكة على خادوم أوبنتو؛ وبآليتتة شتتبيه تة بالليتتة فتتي قستم »ختتادوم ملفتتا ت ستامبا« ،سيضتبط هتتذا
القسم سامبا للسماح لي عميتتل فتتي الشتتبسكة المحليتتة باستتتخدام الطابعتتا ت المثبتتتة دون طلتتب استتم
لضبط أكثر أماصظنا ،راجع القسم التي »تأمين خادوم سامبا لتخديم الملفا ت والطباعة«.
ا .التثبيت
قبتتل تثتتبيت وضتتبط ستتامبا ،متتن الفضتتل أن يسكتتون لتتديك تثتتبيت CUPSيعمتتل جيتتصدا ،راجتتع
القسم »خادوم الطباعة «CUPSفي الفصل الرابع عشر لمزيتد من المعلوما ت.
أد ش
خل ما يلي في الطرفية لتثبيت حزمة :samba
ب .الضبط
workgroup = EXAMPLE
...
security = user
browsable = yes
guest ok = yes
سيشارك ضبط سامبا الفتراضي كل الطابعا ت المثبتة ،كل ما عليك فعله هتتو تثتتبيت الطابعتتة
ج .مصادر
هنالتتتتك مستتتتتويان أمنيتتتتان متتتتتوفران لتتتبروتوكول الشتتتتبسكة »ظنظتتتتام ملفتتتتا ت الظنتتتتترظنت الشتتتتائع«
الحمايتتة المستتتخدم فتتي ستتامبا يستتمح بمروظنتتة زائتتدة ،متتوفصرا أربتتع طتترق لستتتخدام الحمايتتة متتن
النمط :security=userيتطلب من العملء توفير اسم مستخدم وكلمتتة متترور للتصتتال •
إلتتى المشتتاركا ت؛ حستتابا ت المستتتخدمين فتتي ستتامبا منفصتتلة عتتن حستتابا ت مستتتخدمي
النمط :security=domainهذا النمط يستمح لختادوم ستامبا بتأن نيظهتر لعملء وينتدوز •
Directoryكعضو أصلي )(native member؛ راجع القستتم »دمتتج ستتامبا متع Active
«Directoryللتفاصيل.
النمط :security=serverهذا النمط نتتت شرك قبتتل أن يتمسكتتن ستتامبا متتن أن يصتتبح خادوصمتتا •
عضتت صوا ،وبستتبب بعتتض المشتتاكل المنيتتة ،فل يجتتب أن نيستتتخندم؛ راجتتع قستتم »Server
النمتتط :security=shareيستتمح لجميتتع العملء بالتصتتال إلتتى المشتتاركا ت دون تتتوفير •
يعتمد اختيارك لنمط الحماية بالبيئة التي تعمل فيها وما الذي تريد من خادوم سامبا أن نينجزه.
سيعيد هذا القسم ضبط خادوم سامبا لمشاركة الملفا ت والطباعة من القسمين السابقين ،كي
يتطلب الستيثاق.
أوصل ،ثدبت الحزمة libpam-smbpassالتي س تزامن مستتخدمي النظتام إلتى قاعتدة بياظنتا ت
مستخدمي سامبا:
ملحظظظة :لتتو اختتتر ت مهمتتة » «Samba Serverأثنتتاء التثتتبيت ،فستتتسكون الحزمتتة libpam-smbpassمثنبتتتصة
مسبصقا.
guest ok = no
في النهاية ،أعد تشغيل سامبا لسكي تأخذ العدادا ت الجديدة مفعولها:
سنيط نلب منك الن إدخال اسم مستخدم وكلمتتة متترور عنتتد التصتتال إلتتى المجلتتدا ت المشتتاركة
ملحظة :إذا اختر ت ربط قرص شبسكي للمشاركة ،فعليك تفعيل الحقتل » «Reconnect at Logon؛ ممتا يجعلته
يطلب اسم المستخدم وكلمة المرور مرصة واحدصة فقط ،على القل إلى أن نتغنير كلمة المرور.
هنالك ع ددة خيارا ت متوفرة لزيادة الحماية لمشاركا ت المجلدا ت المنفصلة؛ وباستخدام مثال
المجموعات
نتعدرف المجموعا ت تشسكيلصة من الحواسيب أو المستخدمين الذي يملسكتون وص وصل متسكترصرا إلتى
مورد شبسكي معين؛ على سبيل المثال ،إذا نعدرفت المجموعة qaوكاظنت تحتتوي علتى المستتتخدمين
و ،jeremyو vincent؛ و ن
ضشبط مورد شتبسكي معديتن للستماح بالوصتول إلتى المجموعتة ،qaوالتذي
بدوره سيمنح المستخدمين ،fredaو ،danikaو robوصوصل لسكن ليتتس jeremyأو vincent؛
ولمتتتا كتتتان المستتتتخدم danikaينتمتتتي إلتتتى كلتتتي المجموعتتتتين qaو support؛ فستتتيتمسكن متتتن
الوصول إلى الموارد التي نيس نمح لسكل المجموعتين بالوصول إليها ،بينما كل المستخدمين البتتاقيين
يبحتتتتث ستتتتامبا عتتتتن المجموعتتتتا ت فتتتتي النظتتتتام المحلتتتتي النمعنرفتتتتة فتتتتي /etc/groupليحتتتتدد
أي مستخدم ينتمي إلى أي مجموعة؛ للمزيد من المعلوما ت حول إضافة أو إزالة المستخدمين متتن
عنتتد تعريتتف المجموعتتا ت فتتي ملتتف ضتتبط ستتامبا/etc/samba/smb.conf ،؛ فتتإن الصتتيغة
المتعارف عليها هي بدء اسم المجموعة بالرمز »@« ؛ على سبيل المثال ،إذا أرد ت تعريف مجموعتتة
المجموعة .@sysadmin
أذونات الملف
نتع درف أذوظنا ت الملف الحقوق المحددة التي يملسكها حاسوب أو مستتتخدم علتتى مجلتتد أو ملتتف
أو مجموعتتتتة ملفتتتتا ت؛ يمسكتتتتن تعريتتتتف هتتتتذه الذوظنتتتتا ت بتعتتتتديل الملتتتتف /etc/samba/smb.conf
فقتتتتط« لمجموعتتتتة المستتتتتخدم qa؛ لسكنتتتتك تريتتتتد الستتتتماح بالسكتابتتتتة لمجموعتتتتة استتتتمها sysadmin
طريقتتة أختترى لضتتبط الذوظنتتا ت فتتي ستتامبا هتتي التصتتريح عتتن أذوظنتتا ت »إداريتتة« لمتتورد معديتتن
نمشتتا نرك؛ حيتتث يمسكتتن للمستتتخدمين التتذي يملسكتتون أذوظنتتا ت إداريتتة قتتراءة أو كتابتتة أو تعتتديل أديتتة
ن
ت إدارية خاصة عليه.
معلوما ت موجودة في المورد الذي أعطي ذاك المستخدم أذوظنا ت
ملحظة :لسكي تعمل » «read listو » ،«write listل يجب أن يسكون ظنمط حماية المستخدم في سامبا مضبوصطا
إلى .security = share
ن
ضشبط سامبا الن ليحدد أدية مجموعا ت تملك الوصول إلى مجلد نمشانرك ،يجتتب الن تحتتديث
ظنظام أذوظنا ت ليننسكس التقليدي ل يتتترابط جيتتصدا متع قتتوائم التحسكتتم بالوصتول فتتي وينتتدوز NT
ACLsفي خواديم أوبنتو موفرصة تحسكصما أفضل؛ على سبيل المثال ،للسماح باستخدام ACLsعلتتى
ملحظة :تفترض الوام ر الستابقة أن /srvعلتى قستتم مختلتف؛ إذا كتان ،/srvأو أي مستار آخ ر تختتار مشتاركته،
هو جزء من قسم الجذر ،/فربما عليك إعادة إقلع النظام.
ملحظة :المر setfaclالسابق يعطي أذوظنا ت التنفيذ إلى جميع الملفا ت في المجلد ،/srv/samba/shareربما
يسكون أو ل يسكون هذا ما تريده.
الن متتن عميتتل وينتتدوز ،يجتتب أن تلحتتظ تطتتبيق الذوظنتتا ت الجديتتدة للملتتف؛ راجتتع صتتفحا ت
يأتي أوبنتو مع وحدة الحماية ،AppArmorالذي يوفر تحسكصما مقديصدا للوصول؛ ملف الضبط
الفتراضتتتي الختتتاص ببرمجيتتتة AppArmorلخدمتتتة ستتتامبا يجتتتب أن يلئتتتم ضتتبطك ،للمزيتتتد متتتن
لتثبيت الحزمة:
افتراضتتصيا ،تسكتتون ملفتتا ت الضتتبط لعفريتتتي smbdو nmbdفتتي وضتتع »البنتتاء« ممتتا يستتمح
لخدمة سامبا بالعمل دون تعديل ملف الضبط ،وسنتسنجل الخطاء فقط؛ لجعل ملف ضتتبط smbd
في وضع »الجبار« ،ولسكي يعمل سامبا كما يجب ،فيجب أن نيعندل ملف الضبط لتضتمين المجلتدا ت
/srv/samba/share/ r,
/srv/samba/share/** rwkix,
يجب أن تسكون قادصرا على قتتراءة وكتابتتة وتنفيتتذ الملفتتا ت فتتي المجلتتد النمشتتانرك كالمعتتتاد ،لسكتتن
smbdيملك الن حق الوصول إلى الملفا ت والمجلتدا ت المضتبوطة فقتط؛ تأكتد متن إضتافة القيتود
د .مصادر
راجع أي ص
ضا صفحة ويسكي أوبنتو ».«Samba •
،(PDC) Controllerلسكتتن يمسكتتن أن نيضتتنبط ختتادوم ستتامبا ليظهتتر كمتحسكتتم متتن ظنمتتط Windows
NT4؛ ميزة لهذا الضبط هي قابلية جعل تصاريح المستتتخدمين والحواستيب مركزيتتة؛ يمسكتتن أي ص
ضتتا
أن نيستخدم سامبا عددة أظنواع من السند الخلفي ) (backendsلتخزين بياظنا ت المستخدم.
يشتترح هتتذا القستتم طريقتتة ضتتبط ستتامبا ليعمتتل كمتحسكتتم رئيستتي بالنطتتاق ) (PDCباستتتخدام
التي في الطرفية:
ثتتتم اضتتتبط ستتتامبا بتعتتتديل الملتتتف /etc/samba/smb.conf؛ حيتتتث يجتتتب أن نيضتتتنبط ظنمتتتط
workgroup = EXAMPLE
...
security = user
فتتي قستتم » «Domainsالمحتتاط بتعليقتتا ت ،أضتتف أو أزل التعليتتق عنمتتا يلتتي )نقدستتم آختتر ستتطر
ملحظة :إذا أرد ت عدم استخدام » «Roamin Profilesفاترك الخيتتارين » «logon homeو » «logon path
مسبونقين بتعليق.
بالنطاق.
:logon pathيضتتع ملتتف profileالختتاص بوينتتدوز فتتي مجلتتد المنتتزل للمستتتخدم؛ متتن •
:logon scriptتحديد السسكربت التتذي نيشتتنغل محلصيتتا بعتتد أن نيستدجل المستتتخدم دختتوله؛ •
:add machine scriptالستتسكربت التتذي نينششتتئ تلقائصيتتا الحستتاب Machine Trust •
ن
فتتي هتتذا المثتتال ،أظنششتتئت المجموعتتة machinesبتتالداة addgroup؛ راجتتع الفصتتل التاستتع
][homes
comment = Home Directories
browseable = no
read only = no
create mask = 0700
directory mask = 0700
valid users = %S
بعد أن نيضتتنبط كمتحسكتتم بالنطتتاق ،يجتتب أن نتضتتنبط الن المشتتاركة ] ،[netlogonأزل التعليتتق
][netlogon
comment = Network Logon Service
path = /srv/samba/netlogon
guest ok = yes
read only = yes
share modes = no
ملحظة :مسار مشاركة netlogonالفتراضي هو /home/samba/netlogon؛ لسكن وفصقتتا لمعيتتار هيسكلتتة ظنظتتام
الملفا ت ) ،(FHSإن /srvهو المسار الصحيح للبياظنا ت الموفرة من الخادوم.
بيئة العميل.
لمتتا كتتان حستتاب الجتتذر معطصل افتراضتت صيا ،ولسكتتي تنضتتم محطتتة عمتتل إلتتى النطتتاق ،فيجتتب أن
إذا لتتتم يحصتتتل المستتتتخدم علتتتى تصتتتاريح ستتتامبا بعتتتد؛ فيمسكنتتتك إضتتتافتها باستتتتخدام الداة
ضا ،يجتتب أن تسكتتون الحقتوق المعطتتاة إلتتى مجموعتة Domain Adminsنمحتنددصة للستماح
أي ص
لضافة ) machine scriptوالوظائف الدارية الخرى( بأن تعمل؛ ويمسكن فعل ذلك بالمر:
يجب أن تسكون الن قادصرا على ضم عملء ويندوز إلى النطتاق بنفتس الطريقتة التتي ينضتمون
بوجود متحسكتتم رئيستتي بالنطتتاق ) (PDCفتتي الشتتبسكة ،فمتتن الفضتتل وجتتود متحسكتتم احتيتتاطي
بالنطاق ) (BDCأي ص
ضا؛ مما يسمح باستيثاق العملء في حال أصبح المتحسكم الرئيسي غير متوفتر.
عندما تضبط سامبا كمتحسكم احتياطي ،فستحتاج إلى آليتة لمزامنتتة معلومتا ت الحستتابا ت متع
المتحسكتتم الرئيستتي؛ هنالتتك عتتددة طتترق لفعتتل ذلتتك تتضتتمن ،scpأو ،rsyncأو باستتتخدام LDAP
كسند passdbخلفي.
استتتخدام LDAPهتتو أكتتثر الطتترق مروظنتتصة لمزامنتتة معلومتتا ت الحستتابا ت ،لن كل المتحسكنميتتن
بالنطاق يستخدمان ظنفس المعلوما ت في الوقت الحقيقي؛ لسكتن إعتداد ختادوم LDAPهتو أمتةر زائتد
التعقيد لشبسكة تحتوي عدصدا قليصل من حسابا ت المستخدمين والحواسيب؛ راجع القسم »استتتخدام
سامبا مع «LDAPللتفاصيل.
workgroup = EXAMPLE
...
security = user
تأكد أن المستخدم لديه الحقوق لقراءة الملفا ت فتتي /var/lib/samba؛ علتتى ستتبيل المثتتال،
ملحظة :استبدل usernameباسم مستخدم صالح ،و pdcباسم PDCأو عنوان IPله.
يمسكنك اختبار عمل متحسكم النطاق الحتياطي بإيقاف عفريتتت ستتامبا فتتي ،PDCثتتم محاولتتة
أصبح PDCغير متوف تر ،فإن الوصول إلتتى قتترص المنتزل للمستتتخدم سيصتبح متعتتذصرا؛ لهتذا الستتبب
من الفضل ضبط logon homeليقبع في خادوم ملفا ت منفصل عن PDCو .BDC
ج .مصادر
ضبط خادوم سامبا ليسكون متحسكصما رئيسصيا واحتياطصيا بالنطاق على التوالي وبالترتيب.
استخدام آخر لخدمة سامبا هو الظندماج مع شتتبسكة وينتتدوز موجتتودة مستتبصقا ،وبعتتد أن يصتتبح
سامبا جزصءا من ظنطاق ،Active Directoryفيمسكن لخدمة سامبا توفير خدما ت مشاركة الملفا ت
workgroup = EXAMPLE
...
security = ads
realm = EXAMPLE.COM
...
idmap backend = lwopen
idmap uid = 50-9999999999
idmap gid = 50-9999999999
يجب أن تسكون الن قادصرا على الوصول إلى أي من مشتتاركا ت ستتامبا متتن عميتتل Windows؛
لسكتتن للتأكتتد متتن إعطتتاء مستتتخدمي أو مجموعتتا ت ADالملئمتتة الوصتول إلتتى مجلتتد مشتتترك؛ راجتتع
بعتتد أن أصتتبح ختتادوم ستتامبا جتتزصءا متتن ظنطتتاق Active Directoryفتستتتطيع الوصتول إلتتى
أد ش
خل المر التي في الطرفية لوصل مشاركة من ويندوز:
متتن الممسكتتن الوصتتول إلتتى مشتتاركا ت علتتى حواستتيب ليستتت جتتزصءا متتن ظنطتتاق ،ADلسكتتن يجتتب
لوصل مشاركة مجلد أثناء القلع ،أضف قيصدا في ملف /etc/fstab؛ على سبيل المثال:
طريقة أخترى لنستخ الملفتا ت متن ختادوم وينتدوز هتي استتخدام الداة smbclient؛ فلعترض
الخيار -cالنمستخ ندم في الوامتتر الستتابقة يستتمح لتتك بتنفيتتذ أمتتر smbclientمباشتترصة؛ وهتتذا
يفيد في كتابة الستسكربتا ت والعمليتا ت البستيطة علتى الملفتا ت؛ للتدخول إلتى شمنحتث smb: \>؛ مثتل
محث FTPحيث نتننفذ أوامر لمعالجة الملفا ت العادية والمجلدا ت ،فندفذ المر:
ج .مصادر
هنالتتتك عتتتددة طتتترق لنستتتخ تثتتتبيت أوبنتتتتو احتياط صيتتتا؛ أهتتتم متتتا هنالتتتك بالنستتتبة إلتتتى النستتتخ
الحتياطية هو تطوير »خطة ظنسخ احتياطي« تحتوي على ماذا سنيننسخ احتياطييا ،وأين سنيننسخ،
وكيف سنيسترنجع.
.1تسكربتات ششل
إحتتدى أبستتط الطتترق لنستتخ ظنظتتام احتياطييتتا هتتي استتتخدام »ستتسكربت ششتتل« ) (shell script؛
علتتى ستتبيل المثتتال ،يمسكتتن أن نيستتتخندم ستتسكربت لضتتبط أديتتة مجلتتدا ت يجتتب أن نتننستتخ احتياطييتتا،
ونتمتتنرر هتتذه المجلتتدا ت كوستتائط إلتتى الداة ،tarالتتتي سنتنششتتئ ملتتف أرشتتيف؛ ويمسكتتن أن نيننقتتل ذاك
الداة tarنتنششتتئ ملتتف أرشتتيف واحتتد متتن عتتددة ملفتتا ت أو مجلتتدا ت؛ يمسكتتن أي ص
ضتتا للداة tar
تمرير الملفا ت عبر أدوا ت ضغط ،وهذا سيؤدي بدوره إلى تقليل حجم ملف الرشيف.
سكربت ش.ا
شل بسيط
موصتول عتن بعتتد؛NFS لظنشاء ملف أرشتيف فتي ظنظتتام ملفتا تtar السسكربت التي يستخدم
#!/bin/sh
####################################
#
# Backup to NFS mount script.
#
####################################
# What to backup.
backup_files="/home /var/spool/mail /etc /root /boot /opt"
▲ | 502
دليل إدارة خواديم أوبنتو 14.04 - النسخ الحتياطي
:$backup_filesمتغيتتر يحتتتوي علتتى قائمتتة بأديتتة مجلتتدا ت تتتود أن تنستتخها احتياطييتتا؛ •
:$dayمتغيتتتر يحتتتتوي علتتتى استتتم اليتتتوم متتتن الستتتبوع )مثتتتل ،Mondayأو ،Tuesday •
أو ... Wednesdayإلخ(.؛ وسنيستخ ندم لظنشاء ملف أرشيف لسكتتل يتتوم متتن الستتبوع ،ممتتا
يعطي تاري صخا للنسخ الحتياطي هو سبعة أيام؛ هنالك طتترةق أختترى للقيتتام بتتذلك بمتتا فيهتتا
:$hostnameمتغير يحتوي على السم القصير للمضيف؛ استتخدام استم المضتيف فتي استم •
ملف الرشيف نيمدسكنك من وضع ملفا ت الرشيف اليومية من عددة خواديم في ظنفس المجلد.
:$destالوجهة التي سنيخ نزن فيها ملف الرشتتيف؛ يجتتب أن يسكتتون المجلتتد موجتتوصدا وفتتي •
هذه الحالة موصوصل قبل تنفيذ أمر النستتخ الحتيتتاطي؛ راجتتع قستتم »ظنظتتام ملفتتا ت الشتتبسكة
:status messagesالرسائل الختيارية التي سنتطنبع إلى الطرفية باستخدام المر .echo •
الخيار :fالخراج إلى ملف أرشيف؛ عتدا ذلتك ،سنيرشستل المتر tarمخرجتتاته إلتى •
:ls -lh $destعبتتارة اختياريتتة تطبتتع قائمتتة تفصتتيلية ) (-lبتنستتيق ستتهل القتتراءة للبشتتر •
) (-hلمحتويا ت مجلد الهدف ،هذا المر مفي ةد للتحقق السريع من الحجم التخزينتتي لملتتف
ل بسيةط عن سسكربت ششتل للنستتخ الحتيتتاطي؛ لسكتن هنالتتك العديتتد متن الخيتتارا ت التتتي
هذا مثا ة
يمسكن تضمينها في مثل هسكذا سسكربت ،راجع قسم »مصادر« في هتتذا الفصتتل للحصتتول علتتى روابتتط
التنفيذ من الطرافية
أبسط طريقة لتنفيذ سسكربت النسخ الحتياطي السابق هي ظنسخ ولصق محتويتتاته فتتي ملتتف
يمسكن استخدام الداة cronلتمتة تنفيذ السسكربت ،يسمح عفريت cronبتنفيذ السسكربتا ت
الحقل :mالدقيقة التي سنيننفذ عندها المر؛ تتراوح القيمة بين 0و .59 •
الحقل :hالساعة التي سنيننفذ عندها المر؛ تتراوح القيمة بين 0و .23 •
الحقل :monالشهر الذي سنيننفذ عنده السسكربت ،بين 1و .12 •
الحقل :dowيوم السبوع الذي سنيننفذ عنده المر ،تتراوح قيمته بين 0و 7؛ حيث يمسكن •
يجب استخدام المر crontab -eلضتتافة أو تعتتديل المتتدخل ت فتتي ملتتف crontab؛ أي ص
ضتتا
أد ش
خل المر التي في الطرفية لتنفيذ سسكربت backup.shالسابق باستخدام :cron
ملحظة :استخدام sudoمع المر crontab -eسنيعددل جدول المهام للمستخدم الجذر؛ هذا ضتترور ة
ي إذا كنتتت
تنسخ مجلدا ت احتياطصيا ل يملك وصوصل إليها عدا المستخدم الجذر.
ملحظة :يجب ظنسخ سسكربت backup.shإلى مجلتد /usr/local/binلسكتي يعمتل القيتد الستابق عمصل ص حيصحا؛
يمسكن أن يقبع السسكربت في أي مسكان في ظنظام الملفا ت ،وكل ما عليك فعله هتو تعتديل المستار المتذكور ف ي القيتد
أعله بما يلئم مسكان وجوده.
بعتتد إظنشتتاء الرشتتيف ،فمتتن المهتتم تجربتتته؛ يمسكتتن أن نيجتتنرب الرشتتيف بعتترض قائمتتة بالملفتتا ت
يتتوجه الخيتتار -Cالمتتر tarليستتتخرج الملفتتا ت إلتتى مجلتتد محتتدد؛ حيتتث سيستتتخرج المتتر الستتابق
الملف /etc/hostsإلى /tmp/etc/hosts؛ يعيد tarإظنشاء هيسكلة المجلدا ت التي تحتوي الملفا ت.
لحظ أي ص
ضا أن الشرطة المائلة /في أول المسار قد أزيلت من المسار النمستخنرج إليه.
cd /
sudo tar -xzvf /mnt/backup/host-Monday.tgz
د .مصادر
للمزيتتتتد متتتتن المعلومتتتتا ت حتتتتول كتابتتتتة ستتتتسكربتا ت الششتتتتل ،راجتتتتع » Advanced Bash- •
.«Scription Guide
صفحة ويسكيبيديا » «Bachup Rotation Schemeتحتوي علتتى معلومتا ت عتتن أظنمتتاط •
ت ستتطريةة أختترى
يستتتخدم ستتسكربت الششتتل الدانة tarلظنشتتاء الرشتتيف ،لسكتتن هنالتتك أدوا ة •
:ddجزء من حزمة ،coreutilsالذي هو أداة منخفضة المستوى تستطيع ظنسخ البياظنا ت •
:rsnapshotأداة لختتتذ snapshotلنظتتتام الملفتتتا ت نتستتتتخندم لظنشتتتاء ظنستتتخ متتتن كامتتتل •
ظناقشناها ها هنا.
.2دورة الرشيف
يسمح السسكربت المشتروح فتي القستم الول متن هتذا الفصتل بستبعة أرشتيفا ت مختلفتة فقتط؛
ربما يسكفي هذا لخادوم ل تتغير البياظنا ت التي فيه كثيصرا؛ أما لو كان يملك الخادوم كميتتصة كتتبيرصة متتن
سنع ددل في هذا القسم السسكربت السابق لتطبيق مخطط الجد-الب-البن )شهرصيا-أسبوعصيا-يومصيا(:
ستت نتأخذ ظنستتخة احتياطيتتة أستتبوعية فتتي يتتوم الستتبت ممتتا يمنحتتك أربتتع ظنستتخ احتياطيتتة •
أسبوعية في الشهر.
س نتأخذ ظنسخة احتياطية شهرية في أول كل شهر وتسكون التتدورة شتتهرين بنتتاصء إذا متتا كتتان •
:هذا هو السسكربت
#!/bin/bash
####################################
#
# Backup to NFS mount script with
# grandfather-father-son rotation.
#
####################################
# What to backup.
backup_files="/home /var/spool/mail /etc /root /boot /opt"
▲ | 510
دليل إدارة خواديم أوبنتو 14.04 - النسخ الحتياطي
يمسكن تنفيذ هذا السسكربت بنفس آلية التنفيذ في القسم السابق »تنفيذ السسكربت«.
عتتادة جيتتدة هتتي أختتذ وستتائط تخزيتتن النستتخ الحتياطيتتة ختتارج مسكتتان العمتتل تحستتصبا لوقتتوع
كارثة؛ في مثال سسكربت الششل؛ وسيط التخزين هو خادوم آخر يوفر مشاركة NFS؛ فتتي مثتتل هتتذه
الحالتتة ،لتتن يسكتتون خيتتاصرا عملصيتتا ظنقتتل ختتادوم NFSإلتتى موقتتع آختتر؛ لسكتتن بنتتاصء علتتى ستترعة التصتتال
خيار آخر هو ظنسخ ملف الرشيف على قترص ص لب ختارجي يمسكتن أن يؤختذ بعتد ذلتك ختارج
الموقتتتع؛ ولمتتتا كتتتاظنت أستتتعار القتتتراص الصتتتلبة الخارجيتتتة تستتتتمر بالظنخفتتتاض ،فربمتتتا يسكتتتون ملئصمتتتا
استخدام قرصين صلبين لسكتل مستتوى متن مستتويا ت الرشتفة؛ هتذا سيستمح بوج ود قترص صتلب
يمسكتتن استتتخدام شتتريط ممغنتتط ) (tapeبتتدصل متتن مشتتاركة ،NFSنيستتدهل استتتخدام الشتترطة
الممغنطة دورا ت الرشيفا ت؛ ويجعل أخذ وسائط التخزين خارج الموقع أمصرا هيصنا.
القستتم الختتاص باستتم الملتتف فتتي الستتسكربت لتتن يسكتتون ضتترورصيا عنتتد استتتخدام الشتترطة ،لن
البياظنا ت نترنسل مباشر صة إلى الشريط؛ هنالك حاجة لبعض الوامتر للتعتديل علتى الشترطة ،يتتم ذلتك
باستخدام الداة ،mtالتي نتستخندم للتحسكم بالشرطة الممغنطة وهي جزء من حزمة .cpio
#!/bin/bash
####################################
#
# Backup to tape drive script.
#
####################################
؛ استخدم مسار الجهاز الملئم لنظامك في/dev/st0 ممغنط هوSCSI اسم الجهاز الفتراضي لشريط:ملحظة
.السسكربت السابق
الستعادة من شريط ممغنط هتتي ظنفتس عمليتة الستتتعادة متتن ملتف؛ ببستتاطة أعتد نلتدف الشترط
إلتى/etc/hosts لستتعادة ملتف،واستتخدم مستتار الجهتاز بتدصل متن مستتار ملتف؛ علتى س بيل المثتال
:/tmp/etc/hosts
mt -f /dev/st0 rewind
tar -xzf /dev/st0 -C /tmp etc/hosts
▲ | 513
دليل إدارة خواديم أوبنتو 14.04 - النسخ الحتياطي
.3برنامج Bacula
إن Baculaهتتتو برظنامتتتج للنستتتخ الحتيتتتاطي يستتتمح لتتتك بالنستتتخ والستتتتعادة والتحقتتتق متتتن
البياظنا ت عبر الشبسكة؛ هنالك عملء Baculaلليننسكس وويندوز وماك OS X؛ مما يجعلته حيل متعتدد
يتألف Baculaمن عددة مسكوظنا ت وخدما ت نتستخندم لدارة أدية ملفا ت لنتننسخ وأماكن النسخ:
والتحقق والرشفة.
:Bacula Consoleبرظنامج يسمح بالتواصل مع Director؛ هنالك ثلثة إصتتدارا ت متتن •
:Console
:Bacula Fileونيعتتنرف أي ص
ضتتا بعميتتل Bacula؛ نيثنبتتت هتتذا التطتتبيق علتتى الجهتتزة التتتي •
:Bacula Storageالتطتتبيق التتذي يجتتري عمليتتة تخزيتتن واستتتعادة البياظنتتا ت متتن وإلتتى •
الوسائط التخزينية.
:Bacula Catalogمسؤول عن صياظنة فهارس الملفا ت وقواعد بياظنتا ت الحج وم لجميتع •
الملفتتا ت التتتي نظنشستنخت احتياطصيتتا ،ممتتا نيم دسكتتن تحديتتد المسكتتان والستتتعادة الستتريعة للملفتتا ت
و PostgreSQLو .SQLite
يمسكن أن نتشنغل هذه الخدما ت والتطبيقتتا ت فتتي عتددة ختواديم وعملء ،أو يمسكتتن تثبيتهتتا علتى
جهاز واحد إذا كاظنت ستأخذ ظنسخصة احتياطيصة لقرص واحد فقط.
ب .التثبيت
ملحظظظة :إذا كنتتت تستتتخدم MySQLأو PostgreSQLكقاعتتدة بياظنتتا ت ،فيجتتب أن تملتتك أوصل تلتتك الختتدما ت؛
إذ لن يثبتها .Bacula
س نتستتتأل أثنتتتاء التثتتتبيت عتتتن تتتتوفير تصتتتاريح لمتتتدير قاعتتتدة البياظنتتتا ت ومالتتتك قاعتتتدة بياظنتتتا ت
bacula؛ سيحتاج مدير قاعدة البياظنا ت إلى امتلك الذوظنا ت الملئمة لظنشاء قاعدة بياظنا ت؛ راجتتع
ج .الضبط
ملفتا ت ضتبط Baculaمنستقة بنتاصء علتى »متوارد« تشتتمل علتى »تعليمتا ت« محاطتة بقوستين
التعليمة password؛ على سبيل المثال ،كلمة مترور متورد Storageفتي ملتف /etc/bacula/ba
افتراضتتصيا ،تسكتتون هنالتتك مهمتتة ظنستتخ احتيتتاطي استتمها Client1لرشتتفة Bacula Catalog؛
إذا كنت تخطط لستخدام الختادوم للنستتخ الحتيتتاطي لكتثر متتن عميتتل ،فعليتك تعتديل استتم هتذه
المهمة إلى شيء أكثر وصصفا؛ لتغيير السم ،عددل الملف :/etc/bacula/bacula-dir.conf
#
# Define the main nightly save backup job
# By default, this job will back up to disk in
{ Job
"Name = "BackupServer
"JobDefs = "DefaultJob
"Write Bootstrap = "/var/lib/bacula/Client1.bsr
}
ملحظظظة :يغديتتر المثتتال الستتابق استتم المهمتتة إلتتى BackupServerممتتا يطتتابق استتم المضتتيف للختتادوم؛ استتتبدل
السكلمة BackupServerباسم المضيف الملئم عندك ،أو اسم أكثر وصصفا.
يمسكن استخدام Consoleلظنشاء طلبية لبرمجية Directorعن المهام؛ لسكتتن لسكتتي تستتتخدم
Consoleبمستتتخدم غيتتر جتتذر ،فيجتتب أن تضتتيف المستتتخدم لمجموعتتة bacula؛ وذلتتك بإدختتال
ملحظة :استبدل $usernameباسم المستخدم الفعلي؛ وإذا أضفت المستخدم الحالي إلى المجموعة ،فعليتتك
تسجيل الخروج ثم إعادة تسجيل الدخول مرصة أخرى لتأخذ الذوظنا ت الجديدة مفعولها.
يشتترح هتتذا القستتم كيتتف تأختتذ ظنستتخة احتياطيتتة لمجلتتدا ت محتتددة علتتى مضتتيف واحتتد إلتتى
{ Device
"Name = "Tape Drive
Device Type = tape
Media Type = DDS-4
Archive Device = /dev/st0
;Hardware end of medium = No
;AutomaticMount = yes # when device opened, read
it
;AlwaysOpen = Yes
;RemovableMedia = yes
;RandomAccess = no
"'Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert
}
هتتتتذا المثتتتتال يستتتتتخدم شتتتتريصطا ممغنصطتتتتا متتتتن ظنتتتتوع DDS-4؛ عتتتتددل قيمتتتتة Media Type
يمسكنك أي ص
ضا إزالة التعليق عن أحد المثلة في الملف.
الجديد:
يجب أن تسكون قيمة التعليمة Addressهي السم السكامتتل للنطتتاق ) (FQDNللختتادوم؛ عتتددل
./etc/bacula/bacula-sd.conf
أظنششئ FileSetجديد ،الذي سنيحددد المجلدا ت التي سنتأخذ ظنسخة احتياطية لها ،وذلك بإضافة:
ستعمل مهمة النسخ الحتياطي كل يوم في تمام الساعة 00:01أو 12:01 AM؛ تتوفر العديد
كل شريط ممغنتتط مستتخدم يجتب أن تسكتون ل ه لفتتة ) ،(Labelإذا لتم يسكتن للشتريط الحتالي
لفتتتةة ،فسيرستتل Baculaبريتتصدا إلسكتروظن صيتتا لجعلتتك تعلتتم بتتذلك؛ لضتتبط لفتتتة لشتتريط باستتتخدام
bconsole
label
أد ش
:خل اسم الحجم الجديد
. لنسخ جهازك المحلي احتياطصيا إلى شريط ممغنطBacula تهاظنينا! لقد ضبطت
مصادر.ه
أي ص
.«Bacula» راجع صفحة ويسكي أوبنتو،ضا •
▲ | 522
النظمة الوهمية
20
نيعت نمتتد علتتى الظنظمتتة الوهميتتة فتتي مختلتتف البيئتتا ت والحتتال ت؛ فلتتو كنتتت مطتتدوصرا فتتتوفر لتتك
الظنظمة الوهمية بيئة نمحت نوية حيث تستطيع أن تجري أي ظنتتوع متتن أظنتتواع التطتتوير دون القلتق متتن
تخريب بيئة العمل الرئيسية عندك .وإذا كنت مديصرا للظنظمة ،فتستطيع استخدام الظنظمة الوهمية
يمسكن أن تستفيد Xenمن تلك الملحقا ت عند توفرها ،لسكن يمسكن تشغيلها على عتتاد دون إضتافا ت
الظنظمتتتتتة الوهميتتتتتة؛ خيتتتتتار شتتتتتائع أختتتتتر هتتتتتو Qemuللعتتتتتتاد بتتتتتدون ملحقتتتتتا ت الظنظمتتتتتة الوهميتتتتتة
) .(virtualization extensions
.1مكتبة libvirt
نتستتتخندم المسكتبتتة libvirtللتعامتتل متتع مختلتتف تقنيتتا ت الظنظمتتة الوهميتتة؛ وقبتتل البتتدء متتع
،libvirtمتتن الفضتتل التحقتتق أدن عتتتادك يتتدعم الملحقتتا ت الضتترورية لعمتتل ،KVMوذلتتك بإدختتال
kvm-ok
ستظهر رسالة تع شلمك إن كان معالجك يدعم أو ل يدعم الملحقا ت العتادية للظنظمة الوهمية.
ملحظة :يسكون من الض روري فتي أغلتب الحواس يب التتي تتدعم معالجاتهتا الظنظمتة الوهميتة أن يفنعتل خيتاةر ف ي
BIOSلتمسكينها.
هنالك ع ددة طرق للسماح لنظام وهمي بالوصول إلى الشبسكة الخارجية؛ خيتتار ضتتبط التواصتتل
لتمسكين وصتول المضتيفين الختتارجيين إلتتى الختتدما ت مباشتترصة علتى الظنظمتتة الوهميتة ،فيجتب
استتتتتخدام ضتتتتبط »«bridge؛ هتتتتذا يستتتتمح للبطاقتتتتا ت الشتتتتبسكية الوهميتتتتة بالتصتتتتال إلتتتتى الشتتتتبسكة
الخارجية عبر البطاقة العتادية ،مما يجعلها تبدو كأظنها حواسيب عادية لبقية الشبسكة.
ب .التثبيت
أد ش
خل ما يلي في الطرفية لتثبيت الحزم اللزمة:
يجتتتتب إضتتتتافة المستتتتتخدم التتتتذي ستتتتيدير الل ت الوهميتتتتة إلتتتتى مجموعتتتتة libvirtdبعتتتتد تثتتتتبيت
libvirt-bin؛ وبهذا تعطي المستخدم وصو صل إلى خيارا ت الشبسكة المتقدمة؛ وذلك بإدخال المر التي:
ملحظة :إذا كان المستخدم الذي أضفته هو المستخدم الحالي ،فيجب عليك تسجيل الخروج ثتم التتدخول مترصة
أخرى لسكي تأخذ عضوية المجموعة الجديدة مفعولها.
أظنت الن جاهز لتثتبيت ظنظتتام تشتتغيل »ضتيف« )(Guest؛ طريقتتة تثتتبيت ظنظتتام التشتتغيل علتتى
الل ت الوهميتتة هتتي ظنفتتس طريقتتة تثتتبيته مباشتتر صة علتتى العتتتاد؛ أي أظنتتك إمتتا أن تحتتتاج إلتتى أتمتتتة
التثبيت ،أو إلى لوحة مفاتيح وشاشة موصولين إلى اللة الفيزيائية.
في حالة الل ت الوهمية ،تسكون الواجهة الرسومية ) (GUIمماثلة لستخدام لوحة مفاتيح وفتتأرة
فيزيائية؛ فبدصل من تثبيت واجهة رسومية ،يمسكن استخدام التطبيق virt-viewerللتصال إلتى اللتتة
هنالتتك عتتددة طتترق لتمتتتة تثتتبيت أوبنتتتو ،إذ يمسكتتن ذلتتك باستتتخدام preseedأو kickstart
طريقتتة أختترى لتثتتبيت أوبنتتتو علتتى آلتتة افتراضتتية هتتي استتتخدام ،ubuntu-vm-builder
يمسكن ضبط Libvirtمع ،Xenراجع صفحة مجتمع أوبنتو النمشار إلها في المصادر.
الداة virt-install
الخيار :-n web_develاسم اللة الوهمية ،سيسكون web_develفي هذا المثال. •
الخيار :-r 256تحديد مقدار الذاكرة التي ستستخدمها اللة الوهمية مقدصرا بالميغابايت. •
إلى مسار القرص الوهمي الذي يمسكن أن يسكتون ملصفتا أو قستصما أو حجصمتا وهمصيتا؛ فتي هتذا المثتال
وهمي ،يمسكن أن يسكون الملف إما ملف ISOأو مسار إلى جهاز قرص CD-ROMفي المضيف.
الخيار :--networkيوفر معلوما ت ح ول البطاقتة الشتبسكية لللتة الوهميتة؛ نيستتخندم هنتا •
،defaultو ن
ضشبط موديل البطاقة إلى .virtio
على جميع البطاقا ت الشبسكية للمضيف؛ إذ عموصما ل يسكون للخادوم واجهة رسومية ،لتتذلك
فيمسكتتن لحاستتوب آختتر علتتى الشتتبسكة المحليتتة ذي واجهتتتة رستتومية أن يتصتتل عتتبر VNC
لكمال التثبيت.
الخيار :--noautoconsoleيؤدي إلى عدم التصال تلقائصيا إلى طرفية اللة الوهمية. •
بعتتد تشتتغيل virt-installيمسكنتتك التصتتال إلتتى طرفيتتة اللتتة الوهميتتة إمتتا محلصيتتا باستتتخدام
الداة virt-clone
يمسكن استخدام virt-cloneلنسخ آلة وهمية إلى آلة أخرى؛ على سبيل المثال:
:-fالمستتار إلتى الملتتف ،أو القستم ،أو الحجتم المنطقتي التتذي سنيستتتخندم متتن اللتتة الوهميتة •
الجديدة.
صل به.
:--connectتحديد »المشرف« ) (hypervisorالذي سنيت ن •
يمسكن أي ص
ضا استخدام الخيار -dأو --debugلستسكشاف الخطاء مع .virt-clone
الداة virsh
هنالك عددة أدوا ت متوفرة لدارة الل ت الوهمية و libvirt؛ يمسكن أن نتستخندم الداة virsh
يمسكتتن حفتتظ »حالتتة« ) (stateاللتتة الوهميتتة إلتتى ملتتف لنتستتتعاد لحصقتتا؛ متتا يلتتي ستتوف يحفتتظ
ملحظظظظظظة :استتتتتبدل فتتتتي المثلتتتتتة الستتتتتابقة web_develمتتتتع استتتتتم اللتتتتتة الوهميتتتتتة الملئتتتتتم ،و web_devel-
022708.stateباسم ملف أكثر وصصفا.
تحتوي حزمة virt-managerعلى أداة رستومية لدارة الل ت الوهميتتة المحليتتة والبعيتتدة؛
أد ش
خل المر التي لتثبيتها:
libvirtمحلية:
virt-manager -c qemu:///system
virt-manager -c qemu+ssh://virtnode1.mydomain.com/system
ملحظظظظظظظظظظظظظة :يفتتتتتتتتتتتتترض المثتتتتتتتتتتتتال الستتتتتتتتتتتتابق أن إمسكاظنيتتتتتتتتتتتتة التصتتتتتتتتتتتتال عتتتتتتتتتتتتبر SSHبيتتتتتتتتتتتتن ظنظتتتتتتتتتتتتام الدارة
ضتتتتشبنطت مستتتتبصقا ،وتستتتتتخدم مفاتيتتتتح SSHللستتتتتيثاق؛ هنالتتتتك حاجتتتتة
و virtnode1.mydomain.comقتتتتد ن
لمفاتيح SSHلن المسكتبة libvirtنتر شسل محث كلمة المرور إلتى عمليتة أخترى .للتفاصتتيل عتن ضتبط ،SSHراجتع
»الفصل السادس :الدارة عن بعد«.
يستتمح التطتتبيق virt-viewerلتتك بالتصتتال إلتتى طرفيتتة اللتتة الوهميتتة لسكتتن virt-viewer
:virt-viewer
بعد تثبيت وتشغيل آلة وهمية ،يمسكنك التصال إلى طرفيتها بالمر:
\ virt-viewer -c qemu+ssh://virtnode1.mydomain.com/system
web_devel
ضبط وصول SSHإلى اللة الوهمية؛ راجع الفصل السادس لمزيتد من المعلوما ت.
ه .مصادر
موقتتتع » «Virtual Machine Managerفيتتته المزيتتتد متتتن المعلومتتتا ت حتتتول تطتتتوير •
.virt-manager
الوهمية في أوبنتو.
للمزيتتتد متتتن المعلومتتتا ت حتتول ،Xenبمتتتا فيهتتتا استتتخدام Xenمتتتع libvirt؛ رجتتتاصء راجتتع •
ا .مقدمة
لما كاظنت أوبنتو هي أكتثر ظنظتام تشتغيل مستتخدم فتي العتالم فتي أغلبيتة المنصتا ت الستحابية،
فأصبح متن الضتتروري تتوفير صتور ستحابية مستتقرة وآمنتتة؛ وفتتي إصتدارة ،12.04تحستتن استتتعمال
الصتتتور الستتتحابية ختتتارج البنيتتتة التحتيتتتة للستتتحابة؛ وأصتتتبح الن بالمسكتتتان استتتتخدام هتتتذه الصتتتور
بتتدصءا متتن ،14.04أصتتبح هنالتتك أداة هتتي uvtoolلتستتهيل مهمتتة توليتتد الل ت الوهميتتة )(VM
باستتتتخدام الصتتتور الستتتحابية؛ تتتتوفر الداة uvtoolآليتتتصة للمزامنتتتة بيتتتن الصتتتور الستتتحابية محلصيتتتا
حزم Uvtool
uvtool
uvtool-libvirt
uvt-simplestreams-libvirt •
uvt-kvm •
هذه إحدى التبسيطا ت التي جاء ت بها الداة uvtool؛ حيث أظنها تعلم أين يمسكن العثور علتتى
الصور السحابية ،لذلك ستحتاج إلى أم تر واحتد للحص ول علتى صتورة س حابية؛ علتى س بيل المثتال،
بعد الفترة الضرورية من الزمن لتنزيل كل الصور من الظنترظنت ،سيسكون لديك مجموعة كاملتتة
من الصور السحابية مخزظنةة محلصيا؛ ظندفذ المر التي لرؤية الصور التي نظندزنلت:
uvt-simplestreams-libvirt query
)release=oneiric arch=amd64 label=release (20130509
)release=precise arch=amd64 label=release (20140227
)release=quantal arch=amd64 label=release (20140302
)release=saucy arch=amd64 label=release (20140226
)release=trusty arch=amd64 label=beta1 (20140226.1
وفتتتي حتتتال أرد ت مزامنتتتة صتتتورة ستتتحابية واحتتتد محتتتددة ،فيمسكنتتتك استتتتخدام النمردشتتتحا ت
فمتتن الضتتروري أن يسكتتون لتتديك،لسكي تسكون قادصرا على التصال باللتتة الوهميتتة بعتتد أن نتنششتتئها
فيمسكنتتك إظنشتتاء واحتتد، صتتالح متتتوفر لمستتتخدم أوبنتتتو؛ إذا لتتم يسكتتن لبيئتتتك مفتتتاحSSH مفتتتاح
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ubuntu/.ssh/id_rsa.
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub.
The key fingerprint is:
4d:ba:5d:57:c9:49:ef:b5:ab:71:14:56:6e:2b:ad:9b ubuntu@TrustyS
The key's randomart image is:
+--[ RSA 2048]----+
| ..|
| o.=|
| . **|
| + o+=|
| S . ...=.|
| o . .+ .|
| . . o o |
| * |
| E |
+-----------------+
كتل متا عليتك فعل ه هتو، ففتي أبستط شتسكل، هو أمتر ه ديتنuvtool إظنشاء آلة وهمية باستخدام
:تنفيذ المر
▲ | 536
دليل إدارة خواديم أوبنتو 14.04 - الظنظمة الوهمية
وهتتذا متتا سيننششتتئ آلتتصة وهميتتصة باستتم firsttestباستتتخدام الصتتورة الستتحابية لنستتخة التتدعم
الطويل الحالية ) (LTSالمتوفرة محلصيا ،إذا أرد ت تحديد إصتتدارة لنتستتخدم لظنشتتاء اللتة الوهميتتة؛
يمسكن استخدام المر uvt-kvm wait NAMEللظنتظار حتى اكتمال إظنشاء اللة الوهمية:
بعد إكمال إظنشاء اللة الوهمية ،يمسكنك التصال إليها عبر :SSH
وبالمناسبة ،الخيتتار --insecureمطلتوب ،لتذلك عليتك استتتخدام هتذه الطريقتتة للتصتال إلتتى
الل ت الوهمية إذا كنت تثق بأمان البنية التحتية لشبسكتك تمام الثقة.
يمسكنك أي ص
IP اعتياديتتة باستتعمال عنتوانssh ضا التصال إلى اللة الوهمية باستخدام جلسة
uvt-kvm ip secondtest
192.168.123.242
ssh -i ~/.ssh/id_rsa ubuntu@192.168.123.242
The authenticity of host '192.168.123.242 (192.168.123.242)'
can't be established.
ECDSA key fingerprint is
3a:12:08:37:79:24:2f:58:aa:62:d3:9d:c0:99:66:8a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.123.242' (ECDSA) to the
list of known hosts.
Welcome to Ubuntu Trusty Tahr (development branch) (GNU/Linux
3.13.0-12-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information disabled due to load higher than 1.0
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
Last login: Fri Mar 21 13:25:56 2014 from 192.168.123.1
:يمسكن الحصول على قائمة بالل ت الوهمية التي تعمل على ظنظامك باستخدام المر
uvt-kvm list
secondtest
▲ | 538
دليل إدارة خواديم أوبنتو 14.04 - الظنظمة الوهمية
يمسكن أن نتستخ ندم الخيارا ت التية لتغيير بعض خصائص الذاكرة الوهمية التي نتنششئها:
الخيار :--diskمقدار قرص النظام بواحدة الغيغابايت ،القيمة الفتراضية هي .8 •
الجذر في أول مرة نتقشلع فيها اللة الوهمية ،لسكنه لن نيشنغل بعد ذلك قط.
ج .مصادر
إذا كنتت مهتصمتا بتعلتم المزيتد أو كتتاظنت لتديك أستئلة أو اقتراحتا ت ،فيمسكنتك مناقشتة فريتق •
.3تسحابة أوبنتو
الحوستتبة الستتحابية ) (Cloud Computingهتتي ظنمتتط حوستتبة تستتمح بحجتتز أي متتورد متتن
مجموعتتة واستتعة متتن أظنتتواع المتتوارد وقتتت الحاجتتة؛ هتتذه المتتوارد مثتتل التخزيتتن أو قتتوة المعالجتتة
أي مسكتتان فتتي أي وقتتت .نيتتد نفع ثمتتن تلتتك الختتدما ت علتتى أستتاس التتوقت المستتتهلك مثتتل الختتدما ت
العامتتتة كالسكهربتتتاء والميتتتاه وشتتتبسكة الهتتتاتف؛ البنيتتتة التحتيتتتة لستتتحابة أوبنتتتتو تستتتتخدم البرمجيتتتة
مفتوحة المصدر OpenStackلبناء حوسبة سحابية قابلة للتوسع للنسحب العامة والخاصة.
بسبب التواتر العالي لتطوير هذه البرمجية المعقدة ،فإظننا نظنحيل القتارئ إلتى التوثيتق الرستمي
ب .مصادر
بطريقتتة chrootمحدستتنة بتتدصل متتن كوظنهتتا تقنيتتة أظنظمتتة وهميتتة كاملتتة مثتتل Qemuأو VMware؛
لن كلهما ل يحاكي العتاد ولن الحاويا ت تشارك ظنفس ظنظام التشغيل للمضيف؛ لذلك من الفضتتل
مقارظنتتة الحاويتتا ت إلتتى »ظنطاقتتا ت ستتولرس« ) (Solaris zonesأو »ستتجون .(BSD jails) «BSD
إن Linux-vserverو OpenVZهمتتا ظنستتختان متتن الحاويتتا ت لنظتتام ليننسكتتس مطورتتتان بشتتسكل
منفصتتل عتتن بعضتتهما؛ فتتي الواقتتع ،ظهتتر ت الحاويتتا ت ظنتيجتتصة للعمتتل علتتى تطتتوير وظتتائف vserver
و .OpenVZ
النواة؛ تستمح Libvirtباستتتخدام الحاويتا ت عتتبر محتترك LXCبالتصتتال إلتى » ،«lxc:///قتتد يسكتون
هتتذا أمتتصرا ملئصمتتا لظنهتتا تملتتك ظنفتتس طريقتتة الستتتخدام الموجتتودة فتتي المحركتتا ت الختترى .النستتخة
الخرى النمسماة ببساطة » «LXCهي غير متوافقة مع libvirt؛ لسكنها أكثر مروظنصة بتتأدوا ت أكتتثر فتتي
سنشتترح فتتي هتتذا السكتتتاب حزمتتة lxcشتترصحا رئيستتصيا ،حيتتث أن استتتخدام libvirt-lxcليتتس
مستحسصنا لظنه يفتقر إلى حماية AppArmorلحاويا ت libvirt-lxc؛ وستسكون أستماء الحاويتا ت
ا .التثبيت
ستتتتنحتاج إلتتتتى تنزيتتتتل العتماديتتتتا ت المطلوبتتتتة والمستحستتتتنة ،وضتتتتبط جستتتتر الشتتتتبسكة لسكتتتتي
يستتتخدمه الحاويتتا ت؛ إذا أرد ت استتتخدام حاويتتا ت دون امتيتتازا ت ،فربمتتا تحتتتاج إلتتى أن تتأكتتد أن
يمسكتتن أن ظنستتتخدم LXCبطريقتتتين مختلفتتتين ،الولتتى بامتيتتازا ت عتتبر تنفيتتذ أوامتتر lxcبحستتاب
المستتتخدم الجتتذر؛ أو دون امتيتتازا ت بتنفيتتذ أوامتتر lxcبحستتاب أي مستتتخدم عتتدا الجتتذر )فتتي الواقتتع،
يمسكتتتن تشتتتغيل حاويتتتا ت دون امتيتتتازا ت بحستتتاب الجتتتذر ،لسكننتتتا لتتتن ظنشتتترح ذلتتتك هاهنتتتا(؛ الحاويتتتا ت دون
امتيازا ت محتدودة أكتثر ،فمث صل لن تستتطيع إظنشتاء عقتد أجهتزة أو تصتل أظنظمتة ملفتا ت كتليتة؛ لسكنهتا أقتل
خطصرا للمضيف ،حيث يسكون الجذر في الحاوية مربوصطا بحساب غير جذر في المضيف.
الذي سيسألك تفاعلصيا عن ظنوع جذر ظنظام الملفا ت لسكي نيننزل ،وخصو ص
صتتا التوزيعتتة والصتتدارة
والمعماريتتة؛ يمسكنتتك تحديتتد هتتذه القيتتم فتتي ستتطر الوامتتر لظنشتتاء حاويتتة دون الجابتتة علتتى تلتتك
السئلة تفاعلصيا:
أو
يمسكنك الن استخدام lxc-lsلعرض قائمة بالحاويتتا ت ،و lxc-infoللحصتتول علتتى معلومتتا ت
مفصلة عن حاوية ،و lxc-startلبدء و lxc-stopليقاف الحاوية؛ بينمتتا يستتمح لتك المتتران lxc-
attachو lxc-consoleبالدخول إلى حاويتة إذا لتم يسكتن التصتال إليهتا عتبر SSHمتاصحتتا؛ والمتر
lxc-destoryيحتتذف الحاويتتة ،بمتتا فتتي ذلتتك جتتذر ظنظتتام الملفتتا ت؛ راجتتع صتتفحا ت التتدليل للوامتتر
تستتمح الحاويتتا ت دون امتيتتازا ت للمستتتخدمين بإظنشتتاء وإدارة الحاويتتا ت دون الحصتول علتتى
امتيتتتتازا ت الجتتتتذر؛ أستتتتاس هتتتتذه الميتتتتزة هتتتتو متتتتا يستتتتمى »مجتتتتال ت أستتتتماء المستتتتتخدم« ) user
،(namespacesإن مجتتال ت أستتماء المستتتخدم هيسكليتتةة ،حيتتث تسكتتون المهتتام ذا ت امتيتتازا ت فتتي
مجال السماء الب قادرة على ربط معدرفاتها إلى مجال ت أسماء البناء؛ افتراضصيا ،كل مهمتتة علتتى
المضتتيف تعمتتل فتتي مجتتال أستتماء مبتتدئي ) ،(initial user namespaceحيتتث المجتتال السكامتتل
لمعرفاتهتتا مربتتوةط متتع المجتتال السكامتتل؛ يمسكتتن مشتتاهدة ذلتتك بتتالنظر إلتتى /proc/self/uid_map
الستتماء المبتتدئي؛ وفتتي أوبنتتتو ،14.04المستتتخدمون الجتتدد التتذين نينشتتؤون يسكتتون لهتتم افتراضتتصيا
مجتتال متتن معرفتتا ت المستتتخدم؛ هتتذه القائمتتة متتن المعرفتتا ت النمستتنندة يمسكتتن أن نتشتتاهد فتتي الملفيتتن
/etc/subuidو /etc/subgid؛ اظنظتتر إلتتى صتتفحا ت التتدليل الموافقتتة لهتتم للمزيتتد متتن المعلومتتا ت؛
ن
إذا أظن ششتتئ المستتتخدم فتتي إصتتدارة قديمتتة ،فيمسكنتتك منحتته مجتتاصل متتن المعرفتتا ت باستتتخدام
،usermodكما يلي:
اللتتتذان نيستتتتخدمان داخلصيتتتا بواستتتطة lxcلربتتتط subuidsو subgidsمتتتن المضتتتيف إلتتتى حاويتتتة دون
امتيازا ت؛ ويتأكدان من أن المستخدم يربط المعرفا ت المصنرح بها فقط من ضبط المضيف.
لظنشاء حاويا ت دون امتيازا ت ،فإن هنالك خطوا ت أولية ضتترورية؛ حيتث تحتتاج إلتتى إظنشتتاء
ملتتف ضتتبط حاويتتة افتراضتتي ،نمحتتدد صدا ربتتط المعرفتتا ت التتذي تريتتده وضتتبط الشتتبسكة ،بالضتتافة إلتتى
ضتتبط المضتتيف للستتماح لمستتتخدم دون امتيتتازا ت بالرتبتتاط إلتتى شتتبسكة المضتتيف؛ يفتتترض المثتتال
mkdir -p ~/.config/lxc
\ > "echo "lxc.id_map = u 0 100000 65536
~/.config/lxc/default.conf
\ >> "echo "lxc.id_map = g 0 100000 65536
~/.config/lxc/default.conf
echo "lxc.network.type = veth" >> ~/.config/lxc/default.conf
echo "lxc.network.link = lxcbr0" >> ~/.config/lxc/default.conf
echo "$USER veth lxcbr0 2" | sudo tee -a /etc/lxc/lxc-usernet
بعد ذلك ،يمسكنك إظنشاء حاويا ت دون امتيازا ت بنفس طريقة إظنشاء حاويا ت بامتيتتازا ت ،لسكتتن
التشعب
لسكتي ظنشتدغل حاويتا ت داختل حاويتا ت -المتر التذي نيشتار إليته بتشتدعب الحاويتا ت -فتإن ستطرين
lxc.mount.auto = cgroup
lxc.aa_profile = lxc-container-default-with-nesting
سيسبب السطر الول بدمج مقبس مدير مجموعا ت التحسكم في الحاويتتة ،لتذلك ستيسكون lxc
داختتل الحاويتتة قتتادصرا علتتى إدارة مجموعتتا ت التحسكتتم للحاويتتا ت المتشتتعبة الخاصتتة بتته؛ أمتتا الستتطر
الثتتتاظني فيستتتبب تشتتتغيل الحاويتتتة بوضتتتع أكتتتثر ستتتماحيصة بالنستتتبة إلتتتى ،AppArmorممتتتا يستتتمح
للحاوية بتإجراء عمليتا ت الوصتل اللزمتة لبتدء تشتغيل الحاويتا ت؛ لحتتظ أن سياستة AppArmor
التتتتي ستتتنتطنبق أقتتتل أم صنتتتا متتتن السياستتتة العاديتتتة أو سياستتتة حاويتتتة دون امتيتتتازا ت؛ راجتتتع القستتتم
نتستتتخندم ملفتتا ت الضتتبط التيتتة متتن LXC؛ للستتتخدام ذو المتيتتازا ت ،فإظنهتتا ستتتتواجد فتتي
lxc.confنيحتتددد اختيارصيتتا القيتتم البديلتتة لمختلتتف خيتتارا ت ضتتبط ،lxcبمتتا فيهتتا ،lxcpath
والضتتتتبط الفتراضتتتتي ،ومجموعتتتتا ت التحسكتتتتم التتتتتي سنتستتتتتخندم ،وظنمتتتتط إظنشتتتتاء مجموعتتتتة تحسكتتتتم،
default.confيحتتدد الضتتبط التتذي يجتتب أن يحتتتويه كتتل ملتتف ضتتبط للحاويتتا ت النمنشتتأة
حديصثا؛ يحتوي هذا الملف عاد صة على القل على قسم للشبسكة؛ ويحتتتوي علتتى قستتم لربتتط المعرفتتا ت
مملوكة من المضيف.
افتراضتتتتتت صيا ،تقبتتتتتتع الحاويتتتتتتا ت فتتتتتتي مجلتتتتتتد /var/lib/lxcبالنستتتتتتبة للمستتتتتتتخدم الجتتتتتتذر ،و
المعامل ».«-P|--lxcpath
ضبط الشبكة
افتراضتتتصيا ،نينششتتتئ LXCمجتتتال أستتتماء شتتتبسكي ختتتاص لسكتتتل حاويتتتة ،التتتذي يتضتتتمن مجموعتتتة
التصتتال الشتتبسكي متتن الطبقتتة الثاظنيتتة ) ،(layer 2تتصتتل الحاويتتا ت عتتادصة إلتتى العتتالم الختتارجي إمتتا
بالحصتتول علتتى بطاقتتة شتتبسكية فيزيائيتتة ،أو عتتبر ظنفتتق vethنيمتتنرر إلتتى الحاويتتة؛ يننششتتئ LXCجستتر
،NATالتتتتذي هتتتتو lxcbr0عنتتتتد إقلع المضتتتتيف؛ والحاويتتتتا ت النمننشتتتتأة باستتتتتخدام ملتتتتف الضتتتتبط
الفتراضتتي ستتيسكون لهتتا بطاقتتة شتتبسكية vethتسكتتون ظنهايتهتتا موصتتولةة إلتتى الجستتر ،lxcbr0يمسكتتن
متتن الممسكتتن إظنشتتاء حاويتتا ت دون مجتتال أستتماء شتتبسكي ختتاص ،ففتتي هتتذه الحالتتة ،ستحصتتل
صتتا
الحاويتتة علتتى وصتتول إلتتى شتتبسكة المضتتيف مثتتل أي تطتتبيق آختتر ،لحتتظ أظنتته هتتذا خطيتتر خصو ص
إذا كتتاظنت الحاويتتة نتشتتدغل توزيعتتة تستتتخدم ،upstartمثتتل أوبنتتتو ،لن البرامتتج التتتي »تتحتتدث«
المضيف!
لمنتتح الحاويتتا ت فتتي lxcbr0عنتتوان IPثتتابت بنتتاصء علتتى استتم المضتتيف ،فيمسكنتتك كتابتتة هتتذه
dhcp-host=lxcmail,10.0.3.100
dhcp-host=ttrss,10.0.3.101
إذا كتتتان متتتن المطلتتتوب أن نيستتت نمح بالوصتتتول إلتتتى الحاويتتتة متتتن الختتتارج ،فهنالتتتك عتتتددة طتتترق
لللتفاف على ذلك ،إحداها هي استخدام iptablesلتمرير منافذ المضيف إلى الحاوية ،فمثصل:
طريقة أخرى هي إظنشاء جسر إلى إلى البطاقة الشبسكية للمضيف )راجع »الفصل الرابع -الشتتبسكا ت«
لمزيتد من المعلوما ت(؛ ثم حدد جسر المضيف في ملف ضبط الحاوية بدصل من ،lxcbr0فمثصل:
lxc.network.type = veth
lxc.network.link = br0
فتتي النهايتتة ،يمسكنتتك ستتؤال LXCليستتتخدم macvlanكبطاقتتة شتتبسكية للحاويتتة؛ لحتتظ أن
لهذه الطريقة حدود واعتما صدا على الضبط قد ل تتمسكن الحاوية من »التحدث« إلى المضيف ظنفستته،
هنالتتتك عتتتددة طتتترق لتحديتتتد عنتتتوان IPللحاويتتتة ،فتتتأوصل ،يمسكنتتتك استتتتخدام lxc-ls –fancy
التتذي ستتيطبع عنتتاوين IPلجميتتع الحاويتتا ت التتتي تعمتتل؛ أو lxc-info -i -H -n C1التتذي ستتيطبع
عنتتتتوان IPللحاويتتتتة C1؛ إذا كتتتتان dnsmasqمثب صتتتتتا علتتتتى المضتتتتيف ،فيمسكنتتتتك إضتتتتافة قيتتتتد إلتتتتى
/etc/dnsmasq.confكما يلي:
server=/lxc/10.0.3.1
ping C1
ssh C1
للمزيتتتد متتتن المعلومتتتا ت ،راجتتتع صتتتفحة دليتتتل lxc.confومثتتتال ضتتتبط الشتتتبسكة فتتتي المستتتار
./usr/share/doc/lxc/examples/
المهمتتتتة :/etc/init/lxc-net.confهتتتتي مهمتتتتة اختياريتتتتة تعمتتتتل فقتتتتط إذا نحتتتتندد الملتتتتف •
افتراضتتصيا( مضتتبوطة إلتتى trueفتتي /etc/default/lxc؛ حيتتث تبحتتث عتتتن القيتتود فتتي
المجلد /etc/lxc/auto/حيث توجتتد وصتل ت رمزيتتة إلتى ملفتا ت الضتبط للحاويتا ت التتتي
ه .التخزين
يتتدعم LXCعتت ددة أظنمتتاط متتن التخزيتتن لجتتذر ظنظتتام ملفتتا ت الحاويتتة؛ افتراضتتصيا يسكتتون مجلتتصدا
بستتي صطا ،لظنتته ل يتطلتتب أي ضتتبط مستتبق للمضتتيف طالمتتا أن ظنظتتام الملفتتا ت فيتته مستتاحة تخزينيتتة
دون امتيتتتازا ت؛ جتتتذر ظنظتتتام الملفتتتا ت للستتتتخدام متتتع امتيتتتازا ت موجتتتود افتراضتتتصيا فتتتي المستتتار
، /var/lib/lxc/C1/rootfsبينما جذر ظنظام الملفا ت للحاويتتا ت التتتي تعمتتل دون امتيتتازا ت يسكتون
.$lxcpath/C1/rootfs
حاوية تعتمد على تخزين btrfsتبدو عموصما مثل حاوية تعتمد على التخزيتتن فتتي مجلتتد ،ويسكتتون
جذر ظنظام الملفا ت في ظنفس المسكان؛ لسكن جذر ظنظام الملفا ت يحتوي على حجتتم فرعتتي )،(subvolume
جتذر ظنظتام الملفتا ت لحاويتة تستتخدم LVMيمسكتن أن يسكتون أي حجتم منطقتي منفصتل؛ استم
مجموعتتة الحجتتوم الفتراضتتي يمسكتتن أن نيحتتندد فتتي ملتتف lxc.conf؛ ونيضتتنبط ظنتتوع وحجتتم ظنظتتام
جذر ظنظام الملفا ت لحاوية تستخدم zfsهو ظنظام ملفا ت zfsمنفصتتل ،وموصتتول فتتي المسكتتان
المزيتد متن المعلومتا ت حتول إظنشتاء الحاويتتا ت بمختلتتف طرائتق التخزيتن يمسكتن أن توجتد فتتي
و .القوالب
يتطلب إظنشاء حاوية عادصة إظنشاء جذر ظنظام ملفتتا ت للحاويتتة؛ يفتوض المتتر lxc-createهتتذا
العمل إلتتى القتوالب ) ،(templatesالتتتي تسكتتون عتتادصة خاصتتة بالتوزيعتتة؛ قتوالب lxcالتتي تتأتي متع
إظنشاء صور للتوزيعتا ت فتي أغلتب الحتال ت يتطلتب القتدرة علتى إظنشتاء عقتد أجهتزة ،ويتطلتب
ذلك أدوا ت التي ليست متوفرة في بقية التوزيعا ت ،وعادصة يستغرق هذا المر وقصتا طتتويصل؛ فلتتذلك
يتتأتي lxcبقتتالب ،downloadالتتذي ينتتزل صتتور مبنيتتة مستتبصقا للحاويتتا ت متتن ختتادوم lxcمركتتزي؛
أهم حالة استخدام هي السماح بإظنشاء بستتيط لحاويتتا ت دون امتيتتازا ت بواستتطة مستتتخدمين غيتتر
عند تشغيل ،lxc-createفجميع الخيارا ت التي تتتأتي بعتد » «--نتمتنرر إلتى القتالب؛ ففتي المتر
--releaseإلى القالب:
يمسكنتتك الحصتتول علتتى مستتاعدة حتتول الخيتتارا ت المدعومتتة فتتي حاويتتة معينتتة بتمريتتر الخيتتار
--helpواستتم القتتالب إلتتى المتتر lxc-create؛ فعلتتى ستتبيل المثتتال ،للحصتتول علتتى مستتاعدة حتتول
تنزيل قالب:
البدء التلقائي
يدعم LXCتعليم الحاويا ت لسكي نتشنغل عند إقلع النظام؛ ففي الصدارا ت قبل أوبنتو ،14.04
كان يتم ذلك باستخدام وصل ت رمزيتتة فتي المجلتد /etc/lxc/auto؛ وبتدصءا متن أوبنتتو ،14.04يتتم
lxc.start.auto = 1
lxc.start.delay = 5
يعنتتتي أن علتتتى الحاويتتتة البتتتدء عنتتتد إقلع النظتتتام ويجتتتب الظنتظتتتار 5ثتتتواظني قبتتتل بتتتدء تشتتتغيل
يأتي LXCمتع ملتف ضتبط AppArmorمهمتتته هتتي حمايتتة المضتتيف متن الستاءة العرضتتية
للمتيتتازا ت داختتل الحاويتتة؛ علتتى ستتبيل المثتتال ،لتتن تسكتتون الحاويتتة قتتادرصة علتتى السكتابتتة إلتتى ملتتف
الملتتف usr.bin.lxc-startيتتدخل حيتتز التنفيتتذ عنتتد تشتتغيل lxc-start؛ يمنتتع ملتتف الضتتبط
lxc-startمن وصل أظنظمة ملفا ت جديدة خارج ظنظام ملفا ت الجذر الختتاص بالحاويتتة؛ قبتتل تنفيتتذ
initللحاويتتة ،فتتإن LXCيطلتتب تبتتديصل لملتتف ضتتبط الحاويتتة؛ افتراضتتصيا .هتتذا الضتتبط هتو السياستتة
يمنع هذا الضبط الحاوية من الوصول إلى مسارا ت خطرة ،ومن وصل أغلبية أظنظمة الملفا ت.
ل يمسكن تقييد البرامج في الحاوية أكثر من ذلك؛ فعلى سبيل المثتال ،ختادوم MySQLالتذي
يعمل ضمن ظنطاق الحاوية ) مما يحمي المضيف( ل يمسكن أن يدخل في ظنطاق ملف ضتتبط MySQL
)لحماية الحاوية(.
ستسكون مقيدصة.
إذا وجتتتد ت أن lxc-startل يعمتتتل بستتتبب تقييتتتد فتتتي الوصتتتول متتتن سياستتتة ،AppArmor
هذا سيجعل lxc-startيعمل دون قيود ،لسكن ستبقى الحدود موجتتودصة للحاويتتة ظنفستتها ،وإذا
أرد ت إزالة التقييد عن الحاوية ،فعليك بالضافة إلى تعطيل ملف الضبط usr.bin.lxc-startأن
تضيف السطر:
lxc.aa_profile = unconfined
إلى ملف ضبط الحاوية .يأتي LXCمع سياسا ت بديلة للحاويا ت ،فتتإذا أرد ت إظنشتاء حاويتا ت
lxc.aa_profile = lxc-container-default-with-nesting
إذا أرد ت استخدام libvirtداختل الحاويتتا ت ،فستتتحتاج إلتتى تعتديل تلتك السياستتة )المعرفتة
لحظ أن سياسة التشعب للحاويا ت ذا ت المتيازا ت هي أقل أماصظنا متتن السياستتة الفتراضتتية،
حيث تسمح للحاويتا ت بإعتتادة وصتل /sysو /procفتي أمسكتتان غيتر قياستتية ،ممتتا يتجتتاوز سياستة
AppArmor؛ ل تملتك الحاويتا ت دون امتيتتازا ت هتذا التتتأثير الجتتاظنبي ،لن جتذر الحاويتة ل يمسكنته
إذا أرد ت تشتتغيل الحاويتتة بملتتف ضتتبط مخصتتص ،فبإمسكاظنتتك إظنشتتاء ملتتف ضتتبط فتتي المستتار
بالظنتقتتتال إليتتته؛ ملتتتف lxc-defaultيتضتتتمن إعتتتادة استتتتعمال الملتتتف المجتتترد فتتتي المستتتار التتتتالي
ستتتتتتتنيحنمل هتتتتتتتذا الضتتتتتتتبط تلقائ صيتتتتتتتا بعتتتتتتتد إعتتتتتتتادة القلع ،لظنتتتتتتته نيقتتتتتتتنرأ متتتتتتتن الملتتتتتتتف التتتتتتتتالي
lxc.aa_profile = lxc-CN-profile
إن مجموعا ت التحسكتتم ) (cgroupsهتي ميتزة متن ميتزا ت النتواة تتوفر تجمي ع للمهتام تجميصعتا
هيسكلصيا ،وإسناد وتحديد المتوارد لسكتتل مجموعتة تحسكتتم؛ نتستتخندم فتي الحاويتتا ت للحتد متن الوصتول
إلتتى الجهتتزة السكتليتتة أو المحرفيتتة ) (block or character devicesوتجدمتتد عمتتل الحاويتتا ت؛
يمسكتتن استتتعمالها أي ص
ضتتا لتحديتتد استتتخدام التتذاكرة وإيقتتاف التتدخل أو الختترج ،وضتتماظنة استتتخدام
افتراضتتصيا ،سنيستتند للحاويتتة CNذا ت امتيتتازا ت مجموعتتنة تحسكتتتم باستتم /lxc/CN؛ وفتتي حتتال
حتدوث تضتارب بالستم )التذي قتد يحتدث عنتد استتخدام lxcpathsمخصصتة( ،فسنتضتاف لحقتة
» «-nحيث nهو رقم صحيح يبدأ من الصفر ،ونيسنند إلى اسم مجموعة التحسكم.
افتراضصيا ،سنيسند للحاوية CNدون امتيازا ت مجموعة تحسك م باستم CNفتي مجموعتة التحسكتم
جذر الحاوية ملسكية المجموعة للمجلد ) لسكن ليس جميع الملفا ت( ،وهذا ما سيسمح بإظنشاء مجموعتتا ت
تحسكم فرعية.
التحسكم؛ يستقبل متدير مجموعتا ت التحسكتتم طلبتا ت D-Busعتبر مقبتس يتوظنسكس /sys/fs/cgroup
cgmanager/sock /؛ يجب أن نيضاف السطر التي لستخدام آمن للحاويا ت المتشعبة:
lxc.mount.auto = cgroup
) (bind-mountedإلى الحاوية؛ ويجب على الحاويتتة فتتي المقابتتل تشتتغيل وستتيط إدارة مجموعتتا ت
التحسكتتم )ويتتتم ذلتتك افتراضتتصيا إذا كتتاظنت الحزمتتة cgmanagerمثبتتتصة علتتى الحاويتتة( التتذي ستتينقل
الستنساخ
ن
للتزويد السريع بالحاويتا ت ،ربمتتا تريتتد تخصتتيص حاويتة تبصعتتا لحاجاتتتك ثتم تنششتتئ عتندة ظنشستت ت
خ
الستنساخ إما أن يسكون عبر snapshotsأو بنسخ حاوية أختترى؛ فالنستتخ هتتو إظنشتتاء حاويتتة
جديتتدة منستتوخة متتن الصتتلية ،وتأختتذ مستتاحة تخزينيتتة مثتتل الحاويتتة الصتتلية؛ أمتتا snapshot
فإظنهتتا تستتتخدم قتتدرة آليتتة التخزيتتن علتتى إظنشتتاء snapshotsلظنشتتاء حاويتتة النستتخ-عنتتد-السكتابتتة
) (copy-on-writeنتشير إلى الحاويتة الولتى؛ يمسكتتن إظنشتاء snapshotsللحاويتا ت المخزظنتتة فتي
،btrfsو ،LVMو ، zfsوتلتتتتك التتتتتي تسكتتتتون مخزظنتتتتة فتتتتي مجلتتتتدا ت؛ حيتتتتث كتتتتل آليتتتتة تخزيتتتتن لهتتتتا
) (releaseجميتتتع snapshots؛ ويجتتتب أن نيخطتتتط جيتتتصدا لحاويتتتا ت LVMفقتتتد ل يتتتدعم ظنظتتتام
الملفا ت أن يزيد حجمه .ل يعتتاظني btrfsمتن تلتك الستلبيا ت ،لسكنته يعتتاظني متن أداء fsyncمنخفتض
نتننشتتتأ snapshotsمتتتن الحاويتتتا ت المخزظنتتتة فتتتي مجلتتتدا ت عتتتبر ظنظتتتام الملفتتتا ت؛ فمثصل يسكتتتون
snapshotللحاويتتة C1باستتم C2بجتتذر ظنظتتام الملفتتا ت للحاويتتة C1موصتتوصل للقتتراءة فقتتط فتتي
C1أثنتتاء عمتتل C2؛ متتن المستحستتن اعتبتتار الحاويتتة C1هتتي حاويتتة أساستتية واستتتخدام ظنستتخة
snapshotلها فقط.
لنفترض أن لدينا حاوية باسم ،C1فيمسكن إظنشاء ظنسخة منها باستخدام المر:
دعم Snapshots
تعمل على حاوية - C1وقبل إظنشاء تغيير خطير وصعب العسكس -يمسكنك إظنشاء :snapshot
نتدنعم snapshotsلحاويا ت ،btrfsو ،lvmو ،zfsو overlayfs؛ في حالتتة إذا استتتدعي المتتر
lxc-snapshotعلى حاوية نتخنزن في مجلد ،فسيسجل خطتتأ وسنتننشتتأ ظنستتخة copy-clone؛ وستتبب
ذلك أظنه لو أظنشأ المستخدم ظنسخة overlayfs snapshotلحاوية تخزن في مجلد ،فستتينعسكس جتتزء
من تغيرا ت الحاويتة الصتلية علتى ظنستخة snapshot؛ إذا كنتت تريتد إظنشتاء snapshotsلحاويتة C1
مخزظنة في مجلد ،فيمسكتتن إظنشتاء ظنستخة overlayfsللحاويتة ،C1ويجتب أدل تلمتس C1بعتد ذلتك قتط،
الحاويات العابرة
فليسكن لدينا حاوية موجودة مسبصقا باسم ،C1فيمسكنك إظنشاء حاوية عابرة باستخدام:
lxc-start-ephemeral -o C1
ستتبدأ الحاويتة كنستخة snapshotللحاويتة ،C1وس تطبع التعليمتا ت للتدخول إلتى الحاويتة
علتتى الطرفيتتة ،وستتتدمر الحاويتتة العتتابرة بعتتد إيقتتاف التشتتغيل ،راجتتع صتتفحة التتدليل lxc-start-
بدصءا من أوبنتتو ،12.10أصتتبح متن الممسكتتن تعريتتف إضتتافا ت ) (hooksنتننفتتذ عنتتد ظنقتتاط محتددة
الضافا ت التي تحدث قبل التشتغيل نتننفتذ متن مجتال أستماء المضتيف قبتل أن نتننشتأ طرفيتا ت
ن
أو ظنقاط وصل الحاويا ت؛ إذا أجري أي وصل في هذه الفترة ،فيجتتب أن نيننظتتف فتتي إضتتافة تحتتدث
الضافا ت التي تحدث قبل الوصل نتن نفذ في مجال أستماء الحاويتة ،لسكتن قبتل أن يوصتل جتذر
ظنظام الملفا ت؛ سينظف أي وصل لنظام الملفا ت في هذه الفترة تلقائصيا عند إيقاف تشغيل الحاوية.
إضتتافا ت الوصتتل هتتي إضتتافا ت تنفتتذ بعتتد وصتتل أظنظمتتة ملفتتا ت الحاويتتة ،لسكتتن قبتتل أن نتندفتتذ
الضافا ت التي تحدث بعد إيقاف التشغيل ستننفذ بعد إيقاف تشغيل الحاوية.
إذا أعتتاد ت أديتتة إضتتافة خطتت صأ ،فستتيلغى تشتتغيل الحاويتتة ،لسكتتن أي إضتتافة تحتتدث بعتتد إيقتتاف
التشغيل ستننفذ ،سنتسنجل أدية مخرجا ت تولد من السسكربت بأولوية التنقيح ).(debug
الضافا ت؛ يمسكن أن تأتي بعض أمثلة الضافا ت في الحزمة lxcلتخدم كمثال حتتول طريقتتة كتابتتة
سطر الوامر
لتتدى الحاويتتا ت عتتدد مضتتبوط متتن »أستتطر الوامتتر« )(consoles؛ أحتتدها موجتتوةد دائصمتتا فتتي
/dev/console؛ الذي يظهتتر فتي الطرفيتة عنتدما نتشتدغل lxc-startمتتا لتم تحتدد الخيتتار -d؛ يمسكتتن
lxc-start؛ يمسكتتن تحديتتد عتتدد إضتتافي متتن أستتطر الوامتتر باستتتخدام المتغيتتر lxc.ttyالمضتتبوط
عادصة إلى 4؛ يمسكن أن تظهر أسطر الوامر تلك فتي ) /dev/ttyNحيتث Nأكتبر أو تستاوي ،1وأصتغر
أو تساوي (4؛ ولتسجيل الدخول إلى console 3من المضيف ،فندفذ المر:
إذا لم تحدد الخيار ،-t Nفسيتم اختيار ستطر أوامتر غيتر نمستتخندم؛ للختروج منته ،اس تخدام
عبارة الخروج Ctrl-a q؛ لحظ أن عبارة الخروج ل تعمل في سطر الوامتر الناتتج عتن lxc-start
التسجيل
إذا حتتدث شتتيء متتا ختتاطئ عنتتد تشتتغيل حاويتتة ،فتتإن أول خطتتوة هتتي الحصتتول علتتى ستتجل
كامل من :LXC
هذا سيؤدي إلى جعل lxcيسجل في أعلتتى درجتتة إستتهاب ،التتتي هتتي ،traceوستتيسكون ملتتف
التخزيتتن هتتو ملتتف باستتم » ،«debug.outإذا كتتان الملتتف debug.outموجتتوصدا مستتبصقا ،فسنتضتتاف
هنالتتك أمتتران متتتوفران لمراقبتتة تغيتترا ت حالتتة الحاويتتة lxc-monitor :التتذي يراقتتب حاويتتصة
أو أكتتثر لي تغيتترا ت فتتي الحالتتة ،حيتتث يأختتذ استتم الحاويتتة متتع الخيتتار -nكالعتتادة؛ لسكتتن فتتي هتتذا
الحالة ،يمسكن أن يسكون اسم الحاوية تعبيصرا ظنمطصيا متتن ظنمتتط POSIXللستتماح بمراقبتتة مجموعتتة متتن
هذا سيعرض جميع تغيرا ت الحالة لي حاوية تطابق التعبير النمطي؛ بينما:
الوصل من الممسكن في أوبنتو 14.04الوصل ) (attachإلى مجال أسماء حاوية ،أبسط طريقة
هي تنفيذ:
التتذي ستتيبدأ صتتدفة موصتتولة لمجتتال الحاويتتة ،C1أو داختتل الحاويتتة؛ آليتتة عمتتل الوصتتل هتتي
معقتتدة جتت صدا ،ممتتا يستتمح بوصتتل مجموعتتة فرعيتتة متتن مجتتال ت أستتماء ) (namespacesالحاويتتة
إذا أكمل LXCبدء تشغيل الحاوية ،لسكن فشل إكمال تنفيذ initفيها )علتتى ستبيل المثتال ،لتم
نيع نرض محث الدخول( ،فمن المفيد طلب درجة إسهاب أكبر من عملية ،initفلحاوية :upstart
يمسكنك أي ص
: على سبيل المثال،init ضا بدء تشغيل برامج مختلفة عن
التتيliblxc ( نمصتتندرة متتنAPI) عبر واجهة برمجيةLXC يمسكن الوصول إلى غالبية وظائف
.go و، وروبي،lua و،تسكون ارتباطاتها متوفرة لعدة لغا ت برمجية بما فيها بايثون
التتتي،(python3-lxc متتا يلتتي هتتو مثتتال عتتن استتتخدام ربتتط بتتايثون )المتتتوفرة فتتي حزمتتة
sudo python3
Python 3.2.3 (default, Aug 28 2012, 08:26:03)
[GCC 4.7.1 20120814 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more
information.
>>> import lxc
__main__:1: Warning: The python-lxc API isn't yet stable and
may change at any p
oint in the future.
>>> c=lxc.Container("C1")
>>> c.create("ubuntu")
True
>>> c.start()
True
>>> c.wait("STOPPED")
True
▲ | 565
دليل إدارة خواديم أوبنتو 14.04 - الظنظمة الوهمية
ل .الحماية
يربط مجال السماء المعرفا ت ) (idsإلتتى المتوارد؛ لسكنته ل يتوفر للحاويتة أي معتتدرف يمسكنته أن
يشتتتتير إلتتتتى المتتتتورد ،لتتتتذلك يمسكتتتتن أن نيحمتتتتى المتتتتورد؛ وهتتتتذا هتتتو أستتتتاس بعتتتتض الحمايتتتتة المتتتوفرة
لمستتتخدمي الحاويتتة؛ علتتى ستتبيل المثتتال ،مجتتال أستتماء IPCمعتتزول تماصمتتا؛ لسكتتن مجتتال ت أستتماء
أخرى فيها بعض »التسربا ت« ) (leaksالتي تسمح للمتيازا ت بأن نتستخنرج بشتتسكل غيتر ملئتتم متتن
الجتتذر فتتي الحاويتتة إلتتى مستتتخدم دون امتيتتازا ت فتتي المضتتيف ،وهتتذا يمنتتع الوصتتول إلتتى ملفتتا ت
/procو /sysالتي تمثل موارد المضيف ،وغيرها من الملفا ت المملوكة من الجذر في المضيف.
ميزة أساسية متن مزايتتا الحاويتا ت أظنهتا تشتارك النتواة م ع المضتيف؛ وهتذا يعنتي أظنته إذا ح و ت
النواة على أدية ثغرا ت في استدعاءا ت النظام ) ،(system callsفيمسكن أن تستغلها الحاوية؛ وبعد
أن تتحسكم حاوية بالنواة ،فيمسكنها أن تسيطر سيطرصة كاملصة على أي مورد معروف للمضيف!
بتتدصءا متتن أوبنتتتو ،12.10يمسكتتن أن تقنيتتد الحاويتتة متتن مردشتتح ،seccompإن Seccompهتتو
ميتتتزة جديتتتدة فتتتي النتتتواة التتتتي نتردشتتتح استتتتدعاءا ت النظتتتام التتتتي يمسكتتتن أن نتستتتتخندم متتتن المهمتتتة
وأولدهتتا؛ بينمتتا يتوقتتع الوصتتول إلتتى إدارة ستتهلة ومحستتنة للسياستتة فتتي المستتتقبل القريتتب ،لسكتتن
تحتوي السياسة الحالية على قائمة بيضاء بسيطة لرقام استدعاءا ت النظام؛ يبتتدأ ملتتف السياستتة
برقتتتم الصتتتدار )التتتذي يجتتتب أن يسكتتتون (1فتتتي أول ستتتطر وظنتتتوع السياستتتة )التتتذي يجتتتب أن يسكتتتون
ستتنحتاج عتتاد صة لتشتتغيل حاويتتة بتوزيعتتة كاملتتة إلتتى عتتدد كتتبير متتن استتتدعاءا ت النظتتام؛ لسكتتن
لحاويتتتا ت البرامتتتج ،يمسكتتتن أن ظنقلتتتل عتتتدد استتتتدعاءا ت النظتتتام المتتتتوفرة إلتتتى رقتتتم قليتتتل؛ وحتتتتى
للحاويتتا ت التتتي تشتتغل توزيعتتا ت كاملتتة يمسكتتن الحصتتول علتتى فوائتتد أمنيتتة إذا حتتذفت -علتتى ستتبيل
المثتتتتال -استتتتتدعاءا ت النظتتتتام المتوافقتتتتة متتتتع 32بتتتتت فتتتتي حاويتتتتة 64بتتتتت؛ راجتتتتع صتتتتفحة دليتتتتل
م .مصادر
مجموعتتا ت التحسكتتم هتتي آليتة فتي النتواة لتجميتع وتتبتع ووضتع حتتد لستتهلك المتوارد للمهتتام؛
الواجهتتة الداريتتة التتتي توفرهتتا النتتواة تسكتتون عتتبر ظنظتتام ملفتتا ت وهمتتي؛ لسكتتن طتتدور ت أدوا ت إداريتتة
لمجموعتتا ت التحسكتتم ذا ت مستتتوى أعلتتى ،بمتتا فيهتتا libcgroupو .lmctfyبالضتتافة لتتذلك ،هنالتتك
في أوبنتو 14.04؛ أصبح مدير مجموعا ت التحسكم ) (cgmanagerمتوفصرا كتتأداة أختترى لدارة
واجهة cgroup؛ حيث هدفه هو الستجابة لطلبا ت dbusمن أي مستتخدم ،ممتا يمدسكنته متن إدارة
ن
مجموعا ت التحسكم التي أسشنند ت إليه فقط.
.1لمحة
إن مجموعتتا ت التحسكتتم ) (cgroupsهتتي الميتتزة تستتتعمل لتجميتتع المهتتام؛ حيتتث يسكتتون تتبتتع
الموارد ووضع حدود لها نمداصرا من أظنظمتتة فرعيتتة؛ إذ أنن الهيسكليتتة ) (hierarchyهتتي مجموعتتة متتن
حيتتتث نتشتتت دسكل كتتتل مجموعتتتة متتتن الظنظمتتتة الفرعيتتتة الموصتتتولة »هيسكليتتتصة« )متتتع استتتتثناءا ت(؛
مجموعتتا ت التحسكتتم التتتي تسكتتون أولد /child1تسكتتون عرضتتصة للحتتدود المفروضتتة علتتى ،/child1
:cpusetsتبسيط إسناد مجموعة من المعالجا ت ونعنقتد التذاكرة إلتتى مجموعتا ت التحسكتتم؛ •
:devicesالتحسكم في قدرة المهام علتتى إظنشتتاء أو استتتخدام عقتتد الجهتتزة إمتتا باستتتعمال •
قائمة بيضاء
ل يمسكن جدولة
:memoryالسماح للذاكرة ،وذاكرة النواة ،وذاكرة التبديل ) (swapبأن نتنتنبع وتقديد. •
:net_clsتتوفير واجهتتة لوضتع علمتا ت علتى التترزم الشتبسكية بنتتاصء علتى مجموعتة التحسكتتم •
النمر شستتتلة؛ يمسكتتتن استتتتعمال هتتتذه العلمتتتا ت لحصقتتتا باستتتتخدام (traffic controller ) tc
:net_prioالسماح بضبط أولوية بياظنا ت التراسل الشبسكي بناصء على مجموعة التحسكم. •
:pref_eventتفعيل ظنمط لسكل معالج لمراقبة الخيوط ) (threadsلمجموعا ت تحسكم معينة. •
يمسكتتن إظنشتتاء مجموعتتا ت تحسكتتم نمستتماة دون استتتخدام أظنظمتتة فرعيتتة معهتتا ،ويسكتتون الغتترض متتن
ذلك هو تتبع العمليا ت؛ على سبيل المثال ،يقوم systemdبذلك لتتبع خدماته وجلسا ت المستخدم.
.2نظام الملفات
نتن نشتتتأ هيسكليتتتة بوصتتتل ظنستتتخة متتتن ظنظتتتام ملفتتتا ت مجموعتتتة التحسكتتتم لسكتتتل ظنظتتتام فرعتتتي نمتتتراد
وهذا ما سنينششئ هيسكلية فورصيا مع الجهزة ومجموعا ت التحسكم للتذاكرة موصتولصة متع بعضتها؛
mkdir /cgroup1/child1
يمسكن ظنقل المهام إلى مجموعة التحسكم الفرعية الجديدة بسكتابة أرقتتام معرفتتا ت عمليتتاتهم فتتي
sleep 100
echo $! > /cgroup1/child1/cgroup.procs
يمسكتتن الدارة أي ص
ضتتا عتتبر ملفتتا ت فتتي مجلتتدا ت cgroup؛ علتتى ستتبيل المثتتال ،لتجميتتد جميتتع
المهام في :child1
يمسكن العثور على كميتة كتبيرة متن المعلومتا ت عتن مجموعتا ت التحسكتتم وأظنظمتهتتا الفرعيتة فتي
.3التفويض
يمسكن لملفا ت ومجلدا ت مجموعا ت التحسكم أن نتم نلك من مستتتخدمين غيتتر المستتتخدم الجتتذر،
مما يمدسكن تفويض ) (delegationإدارة مجموعا ت التحسكم؛ عموصما ،نتجشبر النواة القيتتود المفروضتتة
على الهيسكلية على الولد؛ على سبيل المثال ،إن كتتاظنت مجموعتتة الجهتتزة /child1ل تملتتك وصتتوصل
للقرص الصلب ،فل تستطيع مجموعة التحسكم /child1/child2إعطاء ظنفسها هذه المتيازا ت.
في أوبنتتو ،14.04يوضتع المستتخدمون افتراضت صيا فتي مجموعتة متن مجموعتا ت التحسكتتم التتي
يملسكوظنها ،مما يسمح لهم باحتواء المهام التي يشغلوظنها باستخدام مجموعا ت تحسكم فرعيتتة بأمتتان؛
نتستتتخندم هتتذه الميتتزة عملصيتتا ويمسكتتن العتمتتاد عليهتتا فمثصل يمسكتتن استتتخدامها لظنشتتاء حاويتتة LXC
.4المدير
متتتتتتتدير مجموعتتتتتتتا ت التحسكتتتتتتتم ) (cgmanagerيتتتتتتتوفر خدمتتتتتتتة D-Busللستتتتتتتماح للبرامتتتتتتتج
والمستتتخدمين بتتإدارة مجموعتتا ت التحسكتتم دون الحاجتتة إلتتى معرفتتة أو وصتتول مباشتتر إلتتى ظنظتتام
ملفا ت مجموعا ت التحسكم .وللطلبا ت من المهام فتتي ظنفتتس مجتتال الستتماء ) (namespaceللمتتدير،
فيمسكن للمدير إجراء التحققا ت المنية اللزمة للتأكد من شرعية تلتتك الطلبتتا ت؛ وللطلبتتا ت الختترى،
كتلك القادمة متتن مهمتة فتي حاويتة ،فيجتب القيتام بطلبتتا ت D-Busنمنحنستنة؛ حيتتث يجتتب أن نتمتتنرر
مجموعتتا ت التحسكتتم« ) (cgproxyتلقائ صيتتا فتتي الحاويتتا ت؛ حيتتث يقبتتل طلبتتا ت D-Busقياستتية متتن
المهام في ظنفس مجال أستمائه ،ثتم يح وله إلتى طلبتا ت SCM D-Busمحستنة ال تي نتمتنرر بعتد ذلتك
إلى .cgmanager
مثال بستتيط عتتن إظنشتتاء مجموعتتة تحسكتتم -التتتي سنتشتتدغل تصتتريصفا ) (compileيستتتهلك كتتثيصرا
.5مصادر
مشروع cgmanagerنمستضاف في .linuxcontainers.org •
.1أنظمة DRBD
»جهاز كتلي م وزع ونمستننستتخ« ) ([DRBD] Distributed Replicated Block Device
ينشتتئ ظنستتخة اظنعسكاستتية متتن الجهتتزة السكتليتتة بيتتن عتت ددة مضتتيفين؛ الستنستتتاخ غيتتر مرئتتي لبقيتتة
التطبيقتتتا ت علتتتى الظنظمتتتتة المضتتتيفة .أي أقتتتراص صتتتلبة ،أو أقستتتام ،أو أجهتتتزة ،RAIDأو حجتتتوم
للبدء باستخدام ،DRBDعليك أو صل تثبيت الحزم الضرورية؛ وذلك بإدخال المر التي من الطرفية:
ملحظة :إذا كنت تستخدم ظنواصة وهمية ) (virtual kernelكجزتء من اللة الوهمية ،فستحتاج إلى تصريف
) (compileوحتتتدة debd؛ ربمتتتا متتتن الستتتهل تثتتتبيت حزمتتتة linux-serverداختتتل اللتتتة
الوهميتتة .يشتترح هتتذا القستتم كيفيتتة ضتتبط debdلستنستتاخ القستتم /srvبنظتتام ملفتتا ت ext3بيتتن
مضينفين؛ ل يهم حجم القسم ،لسكن يجب أن يسكون كل القسنمين بنفس الحجم.
الضبط.ا
؛ وستتنحتاج إلتتى الحصتتول علتتىdrbd02 وdebd01 استتم المضتتيفين فتتي هتتذا المثتتال هتتو
.؛ راجع الفصل الثامن للتفاصيل/etc/hosts أو ملفDNS خدمة استبيان أسماء إما عبر
. لسكن القيم الفتراضية كافيةة لهذا المثال،/etc/drbd.conf هنالك خيارا ت أخرى كثيرة في:ملحظة
▲ | 578
دليل إدارة خواديم أوبنتو 14.04 - الشبسكا ت العنقودية
باستخدام أداة drbdadmلتهيئة تخزين البياظنا ت الوصفية؛ ظندفذ على كل خادوم ما يلي:
ستبدأ البياظنا ت بالمزامنتة متع المضتيف الثتاظني بعتد تنفيتذ المتر الستابق؛ ظندفتذ المتر التتي علتى
drbd02لمشاهدة العملية:
ب .التختبار
لتختتبر إذا كتاظنت الملفتا ت نتزانمتن فعل صيتا بيتن المضتيفين ،فاظنستتخ بعتض الملفتا ت فتي ،drbd01
إلى :/srv
ثم ش
صل القسم:
هو .drbd01
ج .مصادر
تحتوي صفحة دليل man drbd.confعلى شرح لخيارا ت لم ظنغطها في هذا الفصل. •
راجع أي ص
ضا صفحة الدليل .man drbdadm •
إن OpenVPNهتتو حتتدل لظنشتتاء شتتبسكا ت وهميتتة خاصتتة )Virtual Private Networks
أو اختصتتاصرا (VPNموجتتو ةد فتتي مستتتودعا ت أوبنتتتو؛ هتتو خدمتتة مرظنتتة وعمليتتة وآمنتتة ،وينتمتتي إلتتى
عائلتتتة ) SSL/TLS VPNالتتتتي تختلتتتف عتتتن (IPSec VPN؛ يشتتترح هتتتذا الفصتتتل تثتتتبيت وضتتتبط
.1برمجية OpenVPN
إذا كنتتت تريتتد أكتتثر متتن مجتترد مفاتيتتح نمشتتانركة مستتبصقا؛ فيجعتتل OpenVPNمتتن الستتهل إعتتداد
لستتتتخدام شتتتهادا ت SSL/TLSللستتتتيثاق ومبادلتتتة المفاتيتتتح بيتتتن ختتتادوم VPNوالعملء؛ يمسكتتتن أن
نيستتتخندم OpenVPNفتتي ظنمتتط متتنودجه أو جستتر (routed or bridged VPN) VPNويمسكتتن أن
الرسمي لهذه الخدمة؛ عملء VPNموجودون تقريصبا في جميع توزيعا ت ليننسكتتس ،وظنظتتام متتاك OS X؛
أول خطتتتوة لضتتتبط OpenVPNهتتتي إظنشتتتاء بنيتتتة تحتيتتتة للمفتتتتاح العمتتتومي ) (PKI؛ التتتتي
تحتوي على:
شتتهادة ستتلطة شتتهادا ت ) (CAرئيستتية التتتي يمسكتتن أن نتستتتخندم لتوقيتتع شتتهادا ت كتت ي
ل متتن •
الخادوم والعملء.
يدعم OpenVPNالستيثاق ثنائي التجاه بناصء على الشهادا ت ،وهذا يعنتتي أن علتتى العميتتل
الستتتيثاق متتن شتتهادة الختتادوم ،وعلتتى الختتادوم الستتتيثاق متتن شتتهادة العميتتل قبتتل أن نتننشتتأ ثقتتةة
مشتركةة بينهما.
علتتى الختتادوم والعميتتل الستتتيثاق متتن بعضتتها أوصل عتتبر التحقتتق متتن أن الشتتهادة موقعتتة متتن
سلطة الشهادا ت الرئيسية ،ثم باختبار المعلوما ت فتتي ترويستتة الشتتهادة المستتتوثق منهتتا؛ مثتتل استتم
لضتتبط ستتلطة شتتهادا ت خاصتتة بتتك وتوليتتد شتتهادا ت ومفاتيتتح لختتادوم OpenVPNولبعتتض
العملء ،عليتتك أوصل ظنستتخ المجلتتد easy-rsaإلتتى /etc/openvpn؛ وهتتذا ستتيؤكد أن أي تغييتترا ت
mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
export KEY_COUNTRY="US"
export KEY_PROVINCE="NC"
export KEY_CITY="Winston-Salem"
export KEY_ORG="Example Company"
export KEY_EMAIL="steve@example.com"
export KEY_CN=MyVPN
export KEY_NAME=MyVPN
export KEY_OU=MyVPN
أد ش
:خل ما يلي لتوليد شهادة سلطة شهادا ت رئيسية ومفتاح
cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-ca
شهادات الخادوم
./build-key-server myservername
أغلبية المعتتامل ت يمسكتتن أن تبقتتى علتتى قيمتهتتا الفتراضتتية؛ هنالتتك،وكما في الخطوة السابقة
1 out of 1 " " وSign the certificate? [y/n] " سؤالن يجب أن تجيب عليهمتتا بتالقبول همتا
▲ | 585
دليل إدارة خواديم أوبنتو 14.04 - خدمة VPN
./build-dh
جميتتع الشتتهادا ت والمفاتيتتح ستتتولد فتتي المجلتتد الفرعتتي /keys؛ ومتتن العتتادا ت الشتتائعة بيتتن
cd keys/
\ cp myservername.crt myservername.key ca.crt dh2048.pem
/etc/openvpn/
شهادات العميل
cd /etc/openvpn/easy-rsa/
source vars
./build-key client1
/etc/openvpn/ca.crt
/etc/openvpn/easy-rsa/keys/client1.crt
/etc/openvpn/easy-rsa/keys/client1.key
ولن شهادا ت ومفاتيح العميل مطلوبة فقط على حاسوب العميل ،فعليك حذفهم من الخادوم.
ls -l /usr/share/doc/openvpn/examples/sample-config-files/
total 68
-rw-r--r-- 1 root root 3427 2011-07-04 15:09 client.conf
-rw-r--r-- 1 root root 4141 2011-07-04 15:09 server.conf.gz
sudo cp /usr/share/doc/openvpn/examples/\
sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz
ca ca.crt
cert myservername.crt
key myservername.key
dh dh2048.pem
#net.ipv4.ip_forward=1
▲ | 587
دليل إدارة خواديم أوبنتو 14.04 - خدمة VPN
هتتتذا هتتتو الحتتتد الدظنتتتى التتتذي تحتتتتاج لضتتتبط ختتتادوم OpenVPN؛ يمسكنتتتك استتتتخدام جميتتتع
العتتدادا ت الفتراضتتية فتتي ملتتف server.conf؛ الن شتتدغل الختتادوم ،وستتتجد رستتائل التستتجيل
ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-
00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500
Metric:1
][...
هنالك عددة ظنسخ من عملء OpenVPNبواجهة أو بدون واجهة رسومية؛ يمسكنتتك القتتراءة المزيتتد
عتتن العملء فتتي قستتتم آختتر؛ لسكننتتا الن سنستتتخدم عميتتل OpenVPNفتتي أوبنتتتو التتذي هتتو ظنفتتس الملتتف
التنفيذي للخادوم؛ لذلك عليك تثبيت الحزمة openvpnمرصة أخرى في جهاز العميل:
\sudo cp /usr/share/doc/openvpn/examples/
sample-config-files/client.conf /etc/openvpn/
اظنسخ مفاتيح العميل والشهادة الصادرين من سلطة الشهادا ت التي أظننشتتأتها فتتي قستتتم ستتابق،
ca ca.crt
cert client1.crt
key client1.key
وعليتتتتك تحديتتتتد استتتتم أو عنتتتتوان ختتتتادوم OpenVPNواحتتتتد علتتتتى القتتتتل؛ تأكتتتتد أن السكلمتتتتة
client
remote vpnserver.example.com 1194
ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-
00-00-00-00-00-00
inet addr:10.8.0.6 P-t-P:10.8.0.5
Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500
Metric:1
ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=0.920 ms
ملحظة :يستخدم خادوم OpenVPNأول عنتوان IPقابتل للستتخدام ف ي شتبسكة العميتل ويسكتتون هتذا العنتوان
هو الوحيتد المستتجيب للداة ping؛ علتى ستبيل المثتال ،لتو ن
ض شبط قنتاع /24لشتبسكة العميتل ،فس يقوم باستتخدام
العنوان .1؛ عنوان ) PTPالند للنتد ،أو (peer to peerال ذي تتراه ف ي ظناتتج ifconfigأعله ل يجيتب عتادصة علتى
طلبا ت .ping
هل يستطيع العميل التصال إلى الخادوم؟ ربما يحجب الجدار النتتاري وصتتوله؟ تأكتتد متتن .2
.3يجتتب أن يستتتخدم الختتادوم والعميتتل ظنفتتس التتبروتوكول والمنفتتذ ،مثصل UDPبمنفتتذ 1194؛
يجب أن يستخدم الخادوم والعميل ظنفس إعدادا ت الضبط الخاصة بالضتتغط ،راجتتع خيتتار .4
الضبط .comp-lzo
يجب أن يستخدم الخادوم والعميل ظنفس الضبط المتعلق بنمط التوجيه والجسور. .5
الضتتبط الستتابق هتتو ضتتبط VPNبستتيط جتت صدا ،يمسكتتن للعميتتل الوصتتول إلتتى الختتدما ت علتتى ختتادوم
VPNعتتتبر ظنفتتتق مشتتت نفر؛ إذا أرد ت الوصتتتول إلتتتى المزيتتتد متتتن الختتتواديم أو أي شتتتيء آختتتر علتتتى الشتتتبسكا ت
الختترى ،فتتأعطي العملء بعتتض تعليمتتا ت التتتوجيه؛ علتتى ستتبيل المثتتال ،لتتو كتتان بالمسكتتان تلخيتتص شتتبسكة
شركتك بالنطتاق 192.168.0.0/16؛ فيمسكنتتك إعطتتاء هتتذا التتوجيه إلتتى العملء ،لسكتن عليتتك أي ص
ضتا تغييتر
التوجيه لطريقة العودة ،أي أن خادومك عليه أن يعرف طريقة العودة إلى شبسكة عميل .VPN
أو ربما تريد أن تعطي البوابة الفتراضية إلى جميع عملئك وترسل جميتتع البياظنتتا ت الشتتبسكية
إلى بوابة VPNأو صل ،ومن هناك إلى الجدار الناري للشركة ثم إلى الظنتترظنت؛ يوضتح لتك هتذا القستم
سيستتمح إعطتتاء التوجيهتتا ت للعميتتل لتته بالوصتتول إلتتى شتتبسكا ت فرعيتتة أختترى خلتتف الختتادوم؛
تذكر أن هذه الشبسكا ت الفرعية يجب أن تعرف أن عليها إعادة توجيه الترزم التابعتة لنطتاق عنتاوين
ستضتتبط التعليمتتة الستتابقة جميتتع العملء كتتي يعيتتدوا تتتوجيه بوابتتة الشتتبسكة الفتراضتتية عتتبر
، VPNممتتتا يتتتؤدي إلتتتى متتترور جميتتتع بياظنتتتا ت الشتتتبسكة كتصتتتفح التتتويب أو طلبتتتا ت DNSعتتتبر VPN
)ختادوم OpenVPNأو الجتدار النتاري المركتزي عنتدك التذي يحتتاج إلتى تمريتر بطاقتة TUN/TAP
اضتتبط ظنمتتط الختتادوم ووفتتر شتتبسكة VPNفرعيتتة لسكتتي يستتحب OpenVPNعنتتاوين العملء
منها؛ سيأخذ الخادوم العنوان 10.8.0.1لنفسه ،والبقية ستتوفر للعملء؛ وكتتل عميتتل ستتيقدر علتتى
الوصول إلى الخادوم عبر .10.8.0.1ضع تعليصقا قبل هذا السطر إذا كنت تستخدم جستتر إيتتثرظنت )
:(ethernet bridging
حافظ على سجل لرتباطا ت عناوين IPللعملء فتتي هتتذا الملتتف؛ إذا توقتتف OpenVPNعتتن
العمتل أو أعيتد تشتغيله ،فتإن العملء التذي ستيعيدون إظنشتاء التصتتال سنيستتنند لهتم ظنفتس عنتوان IP
ifconfig-pool-persist ipp.txt
client-to-client
comp-lzo
تتتؤدي التعليمتتة keepaliveبإرستتال شتتبيهة برستتائل pingمتتراصرا وتسكتتراصرا عتتبر الختتط التتذي
يصل بين الجاظنبين ،لذلك سيعلم كل جاظنب متتتى ينقطتتع التصتتال عتتن الجتتاظنب الختتر؛ الستتطر التتتي
سيرستتل pingكتتل 1ثاظنيتتة ،بتتافتراض أن النتتد البعيتتد ستتيسكون متوقصفتتا إذا لتتم نيتتشرد رد علتتى الرستتالة
keepalive 1 3
user nobody
group nogroup
مستخدم وكلمة مرور من العميل المتصل ،ويستخدم هذه المعلوما ت كأساس للستتتيثاق بالعميتتل؛
لستخدام طريقة الستتتيثاق هتتذه ،أوصل أضتتف تعليمتتة auth-user-passإلتتى ضتبط العميتتل؛ التتتي
ستتتوجه عميتتل OpenVPNلطلتتب استتم مستتتخدم وكلمتتة متترور ،وتمريرهتتا إلتتى الختتادوم عتتبر قنتتاة
TLSآمنة.
هذا ستيخبر ختادوم OpenVPNأن يتحقتق متن استم المستتخدم وكلمتة المترور النمدنخلتة متن
العملء باستتخدام واحتدة PAMلتستجيل التدخول؛ وهتذا يفيتد فتي حالتة كتان عنتدك آليتة مركزيتة
)(routed VPN؛ أحياصظنتتتا نيشتتتار لتتتذلك بخدمتتتة VPNتعمتتتل بالطبقتتتة الثاظنيتتتة أو الثالثتتتة متتتن OSI؛
فتتي VPNجستتري ،جميتتع الطتتارا ت ) (framesالشتتبسكية تسكتتون متتن الطبقتتة الثاظنيتتة ) ،(layer-2أي
جميع إطارا ت إيثرظنت نترنسل إلى شركاء (VPN partners) VPN؛ بينما نترنسل الرزم الشبسكية من
الطبقتتة الثالثتتة فقتتط إلتتى شتتركاء (VPN Partners ) VPN؛ فتتي النمتتط الجستتري ،سنترنستتل جميتتع
البياظنا ت الشبسكية بمتتا التتتي تسكتون شتبيهة بشتبسكة LANمثتتل طلبتا ت ،DHCPو طلبتتا ت ... ARPإلتتخ
قبل أن تضبط OpenVPNفي النمط الجسري ،عليك تغيير ضبط بطاقا ت الشبسكة؛ لنفتتترض
أن لتتدى خادومتتك بطاقتتة استتمها eth0موصتتولة إلتتى الظنتتترظنت ،وبطاقتتة باستتم eth1موصتتولة إلتتى
شبسكة LANالتي تريد إظنشاء جسر لها؛ سيبدو ملف /etc/network/interfacesكما يلي:
auto eth0
iface eth0 inet static
address 1.2.3.4
netmask 255.255.255.248
default 1.2.3.1
auto eth1
iface eth1 inet static
address 10.0.0.4
netmask 255.255.255.0
هتتذا ضتتبط بستتيط للبطاقتتة ويجتتب أن نيعتتندل لسكتتي يغنيتتر إلتتى النمتتط الجستتري حيتتث تتحتتول
البطاقة eth1إلتى بطاقتة br0الجديتدة؛ بالضتافة إلتى أظننتا ضتبطنا br0لتسكتون البطاقتة الجسترية
auto eth0
iface eth0 inet static
address 1.2.3.4
netmask 255.255.255.248
default 1.2.3.1
auto eth1
iface eth1 inet manual
up ip link set $IFACE up promisc on
auto br0
iface br0 inet static
address 10.0.0.4
netmask 255.255.255.0
bridge_ports eth1
التحسكم عن بعد؛ تأكد أظنك تستطيع حل المشاكل بالوصول إلى الجهاز محلصيا.
;dev tun
dev tap
up "/etc/openvpn/up.sh br0 eth1"
;server 10.8.0.0 255.255.255.0
server-bridge 10.0.0.4 255.255.255.0 10.0.0.128 10.0.0.254
فتي وضتعeth1 وللتأكتتد متتن أن، إلتى الجسترtap شئ ستسكربصتا مستتاعصدا لضتافة البطاقتتة
ثم أظن ش
#!/bin/sh
BR=$1
ETHDEV=$2
TAPDEV=$3
▲ | 598
دليل إدارة خواديم أوبنتو 14.04 - خدمة VPN
.4ضبط العميل
أوصل ،ثدبت openvpnعلى العميل:
ثم بعد أن يسكون الخادوم مضبوصطا ،وشهادا ت العميل منسوخصة إلى /etc/openvpn؛ فأظنششئ
ملف ضبط للعميل بنسخ المثال ،وذلك بإدخال المر التي في طرفية جهاز العميل:
sudo cp /usr/share/doc/openvpn/examples/sample-config-
files/client.conf /etc/openvpn
dev tap
;dev tun
ca ca.crt
cert client1.crt
key client1.key
تأتي أغلبية توزيعا ت لي ننسكس بما فيها توزيعتتة أوبنتتتو للجهتتزة المسكتبيتتة علتتى برمجيتتة »متتدير
الشتتبسكة« ،التتذي هتتو واجهتتة رستتومية جميلتتة لدارة خيتتارا ت الشتتبسكة؛ يمسكنتتك أي ص
ضتتا إدارة اتصتتال ت
لعلم برمجية »مدير الشبسكة« بتثبيت الحزم الجديدة ،عليك إعادة تشغيله:
restart network-manager
network-manager start/running, process 3078
في واجهة مدير الشبسكة ،اختر لسان VPNواضتغط عل ى زر "إضتافة" ،ثتم اختتر OpenVPN
كنتتوع خدمتتة VPNثتتم اضتتغط علتتى » إظنشتتاء« ،فتتي النافتتذة التاليتتة أضتتف استتم ختتادوم OpenVPN
»كبوابتتتة« ،واختتتتر »النتتتوع« إلتتتى »شتتتهادا ت ) «(TLSثتتتم ودجتتته »شتتتهادة المستتتتخدم« إلتتتى شتتتهادتك،
و »شتتتهادة «CAإلتتتى ستتتلطة الشتتتهادا ت التتتتي تعتمتتتدها ،و » المفتتتتاح الختتتاص« إلتتتى ملتتتف مفتاحتتتك
الختتاص ،استتتخدم التتزر » خيتتارا ت متقدمتتة« لتفعيتتل الضتتغط أو غيتتره متتن الخيتتارا ت الخاصتتة التتتي
لنظام ماك؛ ظندزل آخر ظنسخةOpenVPN ظنسخة ممتازة حرة مفتوحة المصدر لواجهة رسومية لعميل
متتع الشتتهادا ت والمفاتيتتحclient.ovpn من المثدبت من الموقع الرسمي وثبدتها؛ ثم ضتتع ملتتف الضتتبط
:سويصة في
/Users/username/Library/ApplicationSupport/Tunnelblick/Configur
ations/
▲ | 601
دليل إدارة خواديم أوبنتو 14.04 - خدمة VPN
ظنتتدزل وثدبتتت آختتر ظنستتخة متتن عميتتل OpenVPNلوينتتدوز ؛ يمسكنتتك تثتتبيت واجهتتة رستتومية
اختياريتتتة باستتتم OpenVPN Windows GUI؛ ثتتتم عليتتتك تشتتتغيل خدمتتتة ،OpenVPNوذلتتك
بالذهاب إلى » ابدأ -جهاز السكومبيوتر -إدارة -الخدما ت« و »التطبيقا ت -الخدما ت« ،ثم اعتتثر علتتى
خدمتتة OpenVPNوشتدغلها ،ثتم اضتتبط ظنمتط التشتتغيل إلتتى »تلقتائي«؛ وعنتدما تشتدغل OpenVPN
MI GUIلول مرة ،فعليك تشغيله كمدير؛ وذلك بالنقر عليه بالزر اليمن واظنتقاء الخيار المناسب.
سيتوجب عليك كتابة ملتتف ضتتبط OpenVPNإلتتى ملتتف ظنصتتي ووضتتعه فتتي C:\Program
وإذا لتتم تتترد الستتتيثاق متتن المستتتخدم أو كنتتت تريتتد تشتتغيل الخدمتتة دون تفتتاعله ،فأضتتف
auth-user-pass
auth-retry interact
management 127.0.0.1 1194
management-hold
management-query-passwords
يوصف OpenWRTأظنته توزيعتتة ليننسكتتس للجهتتزة المدمجتتة مثتتل موجهتتا ت WLAN؛ هنالتتك
ن
بعتتتض الظنتتتواع متتتن تلتتتك الموجهتتتا ت التتتتي أعتتتند ت لتشتتتغيل OpenWRT؛ بالعتمتتتاد علتتتى التتتذاكرة
المتتتوفرة فتتي المتتوجه لتتديك ،ربمتتا تتمسكتتن متتن تشتتغيل برمجيتتا ت مثتتل OpenVPNويمسكنتتك بنتتاء
opkg update
opkg install openvpn
:/etc/openvpn إلى
.عليك أن ترى إذا كان عليك تعديل إعدادا ت الجدار الناري والتوجيه في موجهك
مصادر.ب
أي ص
OpenVPN: Building And Integration » باستتمPakt السكتاب المنشور متتن،ضا •
▲ | 604
24
برمجيات أخرى
مفيدة
هنالك العديتد متتن البرمجيتتا ت المفيتدة جتت صدا المطتورة متن فريتتق ختادوم أوبنتتو وغيرهتتم التتتي
تندمتتج اظنتتدماصجا جيتت صدا متتع ظنستتخة ختتادوم أوبنتتتو ،لسكتتن ربمتتا ل تسكتتون معروفتتصة جتتصدا؛ ستتيعرض هتتذا
الفصل بعض التطبيقا ت المفيدة التي تسدهل إدارة خادوم ،أو عددة خواديم ،أوبنتو.
.1تطبيق pam_motd
عندما تسجل دخولك إلى ختتادوم أوبنتتو ،ربمتتا تلحتظ »رستتالة اليتوم« ) Message Of The
التتتتي يمسكتتتن أن نتستتتتخندم لدارة الظنظمتتتة باستتتتخدام تطتتتبيق التتتويب Landscape؛ تتضتتتمن هتتتذه
، MOTDمثل المعالج ،والذاكرة ،والمساحة التخزينية للقرص الصلب ...إلخ .على سبيل المثال:
والتحققا ت من أظنظمة الملفا ت ) ،(fsckومتى يجب إعادة القلع )مثصل ،بعد تحديث النواة(.
نتجنمع مع ./etc/motd.tail
يمسكنتتتك إضتتتافة البياظنتتتا ت الديناميسكيتتتة إلتتتى رستتتالة اليتتتوم؛ فمثصل ،لضتتتافة معلومتتتا ت الطقتتتس
المحلي:
المعلومتتا ت المحليتتة ،فستتتحتاج إلتتى رمتتز ICAOمتتن أربعتتة محتتارف؛ التتذي يمسكتتن تحديتتده بتصتتفح
موقع . Weather.gov
وعلتتى الرغتتم متتن أن National Weather Serviceهتتي وكالتتة حسكوميتتة تابعتتة للوليتتا ت
المتحدة ،لسكن هنالك محطا ت طقس متوفرة فتي جميتع أظنحتتاء العتتالم ،لسكتتن ربمتتا ل تتتوفر معلومتا ت
#!/bin/sh
#
#
# Prints the local weather information for the MOTD.
#
#
echo
weather -i KINT
echo
\ sudo ln -s /usr/local/bin/local-weather
/etc/update-motd.d/98-local-weather
في النهاية ،أغلق جلستك الحالية ،وأعد تشغيل الدخول لمشاهدة رسالة اليوم الجديدة.
يجتتب أن نير نحتتب بتتك الن ببعتتض المعلومتتا ت المفيتتدة؛ لسكتتن بعتتض المعلومتتا ت حتتول الطقتتس
المحلي قد ل تسكون مفيدصة جصدا! لسكن هذا المثال يشرح مروظنة .pam_motd
.2تطبيق etckeeper
يسمح etckeeperبتخزين محتويا ت /etc/بسهولة في مستودع ظنظتتام تحسكتتم بالصتتدارا ت
)(VCS؛ حيتتتث يندمتتتج متتتع aptلسكتتتي يتتتودع التغيتتترا ت الحاصتتتلة علتتتى /etcتلقائييتتتا عنتتتدما نتثنبتتتت
أو نتحندث الحزم .وضع /etcضمن مستودع للتحسكم بالصدارا ت هو أفضل ممارسة نين ن
صتح بهتتا فتي
أد ش
خل المر التي في الطرفية لتثبيت :etckeeper
لستتتخدام Bazaarللتحسكتتم بالصتتدارا ت؛ ونيهنيتتأ المستتتودع تلقائييتتا )ونيتتوندع فيتته لول متترة( أثنتتاء
:/etc مشاهدة سجل المعلوما ت حول الملفا ت فيVCS يمسكنك باستخدام أوامر
▲ | 610
14.04 - دليل إدارة خواديم أوبنتو برمجيا ت أخرى مفيدة
added postfix/master.cf
added postfix/post-install
added postfix/postfix-files
added postfix/postfix-script
added postfix/sasl
added ppp/ip-down.d
added ppp/ip-down.d/postfix
added ppp/ip-up.d/postfix
added rc0.d/K20postfix
added rc1.d/K20postfix
added rc2.d/S20postfix
added rc3.d/S20postfix
added rc4.d/S20postfix
added rc5.d/S20postfix
added rc6.d/K20postfix
added resolvconf/update-libc.d
added resolvconf/update-libc.d/postfix
added rsyslog.d/postfix.conf
added ufw/applications.d/postfix
Committed revision 2.
/etc/ أضف مضيصفا جديصدا إلى ملتف، للتغيرا ت اليدويةetckeeper وكمثال عن طريقة تتبع
.« أظنظمة التحسكم بالصدارا ت: راجع »الفصل السابع عشر،bzr للمزيد من المعلوما ت حول
▲ | 611
دليل إدارة خواديم أوبنتو 14.04 - برمجيا ت أخرى مفيدة
.3تطبيق Byobu
أحتتد أكتتثر البرامتتج فائتتدصة لي متتدير أظنظمتتة هتتو ،screenحيتتث يستتمح بتنفيتتذ عتتددة صتتدفا ت
) (shellsفتتي طرفيتتة واحتتدة؛ ولجعتتل بعتتض ميتتزا ت screenالمتقدمتتة أكتتثر قرصبتتا متتن المستتتخدم،
عند تنفيذ ،byobuسنيظشهر الضغط على زر F9قائمنة الضبط التي تسمح لك بما يلي:
ربتتط المفاتيتتح يحتتدد بعتتض المتتور مثتتل سلستتلة الختتروج ) ،(escape sequenceوإظنشتتاء ظنافتتذة
جديدة ،وتغيير النافذة ...إلخ .هنالك مجموعتا ربط للمفاتيح يمسكن الختيار بينها ،واحدة باسم ،f-keys
يوفر byobuقائمصة نتظ شهتتر إصتدارة أوبنتتتو ،ومعلومتا ت المعالتتج ،ومعلومتا ت التذاكرة ،والتوقت
تفعيتتل خيتتار »ل يبتتدأ Byobuعنتتد تستتجيل التتدخول« ستتيجعل byobuيبتتدأ عنتتد فتتتح أي
طرفيتتتة؛ التغيتتترا ت التتتتي تحصتتتل علتتتى byobuتسكتتتون خاصتتتة بالمستتتتخدم ،ولتتتن تتتتؤثر علتتتى بقيتتتة
مستخدمي النظام.
، scrollbackالتتذي يستتمح لتتك بالتنقتتل إلتتى المخرجتتا ت الستتابقة باستتتخدام أوامتتر شتتبيهة بتتأوامر
:nالظنتقال إلى المطابقة التالية إما إلى المام أو إلى الخلف. •
.4مصادر
راجتتتع صتتتفحة التتتدليل man update-motdللمزيتتتد متتتن الخيتتتارا ت المتتتتوفرة لحزمتتتة •
.update-motd
راجع أي ص
ضا صفحة ويسكي أوبنتو ».«etckeeper •
وأي ص
ضا صفحة ويسكي أوبنتو ».«Screen •
يستخدم مشروع أوبنتو -وبالتالي ظنسخة خادوم أوبنتو -موقع Launchpadكمتتبتتع للعلتتل؛
الجهاز المصاب بالعدلة لظنه يجمع معلوما ت من النظام الذي نيننفذ عليه وينشرها إلى البلغ عن العلتة
في Launchpad؛ إيصال المعلوما ت إلى Launchpadقد يصبح صعصبا إن لم يسكن يعمل النظام
ببيئة سطح مسكتب لستخدام متصفح )وهذا أمةر شائةع في الخواديم( أو لم يسكن يملتتك وصتتوصل إلتتى
ملحظة :يعطي المنرين apport-cliو ubuntu-bugظنفس النتائج على خادوم بواجهة سطرية؛ حيث الخيتتر
هو فعلصيا وصلة رمزية إلى ،apport-bugالذي هو ذكي كفايصة لمعرفة إذا كان البيئة المستخدمة هي بيئة سطح
مسكتب ،وسيختار apport-cliفيما عدا ذلتك؛ ولدمتا كتتاظنت أظنظمتتة الختتواديم تجنتتح لن تسكتتون ببيئتة ستتطرية فقتط،
فسنشرح في هذا السكتاب .apport-cli
يجب أن نتس نجل التبليغتا ت ع ن العلتل فتي أوبنتتو علتى حزمتة برمجي ة محتددة ،لذلك استم الحزمتة
المصابة بالعلة )الحزمة المصدرية أو اسم البرظنامج/مساره( يجب أن نتزنود إلى :apport-cli
apport-cli PACKAGENAME
ملحظة :ارجع إلى »الفصل الثالث :إدارة الحزم« للمزيد من المعلوما ت حول الحزم في أوبنتو.
، س نتسأل عدمتا تريتد فعل ه بهتتا؛ علتى س بيل المثتال،apport-cli بعد اظنتهاء جمع المعلوما ت من
apport-cli vim
*** Collecting problem information
The collected information can be sent to the developers to
improve the
application. This might take a few minutes.
...
*** Send problem report to the developers?
After the problem report has been sent, please fill out the
form in the automatically opened web browser.
What would you like to do? Your options are:
1 https://launchpad.net/
2 https://help.launchpad.net/YourAccount/NewAccount
S: Send report (2.8 KB)
V: View report
K: Keep report file for sending later or copying to
somewhere else
I: Cancel and ignore future crashes of this program version
C: Cancel
Please choose (S/V/K/I/C):
▲ | 617
دليل إدارة خواديم أوبنتو 14.04 - الملحق الول :التبليغ عن العلل
You can launch a browser now, or copy this URL into a browser
on another computer.
Choices:
1: Launch a browser now
C: Cancel
Please choose (1/C): 1
المتصتتتتتفح التتتتتذي سيستتتتتتخدم عنتتتتتد اختيتتتتتار » «1هتتتتتو المتصتتتتتفح المعتتتتتروف بالستتتتتم »www-
«browserفتتي النظتتام عتتبر ظنظتتام البتتدائل الختتاص بنظتتام دبيتتان )Debian alternatives
(system؛ أمثلتتتتتة عتتتتتن المتصتتتتتفحا ت النصتتتتتية لتثبيتهتتتتتا تتضتتتتتمن ،linksو ،elinksو ،lynx
الخيتتار :Viewعتترض المعلومتتا ت التتتي نج شمنعتتت علتتى الشاشتتة لمراجعتهتتا؛ التتتي قتتد تسكتتون •
بياظنا ت كثيرة ،اضغط على زر » «Enterللتمرير إلى الستتفل ،و » «qللختتروج والعتتودة إلتتى
قائمة الختيار.
الخيتتار :Keepكتابتتة المعلومتتا ت النمجنمعتتة إلتتى القتترص ،يمسكتتن أن نيستتتخندم الملتتف الناتتتج •
لح صقا للتبليغ عن العلة )عموصما بعد ظنقل الملف إلى ظنظام أوبنتو آخر(.
للتبليغ عن العلة ،اظنقل الملف إلى ظنظام أوبنتو فيه اتصال بالظنترظنت وظندفتتذ المتتر apport-cli
عليته؛ وهتذا متتا سيستتبب إظهتتار القائمتتة فورصيتتا )لن المعلومتتا ت قتتد نجشمنعتتت مستتبصقا(؛ عليتتك بعتتدها أن
apport-cli apport.vim.1pg92p02.apport
لحفظ البلغ إلى القرص مباشر صة )دون الحاجة إلى استخدام القوائم( فيمسكنك تنفيذ:
ملحظة :إذا كتان النظتتام التذي فيته اتصتال بتالظنترظنت ليتس أوبنتتو/دبيتان؛ فتإن apport-cliليتتس متتوفصرا ،لتذلك
عليك إظنشاء العلة يدوصيا؛ ل يجب تضمين بلغ apportكمرفق بالعلة ،لذلك هو عديم الفائدة في هذه الحالة.
دون أدية وسائط لمعالجتتة أديتتة تقتتارير اظنهيتتار فتتي الظنتظتتار؛ حيتتثapport-cli استخدم الداة
apport-cli
*** Send problem report to the developers?
After the problem report has been sent, please fill out the
form in the automatically opened web browser.
What would you like to do? Your options are:
S: Send report (153.0 KB)
V: View report
K: Keep report file for sending later or copying to
somewhere else
I: Cancel and ignore future crashes of this program version
C: Cancel
Please choose (S/V/K/I/C): s
▲ | 620
دليل إدارة خواديم أوبنتو 14.04 - الملحق الول :التبليغ عن العلل
إرستتال بلغ الظنهيتتار بهتتذه الطريقتتة لتتن يستتبب فتتي إظنشتتاء بلغ عتتام ) (publicللعلتتة؛ ستتيسكون
صا ) (privateفي ،Launchpadهذا يعني أظنه سيسكون مرئصيا لجتتزتء متتن الناشتتطين فتتي
البلغ خا ص
تتبع العلل؛ حيث سيبحثون عن أدية معلوما ت خاصة بك قبل إظنشاء بلغ عام.
.3مصادر
راجع صفحة ويسكي أوبنتو ».«Reporting Bugs •
صتتفحة » «Apportفيهتتا بعتتض المعلومتتا ت المفيتتدة ،وتشتتير بعضتتها إلتتى كيفيتتة استتتخدام •