المحتوى عن 'شبكي'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • التجارة الإلكترونية
  • الإدارة والقيادة
  • مقالات ريادة أعمال عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
  • HTML5
  • CSS
    • Sass
    • إطار عمل Bootstrap
  • SQL
  • سي شارب #C
    • منصة Xamarin
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • استسراع النمو
  • المبيعات

التصنيفات

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

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 5 نتائج

  1. يشرح هذا الدرس استخدام SSSD للاستيثاق من تسجيلات دخول المستخدم باستخدام Active Directory بطريقة «ad»؛ أما في الإصدارات القديمة من sssd، كان من الممكن أن يتم الاستيثاق بطريقة «ldap»، لكن عندما يتم الاستيثاق باستخدام مايكروسوفت ويندوز Active Directory، فكان من الضروري تثبيت إضافات POSIX AD في المتحكم بالنطاق؛ لكن طريقة «ad» تبسِّط الضبط ولا تتطلب أيّة تغيرات في بنية المتحكم بالنطاق. الشروط المسبقة والافتراضات والمتطلباتنفترض أن لديك Active Directory مضبوط وجاهز للعمل.نفترض أن المتحكم بالنطاق يعمل كخادوم DNS.نفترض أن المتحكم بالنطاق هو خادوم DNS الرئيسي المحدد في ‎/etc/resolv.conf.نفترض أن قيود ‎_kerberos، و ‎_ldap، و ‎_kpasswd ...إلخ. مضبوطة في منطقة DNS.نفترض أن الوقت مُزامَنٌ على المتحكم بالنطاق.النطاق المستخدم في هذا المثال هو myubuntu.example.com.التثبيتيجب تثبيت الحزم krb5-user ،samba ،sssd و ntp؛ نحتاج إلى تثبيت سامبا حتى لو لم يُقدِّم الخادوم أيّة مشاركات. هنالك حاجة لحقل Kerberos والاسم الكامل أو عنوان IP للمتحكمات بالنطاق. أدخِل الأمر الآتي لتثبيت تلك الحزم: sudo apt-get install krb5-user samba sssd ntpانظر إلى القسم التالي لطريقة الإجابة عن الأسئلة التي يسألها السكربت المشغَّل بعد تثبيت حزمة krb5-user. ضبط Kerberosستُسأل عند تثبيت حزمة krb5-user عن اسم الحقل (realm name) بأحرفٍ كبيرة؛ وعن خادوم مركز توزيع المفاتيح (أي المتحكم بالنطاق) وعن الخادوم المدير (المتحكم بالنطاق أيضًا في هذا المثال)؛ وهذا ما سيكتب القسمين [realm] و [domain_realm] في ملف ‎/etc/krb5.conf؛ هذه الأقسام ليست ضرورية إن كان الاكتشاف التلقائي للنطاق مفعّلًا، خلا ذلك فكلاهما ضروريٌ. إذا كان اسم النطاق myubuntu.example.com، فأدخِل اسم الحقل كما يلي: MYUBUNTU.EXAMPLE.COM. وبشكل اختياري، عدِّل الملف ‎/etc/krb5.conf مضيفًا بعض الخيارات لتحديد مدة صلاحية بطاقة Kerberos (هذه القيم جيدة لتستخدم قيمًا افتراضيةً): [libdefaults] default_realm = MYUBUNTU.EXAMPLE.COM ticket_lifetime = 24h # renew_lifetime = 7dإذا لم تُحدَّد قيمة default_realm، فربما من الضروري تسجيل الدخول باستخدام «username@domain» بدلًا من «username». يجب أن يكون وقت النظام في عضو نطاق Active Directory متوافقًا مع مثيله في المتحكم بالنطاق، وإلا فستفشل عملية الاستيثاق باستخدام Kerberos؛ فمثلًا، يمكن أن يُوفِّر خادوم المتحكم بالنطاق خدمة NTP؛ عدِّل الملف ‎/etc/ntp.conf: server dc.myubuntu.example.comضبط سامبايجب أن يُستخدَم سامبا لتوفير خدمات netbois/nmbd المتعلقة بالاستيثاق من Active Directory، حتى وإن لم تُشارَك أيّة ملفات. عدِّل الملف ‎/etc/samba/smb.conf وأضف ما يلي إلى قسم [global]: [global] workgroup = MYUBUNTU client signing = yes client use spnego = yes kerberos method = secrets and keytab realm = MYUBUNTU.EXAMPLE.COM security = adsملاحظة: بعض المراجع تقول أنه يجب تحديد «password server» وأن يشير إلى المتحكم بالنطاق؛ لكن هذا ضروريٌ فقط إن لم يُضبَط DNS للعثور على المتحكم بالنطاق؛ حيث يَعرِض سامبا افتراضيًا تحذيرًا إن ضُبِطَ الخيار «password server» مع «security = ads». ضبط SSSDلا يوجد ملف ضبط افتراضي أو مثال عن ملف الضبط لملف ‎/etc/sssd/sssd.conf في حزمة sssd؛ فمن الضروري إنشاء واحد؛ ها هو ذا أصغر ملف ضبط يمكن أن يعمل: [sssd] services = nss, pam config_file_version = 2 domains = MYUBUNTU.EXAMPLE.COM [domain/MYUBUNTU.EXAMPLE.COM] id_provider = ad access_provider = ad # Use this if users are being logged in at /. # This example specifies /home/DOMAIN-FQDN/user as $HOME. # Use with pam_mkhomedir.so override_homedir = /home/%d/%u # Uncomment if the client machine hostname doesn't match # the computer object on the DC. # ad_hostname = mymachine.myubuntu.example.com # Uncomment if DNS SRV resolution is not working # ad_server = dc.mydomain.example.com # Uncomment if the AD domain is named differently than the Samba domain # ad_domain = MYUBUNTU.EXAMPLE.COM # Enumeration is discouraged for performance reasons. # enumerate = trueبعد حفظ الملف، فانقل الملكية إلى الجذر، وغيِّر أذونات الملف إلى 600: sudo chown root:root /etc/sssd/sssd.conf sudo chmod 600 /etc/sssd/sssd.confحيث سيرفض sssd أن يعمل إن لم تكن الملكية أو الأذونات صحيحةً. التأكد من ضبط nsswitch.confالسكربت الذي يعمل بعد تثبيت حزمة sssd يُجري بعض التعديلات على ملف ‎‎/etc/nsswitch.conf تلقائيًا؛ حيث يجب أن يكون كما يلي: passwd: compat sss group: compat sss ... netgroup: nis sss sudoers: files sss تعديل ملف ‎/etc/hostsأضف اسمًا بديلًا الذي يحدد اسم النطاق الكامل للحاسوب المحلي في ملف ‎/etc/hosts كما يلي: 192.168.1.10 myserver myserver.myubuntu.example.comهذا مفيد لاستخدامه مع تحديثات DNS الديناميكية. الانضمام إلى Active Directoryعليك الآن إعادة تشغيل ntp و samba، وتشغيل sssd: sudo service ntp restart sudo restart smbd sudo restart nmbd sudo start sssdثم اختبر الضبط بمحاولة الحصول على بطاقة Kerberos: sudo kinit Administratorتحقق من البطاقة باستخدام: sudo klistإذا كانت هنالك بطاقة مع تاريخ انتهاء الصلاحية، فقد حان الوقت للانضمام إلى النطاق: sudo net ads join -kالتحذير «No DNS domain configured. Unable to perform DNS Update‎.‎» يعني أنه ليس هنالك اسم بديل (أو اسم بديل صحيح) في ملف ‎/etc/hosts، ولا يمكن للنظام توفير الاسم الكامل له؛ فعليك التحقق من الاسم البديل في ‎/etc/hosts كما هو مشروح في قسم «تعديل ملف etc/hosts/» أعلاه. الرسالة «NT_STATUS_UNSUCCESSFUL» تشير إلى أن الانضمام إلى النطاق قد فشل وأن هنالك شيء ما خاطئ، عليك مراجعة الخطوات السابقة وإصلاح المشكلة قبل الإكمال. هنالك تحققان آخران اختياريان للتأكد من أن الانضمام إلى النطاق قد نجح؛ لاحظ أنه إذا نجح الانضمام إلى النطاق لكن إذا فشل أحد أو كلا التحققين، فربما عليك الانتظار لدقيقةٍ أو دقيقتين قبل المحاولة مرةً أخرى؛ حيث يبدو أن بعض التغيرات لا تحدث في الوقت الحقيقي. 1. التحقق الأول: تحقق من «وحدة التنظيم» (Organizational Unit) لحسابات الحواسيب في Active Directory للتأكد من أن حساب الحاسوب قد أُنشِئ (وحدات التنظيم هي موضوع خارج عن نطاق هذا الدرس). 2. التحقق الثاني: نفِّذ الأمر الآتي لمستخدم AD معيّن (المدير مثلًا): getent passwd usernameملاحظة: إذا ضبطت الخاصية «enumerate = ture» في ملف sssd.conf، فإن الأمر getnet passwd دون تمرير اسم مستخدم كوسيط سيَعرض جميع مستخدمي النطاق؛ ربما يكون هذا السلوك مفيدًا للاختبار، لكنه بطيء وغير مستحسن للخواديم الإنتاجية. اختبار الاستيثاقيجب أن يكون الآن من الممكن الاستيثاق عبر Active Directory: su - usernameإذا عَمِلَ الأمر السابق بنجاح، فيجب أن تعمل بقية طرق الاستيثاق (getty، و SSH). إذا أُنشِئ حساب الحاسوب، مما يشير إلى أن النظام قد انضم إلى النطاق، لكن فشل الاستيثاق؛ فربما من المفيد مراجعة الملف ‎/etc/pam.d و sssdwitch.conf وأيضًا تغيرات الملفات المشروحة آنفًا في هذا الدرس. مجلدات المنزل مع pam_mkhomedirعند تسجيل الدخول باستخدام حساب مستخدم Active Directory، فمن المحتمل ألّا يكون للمستخدم مجلد منزل، ويمكن حل هذه المشكلة باستخدام pam_mkhomedir.so، حيث سيُنشَأ مجلد المنزل للمستخدم عند تسجيل الدخول؛ عدِّل ملف ‎/etc/pam.d/common-session، وأضف هذا السطر مباشرةً بعد «session required pam_unix.so»: session required pam_mkhomedir.so skel=/etc/skel/ umask=0022ملاحظة: قد تحتاج إلى «override_homedir» في ملف sssd.conf للعمل عملًا صحيحًا، تأكد من ضبط تلك الخاصية هناك. الاستيثاق في سطح مكتب أوبنتومن الممكن أيضًا الاستيثاق من المستخدمين في سطح مكتب أوبنتو باستخدام حسابات Active Directory؛ لكن لن تظهر أسماء حسابات مستخدمي AD في قائمة الاختيار مع المستخدمين المحليين، لذلك يجب تعديل lightdm؛ وذلك بتحرير الملف ‎/etc/lightdm/lightdm.conf.d/50-unity-greeter.conf وإضافة السطرين الآتيين: greeter-show-manual-login=true greeter-hide-users=trueأعد الإقلاع لإعادة تشغيل lightdm، حيث يمكن الآن تسجيل الدخول باستخدام حساب تابع للنطاق إما بالشكل «username» أو «username/username@domain». المصادرصفحة مشروع SSSD.مقالة «DNS Server Configuration guidelines».صفحة «Active Directory DNS Zone Entries».صفحة «Kerberos config options».ترجمة -وبتصرف- للمقال Ubuntu Server Guide: SSSD and Active Directory.
  2. لا يستعمل أغلب الناس Kerberos لوحده، فبعد أن يستوثق المستخدم (Kerberos)، فسنحتاج لمعرفة ماذا بإمكانه أن يفعل (تصريح [authorization])؛ وهنا تكون مهمة البرامج مثل LDAP. قد يكون استنساخ قاعدة مبادئ Kerberos بين خادومين أمرًا معقدًا، ويضيف قاعدة بيانات مستخدم أخرى إلى شبكتك؛ لحسن الحظ، MIT Kerberos مضبوطٌ ليستخدم دليل LDAP كقاعدة بيانات للمبادئ؛ يشرح هذا الدرس ضبط خادومَيّ Kerberos الرئيسي والثانوي لاستخدام OpenLDAP لقاعدة بيانات المبادئ. ملاحظة: الأمثلة هنا تستخدم MIT Kerberos و OpenLDAP. ضبط OpenLDAPأولًا، يجب تحميل المخطط الضروري على خادوم OpenLDAP الذي لديه اتصال شبكي مع مركز توزيع المفاتيح الرئيسي والثانوي؛ بقية هذا القسم تفترض أن لديك استنساخ LDAP مضبوط بين خادومين على الأقل؛ للمزيد من المعلومات حول ضبط OpenLDAP راجع درس «خادوم OpenLDAP». من المطلوب أيضًا ضبط OpenLDAP من أجل اتصالات TLS و SSL؛ لذلك ستكون جميع البيانات المارة بين خادومي LDAP و KDC مشفرةً. ملاحظة: cn=admin,cn=config هو المستخدم الذي أنشأناه مع امتياز الكتابة إلى قاعدة بيانات ldap؛ تكون القيمة في كثير من الأحيان هي RootDN، عدِّل قيمته وفقًا للضبط عندك. لتحميل المخطط على LDAP، فثبِّت الحزمة krb5-kdc-ldap في خادوم LDAP؛ أي أدخِل الأمر الآتي في الطرفية: sudo apt-get install krb5-kdc-ldapثم استخرج محتويات الملف kerberos.schema.gz: sudo gzip -d /usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz sudo cp /usr/share/doc/krb5-kdc-ldap/kerberos.schema /etc/ldap/schema/يجب أن يضاف مخطط kerberos إلى شجرة cn=config؛ آلية إضافة مخطط جديد إلى slapd مفصلةٌ في قسم «تعديل قاعدة بيانات ضيط slapd» من درس «خادوم OpenLDAP». أولًا، أنشِئ ملف ضبط باسم schema_convert.conf، أو أي اسم آخر ذي معنى، يحتوي على الأسطر الآتية: 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أنشِئ مجلدًا مؤقتًا لاحتواء ملفات LDIF: mkdir /tmp/ldif_outputاستخدم الآن slapcat لتحويل ملفات المخطط: slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s \ "cn={12}kerberos,cn=schema,cn=config" > /tmp/cn\=kerberos.ldifعدِّل اسم الملف والمسار السابق ليُطابِق ما عندك إن كان مختلفًا. عدِّل الخاصيات الآتية في الملف المولَّد ‎/tmp/cn=kerberos.ldif: 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قد تختلف قيم تلك الخاصيات، لكن تأكد أنها قد حُِذِفَت. حمِّل المخطط الجديد بالأمر ldapadd: ldapadd -x -D cn=admin,cn=config -W -f /tmp/cn\=kerberos.ldifأضف فهرسًا لخاصية krb5principalname: 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"وفي النهاية، حدِّث قوائم التحكم في الوصول (ACL): 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"هذا كل ما في الأمر، أصبح دليل LDAP جاهزًا لكي يخدم كقاعدة بيانات مبادئ Kerberos. ضبط مركز توزيع المفاتيح الرئيسيبعد ضبط OpenLDAP، حان الوقت الآن لضبط مركز توزيع المفاتيح. أولًا، ثبِّت الحزم الضرورية الآتية، بتنفيذ الأمر: sudo apt-get install krb5-kdc krb5-admin-server krb5-kdc-ldapعدِّل الآن ملف ‎/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 [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 }ملاحظة: عدِّل قيم example.com ،dc=example,dc=com ،cn=admin,dc=example,dc=com ،ldap01.example.com للقيم الملائمة للنطاق، وكائن LDAP، وخادوم LDAP لشبكتك. لاحقًا، استخدم الأداة kdb5_ldap_util لإنشاء الحقل: sudo kdb5_ldap_util -D cn=admin,dc=example,dc=com create -subtrees \ dc=example,dc=com -r EXAMPLE.COM -s -H ldap://ldap01.example.comأنشِئ «مخبأً» (stash) لكلمة المرور المستخدم في خادوم LDAP، تستخدم هذه الكلمة من ldap_kdc_dn و ldap_kadmind_dn في ملف ‎/etc/krb5.conf: sudo kdb5_ldap_util -D cn=admin,dc=example,dc=com stashsrvpw -f \ /etc/krb5kdc/service.keyfile cn=admin,dc=example,dc=comانسخ شهادة سلطة الشهادات من خادوم LDAP: scp ldap01:/etc/ssl/certs/cacert.pem . sudo cp cacert.pem /etc/ssl/certsالآن عدِّل ‎/etc/ldap/ldap.conf ليستخدم الشهادة: TLS_CACERT /etc/ssl/certs/cacert.pemملاحظة: يجب أن تُنسَخ الشهادة أيضًا إلى مركز توزيع المفاتيح الثانوي، للسماح بالاتصال إلى خواديم LDAP باستخدام LDAPS. تستطيع الآن إضافة مبادئ Kerberos إلى قاعدة بيانات LDAP، وستُنسَخ إلى بقية خواديم LDAP المضبوطة للاستنساخ. فأدخل ما يليل لإضافة مبدأ باستخدام الأداة kadmin.local: 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.يجب أن تكون خاصيات krbPrincipalName ،krbPrincipalKey ،krbLastPwdChange ،krbExtraData مضافةً إلى كائن المستخدم uid=steve,ou=people,dc=example,dc=com؛ استخدم أداتَيّ kinit و klist لاختبار إذا أصدر المستخدم المعين بطاقةً. ملاحظة: إذا كان كائن المستخدم مُنشأً مسبقًا، فإنه يجب إضافة الخيار ‎-x dn="..."‎ إلى خاصيات Kerberos؛ لأنه سيُنشَأ فيما عدا ذلك كائن مبدأي جديد في شجرة الحقل الفرعية. ضبط مركز توزيع المفاتيح الثانويضبط مركز توزيع المفاتيح الثانوي لاستخدم LDAP هو شبيه بضبطه لاستخدام قاعدة بيانات Kerberos العادية. أولًا، ثبت الحزم الضرورية، بتطبيق الأمر الآتي في الطرفية: sudo apt-get install krb5-kdc krb5-admin-server krb5-kdc-ldapعدِّل الآن ملف ‎/etc/krb5.conf ليستخدم LDAP: [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] 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 }أنشِئ مخبأً لكلمة مرور LDAP: sudo kdb5_ldap_util -D cn=admin,dc=example,dc=com stashsrvpw -f \ /etc/krb5kdc/service.keyfile cn=admin,dc=example,dc=comالآن انسخ مخبأ ‎‏«Master Key‎»‏ على المركز الرئيسي ‎/etc/krb5kdc/.k5.EXAMPLE.COM إلى مركز توزيع المفاتيح الثانوي؛ تأكد من نسخ الملف عبر اتصال مشفر مثل scp، أو عبر وسيط تخزين فيزيائي. sudo scp /etc/krb5kdc/.k5.EXAMPLE.COM steve@kdc02.example.com:~ sudo mv .k5.EXAMPLE.COM /etc/krb5kdc/ملاحظة: مرةً أخرى، استبدل EXAMPLE.COM باسم الحقل الحقيقي. وبالعودة إلى المركز الثانوي، أعد تشغيل خادوم ldap فقط: sudo service slapd restartفي النهاية، ابدأ عفريت krb5-kdc: sudo service krb5-kdc startتأكد أن خادومَيّ ldap (وبالتالي kerberos) متزامنَين. تستطيع الآن إكمال استيثاق المستخدمين إن أصبح خادوم LDAP أو Kerberos، أو خادوم LDAP وخادوم Kerberos غير متوفرين. مصادرلدى دليل «Kerberos Admin Guide» بعض التفاصيل الإضافية.للمزيد من المعلومات حول kdb5_ldap_util راجع صفحة دليل man kdb5_ldap_util.مصدر آخر مفيد هو صفحة الدليل man krb5.conf.انظر أيضًا لصفحة ويكي أوبنتو: «Kerberos and LDAP».ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Kerberos and LDAP.
  3. إن Kerberos هو نظام استيثاق شبكي مبني على مفهوم الجهة الثالثة الموثوقة؛ الجهتان الأخريتان هما المستخدم والخدمة التي يريد المستخدم أن يستوثق فيها؛ لا يمكن لجميع الخدمات والتطبيقات استخدام Kerberos؛ لكن الخدمات التي تستطيع ذلك تجعله يُقرِّب بيئة الشبكة لتصبح أقرب خطوةً إلى «تسجيل الدخول الموحد» (Single Sign On‏ [SSO]). يشرح هذا الدرس تثبيت وضبط خادوم Kerberos، وبعض الأمثلة عن ضبط العملاء. لمحة عامةإذا كنت جديدًا على Kerberos، فهذه بعض المصطلحات التي من الجيد معرفتها قبل إعداد خادوم Kerberos، أغلبها مرتبطةٌ بأشياء قد تعرفها من البيئات الأخرى: مبدأ (Principal): يجب أن تُعرَّف أيّة مستخدمين أو حواسيب أو خدمات موفرة من الخواديم كمبادئ Kerberos.النماذج (Instances): تستخدم لمبادئ الخدمة ومبادئ الإدارة الخاصة.الحقول (Realms): الحقل الفريد للتحكم الذي تم تزويده من عملية تثبيتKerberos؛ تخيل أن الحقول هي مجال أو مجموعة من المضيفين والمستخدمين الذين ينتمون إليها، ويُصطلَح أن الحقل يجب أن يكون بأحرف كبيرة؛ سيستخدم أوبنتو افتراضيًا عنوان DNS مُحوّلًا إلى أحرفٍ كبيرة (EXAMPLE.COM) اسمًا للحقل.مركز توزيع المفاتيح (Key Distribution Center‏ [KDC]): يتكون من ثلاثة أقسام: قاعدة بيانات لكل المبادئ، وخادوم استيثاق، وخادوم منح بطاقات (ticket granting server)؛ يحب أن يكون هنالك مركز توزيع للمفاتيح واحد على الأقل لكل حقل.بطاقة منح البطاقات (Ticket Granting Ticket): تُصدَر من خادوم الاستيثاق (Authentication Server‏ [AS])؛ بطاقة منح البطاقات (TGT) مشفرة بكلمة مرور المستخدم الذي يعلمها فقط المستخدم و مركز توزيع المفاتيح (KDC).خادوم منح البطاقات (Ticket Granting Server‏ [TGS]): يُصدِر خدمة البطاقات للعملاء عند الطلب.البطاقات: تأكيد هوية مبدأين، أحد تلك المبادئ هو المستخدم، والآخر هو الخدمة المطلوبة من المستخدم؛ تؤسس البطاقات مفتاح تشفير ليُستخدَم في الاتصالات الآمنة أثناء جلسة الاستيثاق.ملفات Keytab: الملفات المستخرجة من قاعدة بيانات مبادئ مركز توزيع المفاتيح وتحتوي على مفتاح التشفير للخدمة أو المضيف.ولجمع القطع مع بعضها بعضًا، لدى الحقل مركز توزيع مفاتيح واحد على الأقل -ويفضل أن يكون لديه أكثر من واحد لضمان توفر الخدمة- الذي يحتوي على قاعدة بيانات بالمبادئ، وعندما يُسجِّل مستخدمٌ دخوله إلى منصة العمل المضبوطة لاستخدام استيثاق Kerberos؛ فإن مركز توزيع المفاتيح يصدر بطاقة منح البطاقات (TGT)، وإذا كانت التصاريح التي أعطاها المستخدم مطابقة، فسيتم الاستيثاق من المستخدم وبإمكانه الآن طلب البطاقات لخدمات Kerberos من خادوم منح البطاقات (TGS)، ستسمح خدمة البطاقات للمستخدم أن يستوثق إلى خدمة دون أن يُدخِل اسم المستخدم أو كلمة المرور. خادوم Kerberos التثبيتلنقاشنا هذا، سننشِئ مجال MIT Kerberos مع الخاصيات الآتية (عدِّلها لتلائم حاجاتك): الحقل: EXAMPLE.COM.مركز توزيع المفاتيح الرئيسي: kdc01.example.com‏ (192.168.0.1).مركز توزيع المفاتيح الثانوي: kdc02.example.com‏ (192.168.0.2).مبدأ المستخدم: steve.مبدأ المدير: steve/admin.ملاحظة: من المستحسن -وبشدة- أن تكون معرفات مستخدمين الشبكة الموثوقين في مجال مختلف عن المستخدمين المحليين (لنقل أنه يبدأ من 5000). قبل تثبيت خادوم Kerberos، فمن الضروري وجود خادوم DNS مضبوط مسبقًا؛ ولما كان حقل Kerberos عرفيًا يستخدم اسم النطاق، فإن هذا القسم يستخدم النطاق EXAMPLE.COM التي ستُشرح طريقة ضبطه في قسم الرئيس الأولي في الدرس الخاص بخادوم DNS الذي سينشر لاحقًا في هذه السلسلة. Kerberos هو بروتوكول حساس بالنسبة للوقت؛ فلو كان وقت النظام المحلي يختلف بين جهاز العميل وجهاز الخادوم أكثر من خمس دقائق (افتراضيًا)، فلن تستطيع منصة العمل أن تستوثق من العميل. ولتصحيح المشكلة، يجب أن يزامن جميع المضيفين وقتهم بواسطة بروتوكول وقت الشبكة (NTP)؛ للمزيد من المعلومات حول ضبط NTP، راجع الدرس «مزامنة الوقت باستخدام بروتوكول NTP». أول خطوة في ضبط حقل Kerberos هي تثبيت حزمتَيّ krb5-kdc و krb5-admin-server؛ أدخل الأمر الآتي في الطرفية: sudo apt-get install krb5-kdc krb5-admin-serverستُسأل في نهاية التثبيت عن اسم مضيف Kerberos وخواديم Admin -اللذان يمكن أن يكونا نفس الخادوم أو غيره- للحقل (realm). ملاحظة: افتراضيًا، يُنشَأ الحقل من اسم نطاق مركز توزيع المفاتيح. ثم أنشِئ حقلًا جديدًا باستخدام الأداة kdb5_newrealm: sudo kdb5_newrealmالضبطتستخدم الأسئلة التي سألوك إياها أثناء التثبيت لضبط ملف ‎/etc/krb5.conf؛ إذا احتجت لتعديل إعدادات مركز توزيع المفتاح (KDC) فعدِّل ببساطة الملف وأعد تشغيل عفريت krb5-kdc. إذا احتجت لإعادة ضبط Kerberos من الصفر، ربما لتغير اسم الحقل، فيمكنك ذلك بالأمر: sudo dpkg-reconfigure krb5-kdcبعد أن يعمل KDC عملًا سليمًا، فإنه من الضروري وجود مستخدم مدير (مبدأ المدير). من المستحسن استخدام اسم مستخدم مختلف عن اسم المستخدم الذي تستعمله عادةً. يمكن فعل ذلك عبر الأداة kadmin.local، بإدخال الأمر الآتي في الطرفية: 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 إلى الحقل، ويكون مبدأ المستخدم هو steve@EXAMPLE.COM، ويجب أن يحمل امتيازات المستخدم العادي فقط. ملاحظة: استبدل EXAMPLE.COM و steve بالحقل واسم مستخدم المدير عندك على التوالي. ثم يحتاج مستخدم المدير الجديد إلى أن يحصل على أذونات قوائم التحكم بالوصول (ACL) الملائمة؛ تُضبَط هذه الأذونات في ملف ‎/etc/krb5kdc/kadm5.acl: steve/admin@EXAMPLE.COM *يعطي هذا القيد steve/admin القدرة على القيام بأي عملية في جميع المبادئ في الحقل؛ تستطيع ضبط المبادئ بامتيازات أقل؛ والذي يكون ملائمًا إذا احتجت مبدأ مدير يستطيع طاقم العمل المبتدئ استخدامه في عملاء Kerberos؛ راجع صفحة الدليل man kadm5.acl لمزيد من التفاصيل. أعد الآن تشغيل krb5-admin-server لكي تأخذ قوائم التحكم بالوصول الجديدة مفعولها: sudo service krb5-admin-server restartيمكن اختبار مبدأ المستخدم الجديد باستخدام الأداة kinit: 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حيث اسم ملف التخزين المؤقت krb5cc_1000 مكون من السابقة krb5cc_‎ ومعرف المستخدم uid، الذي في هذه الحالة 1000؛ ربما تحتاج لإضافة قيد في ملف ‎/etc/hosts من أجل مركز توزيع المفاتيح لكي يستطيع العميل العثور عليه، على سبيل المثال: 192.168.0.1 kdc01.example.com kdc01استبدل 192.168.0.1 بعنوان مركز توزيع المفاتيح؛ هذا يحدث عادة عندما تملك حقل Kerberos يشمل عدّة شبكات مفصولة بموجهات (routers). أفضل طريقة للسماح للعملاء بتحديد مركز توزيع المفاتيح للحقل هو استخدم سجلات DNS SRV، أضف ما يلي إلى ‎/etc/named/db.example.com: _kerberos._udp.EXAMPLE.COM. IN SRV 1 0 88 kdc01.example.com. _kerberos._tcp.EXAMPLE.COM. IN SRV 1 0 88 kdc01.example.com. _kerberos._udp.EXAMPLE.COM. IN SRV 10 0 88 kdc02.example.com. _kerberos._tcp.EXAMPLE.COM. IN SRV 10 0 88 kdc02.example.com. _kerberos-adm._tcp.EXAMPLE.COM. IN SRV 1 0 749 kdc01.example.com. _kpasswd._udp.EXAMPLE.COM. IN SRV 1 0 464 kdc01.example.com.ملاحظة: استبدل EXAMPLE.COM ،kdc01 و kdc02، باسم النطاق، ومركز توزيع المفاتيح الرئيسي، ومركز توزيع المفاتيح الثانوي على التوالي وبالترتيب. انظر إلى الدرس تنصيب وإعداد خدمة اسم النطاق DNS لتعليمات تفصيلية حول ضبط DNS. أصبح حقل Kerberos الجديد جاهزًا لاستيثاق العملاء. مركز توزيع المفاتيح الثانويبعد أن حصلت على مركز توزيع المفاتيح (KDC) في شبكتك، فمن المستحسن الحصول على مركز ثانوي في حال لم يكن المركز الرئيسي متوافرًا؛ وأيضًا لو كان عندك عملاء Kerberos في شبكات مختلفة (ربما مفصولة بموجهات تستخدم NAT)، فمن الحكمة وضع مركز توزيع ثانوي في كل شبكة من تلك الشبكات. أولًا، ثبت الحزم، عندما تسأل عن أسماء Kerberos و Admin server فادخل اسم مركز توزيع المفاتيح الرئيسي: sudo apt-get install krb5-kdc krb5-admin-serverبعد أن ثبتت الحزم، أنشِئ مبدأ مضيف KDC، بإدخال الأمر الآتي في الطرفية: kadmin -q "addprinc -randkey host/kdc02.example.com"ملاحظة: بعد تنفيذك لأوامر kadmin فستُسأل عن كلمة مرور username/admin@EXAMPLE.COM. استخرج ملف Keytab: kadmin -q "ktadd -norandkey -k keytab.kdc02 host/kdc02.example.com"يجب أن يكون هنالك ملف keytab.kdc02 في مجلدك الحالي، انقل الملف إلى ‎/etc/krb5.keytab: sudo mv keytab.kdc02 /etc/krb5.keytabملاحظة: المسار إلى keytab.kdc02 يختلف تبعًا لمجلد العمل الحالي. تستطيع أيضًا أن تُشكِّل قائمةً بالمبادئ في ملف Keytab؛ مما يفيد في استكشاف الأخطاء؛ استخدم الأداة klist: sudo klist -k /etc/krb5.keytabيشير الخيار ‎-k إلى أن الملف هو ملف keytab. هنالك حاجة لوجود ملف kpropd.acl في كل مركز لتوزيع المفاتيح الذي يعرض كل مراكز توزيع المفاتيح للحقل؛ على سبيل المثال، أَنشِئ في مركز توزيع المفاتيح الرئيسي والثانوي الملف ‎/etc/krb5kdc/kpropd.acl: host/kdc01.example.com@EXAMPLE.COM host/kdc02.example.com@EXAMPLE.COMأنشِئ قاعدة بيانات فارغة في المركز الثانوي: sudo kdb5_util -s createابدأ الآن عفريت kpropd، الذي يستمع إلى الاتصالات من أداة kprop؛ تستخدم أداة kprop لنقل ملفات التفريغ: sudo kpropd -Sمن الطرفية في مركز توزيع المفاتيح الرئيسي، أنشئ ملف تفريغ من قاعدة بيانات المبادئ: sudo kdb5_util dump /var/lib/krb5kdc/dumpاستخرج ملف keytab في مركز توزيع المفاتيح الرئيسي وانقله إلى ‎/etc/krb5.keytab: kadmin -q "ktadd -k keytab.kdc01 host/kdc01.example.com" sudo mv keytab.kdc01 /etc/krb5.keytabملاحظة: تأكد من وجود مضيف مرتبط مع kdc01.example.com قبل استخراج Keytab. استخدم الأداة kprop لدفع التغيرات إلى قاعدة البيانات في KDC الثانوي: sudo kprop -r EXAMPLE.COM -f /var/lib/krb5kdc/dump kdc02.example.comملاحظة: يجب أن تَظهر رسالة SUCCEEDED إذا تمت عملية «النسخ» بنجاح، إذا كانت هنالك رسالة خطأ، فتحقق من ‎/var/log/syslog في مركز توزيع المفاتيح الثانوي لمزيدٍ من المعلومات. ربما ترغب بإنشاء مهمة مجدولة لتحديث قاعدة البيانات في مركز توزيع المفاتيح الثانوي كل فترة زمنية؛ ما يلي سيدفع التغييرات إلى قاعدة البيانات كل ساعة (لاحظ أن السطر الطويل قد جُزِّء لجزأين لكي يتسع في عرض الصفحة): # m h dom mon dow command 0 * * * * /usr/sbin/kdb5_util dump /var/lib/krb5kdc/dump && /usr/sbin/kprop -r EXAMPLE.COM -f /var/lib/krb5kdc/dump kdc02.example.comأنشئ ملف stash في المركز الثانوي لكي يُحفَظ به مفتاح Kerberos الرئيسي (Master Key): sudo kdb5_util stashفي النهاية، شغل عفريت krb5-kdc في المركز الثانوي: sudo service krb5-kdc startيجب أن يكون المركز الثانوي قادرًا على إعطاء البطاقات للحقل؛ يمكنك اختبار ذلك بإيقاف عفريت krb5-kdc في المركز الرئيسي؛ ثم استخدام kinit لطلب بطاقة، وإذا جرى كل شيء على ما يرام، فيجب أن تحصل على بطاقة من مركز توزيع المفاتيح الثانوي؛ عدا ذلك، تحقق من ‎/var/log/syslog و ‎/var/log/auth.log في مركز توزيع المفاتيح الثانوي. عميل Kerberos للينكسيشرح هذا القسم ضبط نظام لينُكس كعميل Kerberos؛ هذا سيسمح بالوصول إلى أيّة خدمة تستخدم Kerberos بعد أن يستطيع المستخدم تسجيل دخوله إلى النظام. التثبيتلكي يتم الاستيثاق إلى حقل Kerberos؛ فإن حزمتَيّ krb5-user و libpam-krb5 مطلوبتان؛ بالإضافة إلى غيرها من الحزم غير المطلوبة لكنها تسهل عملك؛ أدخِل الأمر الآتي في مِحَث الطرفية لتثبيت هذه الحزم: sudo apt-get install krb5-user libpam-krb5 libpam-ccreds auth-client-configتسمح حزمة auth-client-config بضبط PAM ضبطًا بسيطًا للاستيثاق من مصادر عدّة، وستُخزِّن حزمة libpam-ccreds اعتماديات الاستيثاق مما يسمح لك بتسجيل الدخول في حال لم يكن مركز توزيع المفاتيح متاحًا؛ ستفيد هذه الحزمة الحواسيب المحمولة، التي يمكن أن تستوثق باستخدام Kerberos عندما تكون في شبكة الشركة، لكنها تحتاج إلى الوصول عندما تكون خارج الشبكة أيضًا. الضبطلضبط العميل، أدخل ما يلي في الطرفية: sudo dpkg-reconfigure krb5-configسيُطلَب منك إدخال اسم حقل Kerberos؛ أيضًا إن لم لديك DNS مضبوط مع سجلات Kerberos SRV؛ فستظهر قائمة تسألك عن اسم مضيف مركز توزيع المفاتيح وخادوم إدارة الحقل. يضيف dpkg-reconfigure قيودًا إلى ملف ‎/etc/krb5.conf للحقل الخاص بك، يجب أن تحصل على قيود شبيهة بالآتي: [libdefaults] default_realm = EXAMPLE.COM ... [realms] EXAMPLE.COM = { kdc = 192.168.0.1 admin_server = 192.168.0.1 }ملاحظة: إذا ضَبطت uid لكلٍ من مستخدمي شبكتك الموثوقين ليبدأ من 5000؛ كما هو منصوح به في قسم «التثبيت» من درس OpenLDAP، فتستطيع عندها أن تخبر 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هذا ما سيتجنب الطلب لكلمات مرور (غير موجودة) لمستخدم موثوق محليًا عند تغيير كلمة المرور باستخدام passwd. يمكنك اختبار الضبط بطلب بطاقة باستخدام الأداة kinit، على سبيل المثال: kinit steve@EXAMPLE.COM Password for steve@EXAMPLE.COM:يمكن عرض التفاصيل عند إعطاء بطاقة باستخدام klist: 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 Kerberos 4 ticket cache: /tmp/tkt1000 klist: You have no tickets cachedثم استخدم auth-client-config لضبط وحدة libpam-krb5 لطلب بطاقة أثناء تسجيل الدخول: sudo auth-client-config -a -p kerberos_exampleيجب أن تحصل الآن على بطاقة بعد عملية استيثاق ناجحة. مصادرللمزيد من المعلومات حول نسخة MIT من Kerberos، راجع موقع «MIT Kerberos».توجد بعض التفاصيل في صفحة ويكي أوبنتو «Kerberos».الكتاب من O'Reilly المسمى «Kerberos: The Definitive Guide» هو مرجع ممتاز أثناء ضبط Kerberos.تستطيع أيضًا القدوم إلى قناتَيّ ‎#ubuntu-server و ‎#kerberos على خادوم IRC الشهير Freenode إذا كانت لديك أسئلة حول Kerberos.ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Kerberos.
  4. يشرح هذا الدرس دمج سامبا مع LDAP. دور خادوم سامبا هو أن يكون خادومًا قائمًا بحد ذاته، ويوفر دليل LDAP بطاقة الاستيثاق بالإضافة إلى احتواء معلومات حساب المستخدم والمجموعة والجهاز التي يتطلبها سامبا لكي يعمل (في أيٍّ من أدواره الممكنة)؛ المتطلب المسبق هو خادوم OpenLDAP مضبوط مع دليل يمكن استخدامه لطلبيات الاستيثاق؛ راجع الدرس «الإدارة عن بعد – OpenSSH» لمزيدٍ من المعلومات حول تحقيق هذا المتطلب؛ وبعد إكمال هذا الدرس، عليك تحديد ماذا تريد من سامبا أن يفعل لك، وتضبطه وفقًا لذلك. تثبيت البرمجياتهنالك ثلاث حزم مطلوبة لدمج سامبا مع LDAP: حزمة samba ،samba-doc و smbldap-tools. وإذا أردنا الدقة، فإن حزمة smbldap-tools ليست مطلوبة، لكن ما لم يكن لديك طريقة أخرى لإدارة قيود سامبا المختلفة (المستخدمين والمجموعات والحواسيب) في LDAP، فعليك تثبيتها. ثبِّت هذه الحزم الآن: sudo apt-get install samba samba-doc smbldap-toolsضبط LDAPسنضبط الآن خادوم LDAP لكي يلائم بيانات سامبا، إذ أننا سنجري ثلاث مهمات في هذا القسم: استيراد مخطط (schema).فهرسة بعض القيود.إضافة كائنات (objects).مخطط سامبالكي يُستخدَم OpenLDAP كسند خلفي (backend) لسامبا؛ فمنطقيًا يجب أن تَستخدم شجرة معلومات الدليل خاصياتٍ تستطيع وصف بيانات سامبا وصفًا سليمًا؛ و يمكن الحصول على مثل هذه الخاصيات باستخدام مخطط سامبا في LDAP؛ لنفعل ذلك الآن. ملاحظة: لمزيد من المعلومات حول المخططات وتثبيتهم، راجع القسم «تعديل قاعدة بيانات ضبط slapd» في الدرس السابق. يمكن العثور على المخطط في حزمة samba-doc التي ثبتناها الآن، لكنها تحتاج إلى أن يُفَكَّ ضغطها وتُنسَخ إلى مجلد ‎/etc/ldap/schema: sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema sudo gzip -d /etc/ldap/schema/samba.schema.gzاحصل على ملف الضبط schema_convert.conf الذي يحتوي على الأسطر الآتية: 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احصل على مجلد ldif_output لكي يُبقي على المخرجات. حدد فهرس المخطط: slapcat -f schema_convert.conf -F ldif_output -n 0 | grep samba,cn=schema dn: cn={14}samba,cn=schema,cn=configحوِّل المخطط إلى صيغة LDIF: slapcat -f schema_convert.conf -F ldif_output -n0 -H \ ldap:///cn={14}samba,cn=schema,cn=config -l cn=samba.ldifعدِّل ملف cn=samba.ldif المولَّد بحذف معلومات الفهرس حتى تصل إلى: 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ستختلف قيم خاصياتك. أضف المخطط الجديد: sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\=samba.ldifولطلب وإظهار المخطط الجديد: sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config \ 'cn=*samba*'فهارس سامبايعرف الآن slapd عن خاصيات سامبا، لنضبط الآن بعض الفهارس (indices) بناءً عليها؛ فهرسة المدخلات هي طريقة لزيادة الأداء عندما يُجرِي العميل بحثًا مُرشَّحًا على شجرة معلومات الدليل. أنشِئ الملف samba_indices.ldif بالمحتويات الآتية: 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استخدم الأداة ldapmodify لتحميل الفهارس الجديدة: sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f samba_indices.ldifإذا جرى كل شيء على ما يرام، فيجب أن تشاهد الفهارس الجديدة باستخدام ldapsearch: sudo ldapsearch -Q -LLL -Y EXTERNAL -H \ ldapi:/// -b cn=config olcDatabase={1}hdb olcDbIndexإضافة كائنات LDAP لسامباتاليًا، اضبط حزمة smbldap-tools لمطابقة بيئتك؛ تأتي هذه الحزمة مع ملف ضبط سيسأل بعض الأسئلة عن الخيارات الضرورية (اسمه smbldap-config.pl، وكان اسمه فيما مضى configure.pl)؛ لكن هنالك علِّة1 ليست مثبتة لكنه موجودة في الكود المصدري (apt-get source smbldap-tools). لضبط الحزمة يدويًا، عليك إنشاء وتعديل ملفَيّ ‎/etc/smbldap-tools/smbldap.conf و ‎/etc/smbldap-tools/smbldap_bind.conf. سيضيف سكربت smbldap-populate كائنات LDAP اللازمة لعمل سامبا؛ من الجيد عادةً أن تأخذ نسخةً احتياطيةً من كامل الدليل باستخدام slapcat: sudo slapcat -l backup.ldifأكمل بإملاء الدليل بعد أخذك لنسخةٍ احتياطيةٍ منه: sudo smbldap-populateتستطيع إنشاء ملف LDIF يحتوي كائنات سامبا الجديدة بتنفيذ الأمر: sudo smbldap-populate -e samba.ldifوهذا سيسمح لك بمعاينة التعديلات والتأكد من أن كل شيء صحيح؛ ثم نفِّذ السكربت لكن بدون الخيار ‎-e؛ أو تستطيع أخذ ملف LDIF واستيراد بياناته كالمعتاد. يجب أن يملك دليل LDAP الآن المعلومات الضرورية للاستيثاق من مستخدمي سامبا. ضبط سامباهنالك عدّة طرق لضبط سامبا، التي سنشرحها في هذه السلسلة لاحقًا؛ لتضبط سامبا ليستخدم LDAP، فعدِّل الملف ‎/etc/samba/smb.conf وأزل التعليق قبل معامل passdb backend وأضف بعض معاملات ldap: # passdb backend = tdbsam # 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"عدِّل القيم لتطابق بيئتك. أعد تشغيل خدمة samba لتفعيل الإعدادات الجديدة: sudo restart smbd sudo restart nmbdأخبر سامبا الآن عن كلمة مرور rootDN (تلك التي ضُبِطَت أثناء تثبيت حزمة slapd): sudo smbpasswd -w passwordإذا كان لديك مستخدم LDAP موجود مسبقًا، وأردت تضمينه في سامبا، فستحتاج لإضافة بعض الخاصيات؛ تَفعَل أداة smbpasswd هذا أيضًا (يجب أن يقدر المضيف على رؤية [أو سرد] هؤلاء المستخدمين عبر NSS؛ ثَبِّت واضبط إما libnss-ldapd أو libnss-ldap): sudo smbpasswd -a usernameسيُطلَب منك إدخال كلمة المرور، وستُعتبَر هي كلمة المرور الجديدة لهذا المستخدم. لإدارة حسابات المستخدم والمجموعة والجهاز، فاستخدم الأدوات الموفرة من حزمة smbldap-tools؛ هذه بعض الأمثلة: إضافة مستخدم جديد: sudo smbldap-useradd -a -P usernameيضيف الخيار ‎-a خاصيات سامبا، ويستدعي الخيار ‎-P الأداة smbldap-passwd بعد إنشاء المستخدم مما يسمح لك بإدخال كلمة مرور لذاك المستخدم. لإزالة مستخدم: sudo smbldap-userdel usernameاستُخدِم الخيار ‎-r في الأمر السابق لحذف مجلد المنزل للمستخدم المحدد. لإضافة مجموعة:sudo smbldap-groupadd -a groupnameوكما في الأمر smbldap-useradd، يضيف الخيار ‎-a خاصيات سامبا. لإنشاء مستخدم جديد ويكون عضوًا في مجموعة:sudo smbldap-groupmod -m username groupnameيمكن أن يضيف الخيار ‎-m أكثر من مستخدم في نفس الوقت بسردهم مفصولًا بينهم بفاصلة. لحذف مستخدم من مجموعة:sudo smbldap-groupmod -x username groupnameلإضافة حساب جهاز في سامبا:sudo smbldap-useradd -t 0 -w usernameاستبدل username باسم محطة العمل (workstation)، يُنشِئ الخيار ‎-t 0 حساب جهاز بدون تأخير، بينما يحدد الخيار ‎-w الحساب كحساب جهاز؛ لاحظ أيضًا أن معامل add machine script في ‎/etc/samba/smb.conf قد غُيِّر لكي يستخدم smbldap-useradd. هذه هي الأدوات في حزمة smbldap-tools التي لم نشرحها هنا: smbldap-groupaddsmbldap-groupdelsmbldap-groupmodsmbldap-groupshowsmbldap-passwdsmbldap-populatesmbldap-useraddsmbldap-userdelsmbldap-userinfosmbldap-userlistsmbldap-usermodsmbldap-usershowمصادرهنالك عدّة أماكن وثِّق فيها LDAP مع سامبا في «Samba HOWTO Collection».على الرغم من أن هذه الصفحة قديمة (2007) لكن صفحة «Linux Samba-OpenLDAP HOWTO» تحتوي ملاحظات مهمة.الصفحة الرئيسية «Samba Ubuntu community documentation» فيها مجموعة من الوصلات للمقالات المفيدة.ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Samba and LDAP.
  5. في درسنا هذا سنتعلّم طريقة عمل التّدرج اللّوني الشّبكي Gradient Mesh باستخدام برنامج أدوبي اليستريتور وكذلك استعمال العناصر الأساسيّة لتصميم فاكهة مانجو شبه حقيقية. 1. بدايةً نقوم بفتح برنامج Adobe Illustrator ونضغط على (Ctrl + N) لإنشاء ملف جديد بالإعدادات التّالية : الأبعاد: 850px*465px.نمط الألوان: CMYK.الدّقة: screen 300 ppi.ونتأكد أن الخاصيّة Align New Objects to Pixel Grid لا توجد أمامها علامة، ثم نضغط OK: 2. باستخدام أداة (Pen Tool (P نرسم شكلاً قريبًا من شكل فاكهة المانجو مثل الذي يظهر في الصّورة ، بالنسبة لي قمت باستعمال بعض الخطوط التّوجيهية guidelines حتى أقوم بتحديد حجمها. لا تنسى أن تنسخ الشّكل الذي قمت بعمله لأننا سنحتاجه لاحقا: 3. الآن نحدّد الشّكل ثمّ نتبع المسار التّالي: Object > Create Gradient Mesh ثم نحدد قيمة rows بـ: 10 وكذلك قيمة columns ونضغط على ok. بإمكاننا تحريك نقاط الشّبكة باستخدام الأداة (Direct Selection Tool (A: 4. باستخدام أداة التحديد (Direct Selection Tool (A نقوم بتحديد جميع نقاط الشبكة واحدة تلو الأخرى ونملأها باستخدام أداة التلوين. لست مجبرا على استخدام نفس الألوان التي تظهر في الصّورة المرفقة، بامكانك استخدام مخيلتك لخلق ألوان جديدة: 5. بعد الانتهاء من تعبئة الشّكل بالألوان، نقوم بتحديده ثم نتبع المسار التالي: Effects > Texture > Grain نقوم بإدخال القيّم الموضحة في الصورة ثم نضغط على زر موافق. 6. سنقوم بإضافة بعض اللّمسات التي ستجعل من شكل الفاكهة أكثر واقعيّة، نقوم أوّلا باتباع المسار التالي: Window > Symbols ستظهر لنا مكتبة صغيرة من الرموز نختار القائمة: Artistic textures، ثم نضغط على الرمز Charcoal ونسحبه إلى مساحة العمل، بعدها نضغط على Break Link حتى نقوم بتعديله: 7. مع تحديد الرّمز الذي قمنا بوضعه نتبع المسار التالي: Object > Envelope Disort > Make with Warp ونحدد القيمة 50% ونضغط Ok، بعدها نتبع المسار التالي: Object > Expand ونضغط Ok: 8. نحدّد الشّكل ونضغط على الأداة (Rotate Tool (R لتدويره 180 درجة بعدها نختار الزر Copy: 9. الآن نحدد الشكل الذي قمنا بعمله في أوّل خطوة، نضعه في الخلف باستعمال الاختصار Ctrl + Shift + ]، بعدها نحدد الرمز (الأصلي والنسخة التي قمنا بتدويرها 180 درجة) وشكل المانجو ثم نتبع المسار التالي: (Object > Clipping Mask > Make (Ctrl + 7 10. الآن نقوم بتحديد الرّمز Charcoal ونختار له اللون الأبيض، بعدها وباستخدام Transparency Panel نقوم بتغيير blending mode إلى Soft Light ثم نغير قيمة opacity إلى 50%: 11. سنرسم الآن ساق ثمرة المانجو، باستخدام أداة (Pen Tool (P نرسم شكلا شبيها بالذي يظهر في الصورة ونطبق عليه التدرج اللوني الشّبكي كما قمنا بعمله في الخطوة الثالثة، ثم وباستخدام أداة التحديد (Arrow Tool (A نقوم بتحديد نقاط الشبكة وتلوينها كما في الصورة: 12. نحدد الشكل الأخير ونتبع المسار التالي: Effects > Texture > Grain مع تحديد القيم التي في الصورة: 13. سنرسم الآن ساق الورقة، فنقوم أولا برسم شكل يشبه الذي في الصورة وذلك باستخدام أداة (Pen Tool (P مع تطبيق خاصية Gradient Mesh كما في الخطوات السابقة: 14. نقوم برسم الورقة كذلك باستخدام أداة (Pen Tool (P وتطبيق Gradient Mesh: 15. نحدد شكل الورقة ونتبع المسار التالي: Effects > Artistic > Smudge Stick نقوم بإدخال القيم الموضحة في الصورة ونضغط على زر موافق، آخر خطوة هي إضافة التأثير التالي: Effects > Artistic Plastic Wrap مع تحديد نفس القيم الموضحة في الصورة: 16. أنهينا تصميم فاكهة المانجو سنقوم الآن بعمل الخلفية. بداية نرسم مستطيلا أبعاده: 850px*465px ونقوم بتعبئته بالتدرج اللوني متعدد الألوان multicolor Gradient. بعدها نحدّده ونتبع المسار التالي: Effects > Texture > Film Grain مع إدخال نفس القيم: 17. وصلنا إلى آخر خطوة في درسنا هذا، باستخدام الأداة (Elipse Tool (L نرسم دائرة ثم نقوم بتعبئتها بالتدرج اللوني Radial Gradient الأبيض. نحدد قيمة Opacity بـ 0 ونغير Blending mode إلى Multiply: 18. هذه هي النتيجة النهائية لدرسنا: ترجمة -وبتصرّف- للدّرس How to create a Realistic Mango in Adobe Illustrator لصاحبه James Richman.