البحث في الموقع
المحتوى عن 'sssd'.
-
يشرح هذا الدرس استخدام 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.
-
- ubuntu server
- active directory
-
(و 5 أكثر)
موسوم في: