خدمة الدليل مع LDAP [5]: OpenLDAP (II)

دعنا نستمر ، ليس بدون الاستشارة الأولى:

في هذا المنشور سوف نرى:

مصادقة المستخدم المحلي

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

في Squeeze ، الحزم المعنية هي:

libnss- ldap: توفير خدمة تبادل الأسماء (تبديل خدمة اسم NSS) يسمح لخادم LDAP بالعمل كخادم أسماء.

يعني توفير معلومات حول حسابات المستخدمين ومعرفات المجموعة ومعلومات حول المضيف والأسماء المستعارة و NetGroups وأي بيانات أخرى يتم الحصول عليها عادةً من ملفات نصية عادية مثل / الخ / باسود/ etc / group، وما إلى ذلك ، أو خدمة شيكل.

libpam-ldap"وحدة المصادقة القابلة للتوصيل لـ LDAP"، أو وحدة برنامج الأغذية العالمي لـ LDAP. يوفر واجهة بين خادم LDAP ونظام المصادقة من خلال برنامج الأغذية العالمي.

nscd"اسم خدمة ذاكرة التخزين المؤقت الخفي"، أو البرنامج الخفي لذاكرة التخزين المؤقت لخدمة الاسم. يتعامل مع البحث عن كلمات المرور والمجموعات والمضيفين ويخزن نتائج البحث للرجوع إليها في المستقبل.

: ~ # aptitude تثبيت إصبع libnss-ldap

تثبيت الحزمة libnss- ldap، والتي يتم تثبيتها أيضًا كاعتماديات libpam-ldap بالفعل الشيطان nscd، سوف يأخذنا عبر معالج التكوين ، الذي يجب أن نجيب على أسئلته بشكل مناسب:

ليبنس-01

ليبنس-02

ليبنس-03

ليبنس-04

ليبنس-05

ليبنس-06

ليبام -01

ليبام -02

ليبام -03

ليبام -04

إذا أردنا إعادة تكوين الحزم libnss- ldap و / أو libpam-ldap، يجب أن ننفذ:

: ~ # dpkg-إعادة تكوين libnss-ldap
: ~ # dpkg-إعادة تكوين libpam-ldap

في وقت لاحق نقوم بتعديل الملف /etc/nsswitch.conf ونتركه بالمحتوى التالي:

: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # مثال على تكوين وظيفة GNU Name Service Switch. # إذا كان لديك حزم `glibc-doc-reference 'و` info' مثبتة ، فجرب: #` info libc "Name Service Switch" للحصول على معلومات حول هذا الملف. passwd: التوافق ldap group: concub ldap shadow: مضيفو ldap المتوافقون: شبكات dns للملفات: بروتوكولات الملفات: خدمات ملفات db: ملفات db ethers: ملفات db rpc: ملفات db netgroup: nis

للتغييرات التي تم إجراؤها على الملف /etc/nsswitch.conf نافذة المفعول ، نعيد تشغيل الخدمة nscd:

: ~ # إعادة تشغيل nscd الخدمة

من التفاصيل المهمة تعديل الملف /etc/pam.d/common-session لمجلد المستخدم الذي سيتم إنشاؤه على الخادم المحلي عند تسجيل الدخول إليه ، مستخدم مسجل في الدليل:

: ~ # nano /etc/pam.d/common-session
[----]
الجلسة المطلوبة pam_mkhomedir.so skel = / etc / skel / umask = 0022
### يجب تضمين السطر أعلاه قبل # هنا الوحدات النمطية لكل حزمة (الكتلة "الأساسية") [----]

قم بتعبئة قاعدة البيانات

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

: ~ # محتوى nano.ldif
dn: ou = People، dc = friends، dc = cu objectClass: organizationUnit ou: People dn: ou = Groups، dc = friends، dc = cu objectClass: organizationUnit ou: Groups dn: cn = rings، ou = Groups، dc = friends، dc = cu objectClass: posixGroup cn: rings gidNumber: 10000 dn: uid = frodo، ou = People، dc = friends، dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: frodo sn: Bagins GivenName: Frodo cn : Frodo Bagins displayName: Frodo Bagins uid العدد: 10000 gid الرقم: 10000 مستخدم كلمة المرور: frodo mail: frodo@amigos.cu gecos: Frodo Bagins loginShell: / bin / bash home الدليل: / home / frodo

نضيف محتوى الملف إلى الدليل:

: ~ # ldapadd -x -D cn = admin، dc = friends، dc = cu -W -f content.ldif
أدخل كلمة مرور LDAP: إضافة إدخال جديد "ou = People ، dc = friends ، dc = cu" إضافة إدخال جديد "ou = مجموعات ، dc = أصدقاء ، dc = cu" إضافة إدخال جديد "cn = rings ، ou = مجموعات ، dc = friends، dc = cu "إضافة إدخال جديد" uid = frodo، ou = People، dc = friends، dc = cu "

نقوم بإجراء الفحوصات ذات الصلة:

: ~ # معرف فرودو
uid = 10000 (فرودو) gid = 10000 (حلقات) مجموعات = 10000 (حلقات)

: ~ # getent passwd | جريب فرودو
frodo: x: 10000: 10000: Frodo Bagins: / home / frodo: / bin / bas

: ~ # الإصبع فرودو
تسجيل الدخول: frodo الاسم: Frodo Bagins الدليل: / home / frodo Shell: / bin / bash لم تسجل الدخول مطلقًا. لا بريد. لا توجد خطة.

: ~ # ldapsearch -Y EXTERNAL -H ldapi: /// -b uid = frodo، ou = People، dc = friends، dc = cu

الآن لدينا خدمة دليل يجب علينا إدارتها !!! سنطور طريقتين: الأولى من خلال الحزمة ldapscriptsوالثاني الذي سنتناوله في المقال التالي سيكون من خلالمدير حساب Ldap.

يجب أن نقول أيضا أن الحزمة أدوات ldap، يوفر سلسلة من الأوامر المفيدة لإدارة الدليل. لمعرفة ما هي هذه الأوامر ، نقوم بتنفيذ:

: ~ # dpkg -L ldap-utils | grep / بن
/ usr / bin / usr / bin / ldapmodrdn / usr / bin / ldapurl / usr / bin / ldapdelete / usr / bin / ldapwhoami / usr / bin / ldapexop / usr / bin / ldappasswd / usr / bin / ldapcompare / usr / bin / ldapsearch / usr / bin / ldapmodify / usr / bin / ldapadd

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

إدارة قاعدة البيانات باستخدام الأدوات المساعدة لوحدة التحكم

نختار الحزمة ldapscripts لمثل هذه المهمة. إجراء التثبيت والتكوين كالتالي:

: ~ # aptitude install ldapscripts

: ~ # cp /etc/ldapscripts/ldapscripts.conf \ /etc/ldapscripts/ldapscripts.conf.original

: ~ # cp / dev / null /etc/ldapscripts/ldapscripts.conf

: ~ # nano /etc/ldapscripts/ldapscripts.conf
SERVER = localhost BINDDN = 'cn = admin، dc = friends، dc = cu' BINDPWDFILE = "/ etc / ldapscripts / ldapscripts.passwd" SUFFIX = 'dc = friends، dc = cu' GSUFFIX = 'ou = مجموعات USUFFIX = 'ou = People' # MSUFFIX = 'ou = GIDSTART لأجهزة الكمبيوتر = 10001 UIDSTART = 10001 # MIDSTART = 10000 # أوامر عميل OpenLDAP LDAPSEARCHBIN = "/ usr / bin / ldapsearch" LDAPADDBIN = "/ usr / bin / ldapadd" LDAPDELETEBIN = " / usr / bin / ldapdelete "LDAPMODIFYBIN =" / usr / bin / ldapmodify "LDAPMODRDNBIN =" / usr / bin / ldapmodrdn "LDAPPASSWDBIN =" / usr / bin / ldappasswd "GCLASS =" posixGroup "=" # "UTEM /ldapadduser.template "PASSWORDGEN =" echo٪ u "

### لاحظ أن البرامج النصية تستخدم أوامر ملف
### حزمة ldap-utils

: ~ # sh -c "echo -n 'tupassowrd'> \ /etc/ldapscripts/ldapscripts.passwd"

: ~ # chmod 400 /etc/ldapscripts/ldapscripts.passwd

: ~ # cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \ /etc/ldapscripts/ldapadduser.template

: ~ # nano /etc/ldapscripts/ldapadduser.template
dn: uid = ، ، objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: sn: الاسم المعطى: اسم العرض: uid: uidNumber: رقم: الدليل الرئيسي: تسجيل الدخول بريد: الأبراص: الوصف: حساب المستخدم

: ~ # nano /etc/ldapscripts/ldapscripts.conf
## نقوم بإزالة التعليق UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"

دعنا نحاول إضافة المستخدم سترايدر الملك لمجموعة المستخدمين خواتم ودعنا نتحقق من البيانات المدخلة:

: ~ # حلقات واسعة ldapadduser
[dn: uid = strides، ou = People، dc = friends، dc = cu] أدخل قيمة لـ "sn": The King [dn: uid = strides، ou = People، dc = friends، dc = cu] أدخل قيمة لـ "GivenName": Strides [dn: uid = strides، ou = People، dc = friends، dc = cu] أدخل قيمة لـ "displayName": Strides El Rey [dn: uid = strides، ou = People، dc = friends، dc = cu] أدخل قيمة لـ "mail": trancos@amigos.cu تمت إضافة trancos للمستخدم بنجاح إلى LDAP بنجاح تعيين كلمة المرور لنقل المستخدم

@ جذر معتدل: خطوات ~ # ldapfinger
dn: uid = strides، ou = People، dc = friends، dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: strides sn: El Rey مقدم الاسم: Strides displayName: خطوات El Rey uid: strides uidNumber: 10002 gidNumber: 10000 homeDirectory: / home / trancos loginShell: / bin / bash mail: trancos@amigos.cu gecos: trancos description: User Account userPassword :: e1NTSEF9UnlmcWxCem5iUzBuSzQzTkM3ZFRFcTUwV2VsVnBqRm8 =

دعنا نعلن كلمة المرور للمستخدم فرودو، دعنا نسرد "DN"من المستخدمين المسجلين ، وحذف المستخدم المنشأ حديثًا سترايدرز:

: ~ # ldapsetpasswd frodo
تغيير كلمة المرور للمستخدم uid = frodo، ou = People، dc = friends، dc = cu كلمة المرور الجديدة: أعد كتابة كلمة المرور الجديدة: تم تعيين كلمة المرور بنجاح للمستخدم uid = frodo، ou = People، dc = friends، dc = cu

: ~ # lsldap -u | grep dn
dn: uid = frodo ، ou = الأشخاص ، dc = الأصدقاء ، dc = cu dn: uid = الخطوات ، ou = الأشخاص ، dc = الأصدقاء ، dc = cu

: ~ # ldapfinger frodo
dn: uid = frodo، ou = People، dc = friends، dc = cu objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: frodo sn: Bagins المقدم الاسم: Frodo cn: Frodo Bagins displayName: Frodo Bagins uidNumber: 10000 gidNumber: 10000 mail : frodo@amigos.cu gecos: Frodo Bagins loginShell: / bin / bash homeDirectory: / home / frodo userPassword :: e1NTSEF9TnI4ZXN3YXA1VnplK1ZIZXZzbFZKaWF1SVdWeU5oVjA =

: ~ # خطوات ldapdeleteuser
تم حذف المستخدم uid = خطوات بنجاح ، ou = People ، dc = friends ، dc = cu من LDAP

: ~ # lsldap -u | grep dn
dn: uid = frodo ، ou = الأشخاص ، dc = الأصدقاء ، dc = cu

دعنا نتحقق من أن المصادقة المحلية تعمل بشكل صحيح:

: ~ # ssh frodo @ Mouldap
كلمة مرور frodo @ Mouldap: Linux Mouldap 2.6.32-5-686 # 1 SMP Fri مايو 10 08:33:48 بالتوقيت العالمي المنسق 2013 i686 [---] يأتي Debian GNU / Linux بدون ضمان مطلقًا ، إلى الحد الذي يسمح به القانون المعمول به . آخر تسجيل دخول: الثلاثاء 18 شباط (فبراير) 18:54:01 2014 من الرابط lightap.amigos.cu
frodo @ Mouldap: ~ $ pwd
/ المنزل / فرودو
فرودو @ Mouldap: ~ $ 

هناك العديد من الأمثلة التي يمكننا كتابتها ، لكن للأسف المقالة ستكون طويلة جدًا. نقول دائما أننا نعطي نقطة دخول لقضايا الخدمات بشكل عام. من المستحيل استبدال الوثائق الشاملة في منشور واحد.

لمعرفة المزيد عن الحزمة ldapscripts وأوامره من فضلك واستشر رجل ldapscripts.

حتى الآن تعمل خدمة الدليل البسيط القائمة على OpenLDAP بشكل جيد.

ملخص حتى الآن ...

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

إذا لم يختاروا منتجًا تابعًا لجهة خارجية مثل ClearOS أو Zentyal ، أو إذا كانوا يرغبون في أن يصبحوا مستقلين لأسباب أخرى ، فإنهم يضطلعون بالمهمة الشاقة المتمثلة في أن يصبحوا وحدة تحكم المجال الخاصة بهم ، أو من Samba 4 Active Directory الخاص بهم.

ثم تبدأ المشاكل وبعض خيبات الأمل الأخرى. أخطاء التشغيل. لم يجدوا مكان المشاكل ليتمكنوا من حلها. محاولات التثبيت المتكررة. العمليات الجزئية للخدمات. وقائمة طويلة من المشاكل.

تمر قاعدة أي وحدة تحكم بالمجال أو Active Directory في Linux ، استنادًا إلى OpenLDAP بالإضافة إلى Samba ، من خلال المعرفة الأساسية بـ ما هو خادم LDAP ، وكيف يتم تثبيته ، وكيف يتم تكوينه وإدارته ، وما إلى ذلك؟. أولئك الذين قرأوا وثائق سامبا الشاملة ، سيعرفون جيدًا ما نعنيه.

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


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   com.vidagnu قال

    ممتاز رسالتك Fico ، استعلام ، مع OpenLDAP ، هل يمكن إنشاء سياسات المجال؟ لتطبيقها على المستخدمين المتصلين ، مثل شاشة التوقف التي يتم تنشيطها بعد 5 دقائق من عدم النشاط ، وتكوين الخلفية ، ومنع بعض التطبيقات من التشغيل ، وتكوين البرامج النصية لبدء التشغيل ، وما إلى ذلك.

    التحيات،
    أوسكار

    1.    فيديريكو قال

      شكرا لتعليق !!!. أوسكار ، تذكر أن هذه السياسات ، على Linux ، يتم تنفيذها بشكل مختلف عندما يتعلق الأمر بعملاء Linux. يجلب جنوم أداة لتحقيق ذلك لا أتذكر اسمها الآن. نعم ، أعلم أنه يمكننا إنشاء سياسات حساب المستخدم مباشرةً في OpenLDAP. يسألني الكثيرون نفس السؤال ودائمًا ما أجيب على نفس السؤال تقريبًا. 🙂 تنطبق سياسات الأمان هذه على عملاء Microsoft فقط ، وليس عملاء Linux. إنهما فلسفتان مختلفتان. Active Directory هو تطبيق خاص يستند إلى OpenLDAP ، وهو Kerberos الشخصي من Microsft ومسؤول الشبكة ، والذي لا أعرف ما يسمونه الآن. من قبل ، كان في Lan Manager. لا يمكننا التفكير في محاكاة Active Directory مع LDAP فقط. سيتعين علينا دمج Samba أو استخدام Samba 4 لمعرفة ما إذا كان يمكن تحقيق ذلك. وصديقي ، لم ألقي نظرة واحدة على Samba 4. 🙂 ولا أعرف ما إذا كان بإمكان Zentyal مع Active Directory تطبيقها ... لكن هذا البرنامج ليس OpenLDAP فقط. إنه OpenLDAP + Samba + Kerberos + أشياء أخرى لا أعرفها جيدًا. 🙂 في هذه السلسلة أتعامل فقط مع OpenLDAP ، وإذا اتبعته سترى ذلك في الخلاصة التي أكتبها عن السلسلة بأكملها ، بالإضافة إلى الخدمات الأساسية الأخرى، كل شيء يعتمد على المصادقة مقابل دليل OpenLDAP.

      تحياتي