تجربة SAMBA classicupgrade على دبيان 8

الخلفية


هناك شبكة محلية صغيرة للمؤسسة ، حيث تم قبل 10 سنوات تقريبًا طرح نطاق على 3rd Samba + LDAP + BIND (على البوابة) في دبيان 5. في الواقع ، كانت تحتاج فقط إلى مصادقة المستخدم ، وكرات الملفات. على مر السنين ، قام الخادم بالترقية إلى إصدارات جديدة من دبيان دون أي مشاكل. في الوقت الحالي ، لديها Debian 8 و Samba 4.2 من الحزم.

منذ Windows 7 ، لم ينجح إدخال أجهزة الكمبيوتر في المجال ، دون العكاز المعروف مع تحرير التسجيل. عملت نفس العكاز في Win 8 و Win 10 حتى الإصدار 1803. بالإضافة إلى عدم القدرة على دخول أجهزة الكمبيوتر في المجال ، تراكمت مشاكل أخرى ، ونتيجة لذلك ، تقرر إجراء ترقية كلاسيكية. نظرًا لبساطة بنية شبكة LAN ، فقد تقرر استخدام Samba DNS الداخلي.

أريد أن أقول على الفور أن المقالة ليست دليلاً دقيقًا ، بل تجربة تنفيذ هذه العملية. ينصح بشدة مرحلة الاختبار المسبق. في حالتي ، تم التقاط صور الخادم للاختبار ونشرها على أجهزة VirtualBox الظاهرية. وكذلك لاختبار سلوك عملاء المجال الحاليين ، تم إنشاء Win XP SP3 و Win 10 1709 و 1803 أجهزة العميل.

أريد أيضًا أن أشير إلى أن الأخطاء المتكررة كانت بسبب الأخطاء المطبعية الشائعة. كن حذرا.

وصف البيئة


نظام التشغيل: Debian 8
المجال: samdom.local
اسم الخادم: pdc
خادم IP: 10.10.1.220

عملية الانتقال


تحديث الحزم لأحدث الإصدارات وتثبيت المفقودات.


في حالتي ، بعد التحديث ، كان يجب تسليم مستخدم krb5 فقط.

apt-get update apt-get upgrade apt-get install samba smbclient krb5-user winbind 

عند تثبيت مستخدم krb5 ، سيطرح النظام بعض الأسئلة حول اسم الخادم واسم المجال. نملأ بيانات خادمنا.

توقف سامبا


 service samba-ad-dc stop service smbd stop service nmbd stop service winbind stop 

نقل القواعد القديمة وتكوين السامبا


 mv /var/lib/samba /var/lib/samba.NT mv /etc/samba/smb.conf /etc/samba/smb.conf.NT 

لقد قمت بنقل قواعد البيانات القديمة إلى /var/lib/samba.NT لذلك تحتاج إلى إعادة إنشاء دليل / var / lib / samba

 mkdir /var/lib/samba 

توصي الوثائق بنقل جميع قواعد البيانات إلى مجلد منفصل. في حالتي ، وضع gencache_notrans.tdb فقط بشكل منفصل ، لذا اضطررت إلى نقله فقط.

 cp -p /run/samba/gencache_notrans.tdb /var/lib/samba.NT 

تقول الوثائق أيضًا أن هناك حاجة إلى ست قواعد بيانات فقط:

أسرار. tdb
schannel_store.tdb
passdb.tdb
gencache_notrans.tdb
group_mapping.tdb
account_policy.tdb

ومع ذلك ، فإن وجود ملفات أخرى في المجلد لم يمنع عملية الانتقال.

بدء عملية الترقية الكلاسيكية


 samba-tool domain classicupgrade —dbdir=/var/lib/samba.NT --realm=samdom.local --dns-backend=SAMBA_INTERNAL /etc/samba/smb.conf.NT 

ألاحظ أن الوثائق لا توصي باستخدام نطاق المستوى الأعلى محليًا ، ولكن في حالتي حدث ذلك تاريخيًا.

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

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

 rm -f /etc/samba/smb.conf rm -rf /var/lib/samba/* 

إذا سار كل شيء على ما يرام ، يمكنك الانتقال إلى الخطوة التالية.

فحص وتحرير تكوينات الخادم


يجب أن يكون في /etc/resolv.conf (إذا لم يتم إنشاؤه تلقائيًا لك)

 domain samdom.local nameserver 10.10.1.220 

في / etc / hosts

 127.0.0.1 localhost localhost.localdomain 10.10.1.220 pdc.samdom.local pdc 

يجب أن يكون لملف / etc / hostname اسم مضيف مختصر

 pdc 

في / etc / network / interfases

 dns-nameservers 10.10.1.220 dns-search samdom.local 

إعادة توجيه طلبات DNS


إذا كان الخادم سيعيد توجيه استعلامات DNS إلى الإنترنت (ويتم استخدام INTERNAL_DNS Samba) ، فأنت بحاجة إلى إضافة سطر من IP ISP الخاص بك في القسم [العالمي] في smb.conf:

 dns forwarder = ip 

في "Samba" 4.2 ، يمكنك تحديد عنوان IP واحد فقط. في ما يلي - عدد قليل ، مع مساحة.
إذا تم التحكم في حركة المرور الصادرة في بوابتك ، فلا تنس فتح مرور حزم UDP من الخادم إلى المنفذ 53.

تكوين Kerberos


نأتي /etc/krb5.conf إلى شكل مماثل:

 [libdefaults] default_realm = SAMDOM.LOCAL dns_lookup_realm = false dns_lookup_kdc = true krb4_config = /etc/krb.conf krb4_realms = /etc/krb.realms kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true v4_instance_resolve = false v4_name_convert = { host = { rcmd = host ftp = ftp } plain = { something = something-else } } fcc-mit-ticketflags = true [realms] SAMDOM.LOCAL = { kdc = pdc admin_server = pdc default_domain = SAMDOM.LOCAL } [domain_realm] .samdom.local = SAMDOM.LOCAL samdom.local = SAMDOM.LOCAL 

تزامن الوقت


إذا كانت حزمة ntp لا تستحق ذلك ، فقم بتعيين:

 apt-get install ntp 

في حالتي لم يكن هناك دليل / فار / ليب / سامبا / ntp_signd /. تم إنشاؤها يدويًا.

بعد ذلك ، تحتاج إلى منحه الحقوق:

 chown root:ntp /var/lib/samba/ntp_signd/ chmod 750 /var/lib/samba/ntp_signd/ 

بعد ذلك ، تحتاج إلى إحضار ملف /etc/ntp.conf إلى نموذج مشابه:

 # Local clock (Note: This is not the localhost address!) server 127.127.1.0 fudge 127.127.1.0 stratum 10 # The source, where we are receiving the time from server 0.pool.ntp.org iburst prefer driftfile /var/lib/ntp/ntp.drift logfile /var/log/ntp ntpsigndsocket /var/lib/samba/ntp_signd/ # Access control # Default restriction: Only allow querying time (incl. ms-sntp) from this machine restrict default kod nomodify notrap nopeer mssntp # Allow everything from localhost restrict 127.0.0.1 # Allow that our time source can only provide time and do nothing else restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery 

إزالة صفعة وإعادة التشغيل


 apt-get remove slapd reboot 

الاختبار


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

اختبار السامبا:

 root@debian:/root# smbclient -L localhost -U% Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.1.17-Debian] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.1.17-Debian) Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.1.17-Debian] Server Comment --------- ------- Workgroup Master --------- ------- 

إذا تلقيت خطأ هنا:
فشل الاتصال بـ loclhost (الخطأ NT_STATUS_UNSUCCESSFUL)

تحقق مما إذا كانت السامبا تبدأ. في أحد الاختبارات ، نسيت إزالة (إيقاف) slapd ورأيت أيضًا هذا الخطأ.

شيك آخر:

 $ smbclient //localhost/netlogon -Udomain_admin -c 'ls' Enter Administrator's password: Domain=[SAMDOM] OS=[Unix] Server=[Samba xyz] . D 0 Tue Nov 1 08:40:00 2016 .. D 0 Tue Nov 1 08:40:00 2016 49386 blocks of size 524288. 42093 blocks available 

اختبار DNS

 root@debian:/root# nslookup samdom.local Server: 10.10.1.220 Address: 10.10.1.220#53 Name: samdom.local Address: 10.10.1.220 

 $ host -t SRV _ldap._tcp.samdom.local. _ldap._tcp.samdom.example.com has SRV record 0 100 389 pdc.samdom.example.com. 

 $ host -t SRV _kerberos._udp.samdom.local. _kerberos._udp.samdom.example.com has SRV record 0 100 88 pdc.samdom.example.com. 

 $ host -t A pdc.samdom.local. dc1.samdom.example.com has address 10.10.1.220 

اختبار Kerberos

 root@debian:/root# kinit domain_admin@SAMDOM.LOCAL Password for domain_admin@SAMDOM.LOCAL: Warning: Your password will expire in 41 days on  27  2015 14:34:46 

 root@debian:/root# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: domain_admin@SAMDOM.LOCAL Valid starting Expires Service principal 16.10.2015 15:07:12 17.10.2015 01:07:12 krbtgt/SAMDOM.LOCAL@SAMDOM.LOCAL renew until 17.10.2015 15:07:07 

الإعداد الإضافي


لكي تظهر أسماء النطاقات والمجموعات على لينكس ، تحتاج إلى إصلاح /etc/nsswitch.conf بدلاً من الأرقام

يجب تخفيض السلاسل إلى الشكل التالي:
passwd: ملفات winbind
المجموعة: ملفات winbind

يرجى ملاحظة أن winbind يضاف فقط إلى هذه الخطوط. للحصول على التفاصيل ، راجع الوثائق.
في حالتي ، قمت أيضًا بإزالة ذكر ldap من هذا الملف.

 reboot 

إذا كنت مثلي قبل كلاسيكية الترقية من نظام أسماء النطاقات ، كان الخادم موجودًا على جهاز آخر وكنت تستخدم خادم DHCP ، فلا تنس تغيير إعدادات خادم DHCP التي تشير إلى خادم DNS

تكوين مجلدات الشبكة


لا ينصح المطورون باستخدام وحدة تحكم المجال AD كخادم ملفات. ومع ذلك ، في حالتي لم تكن هناك خوادم أخرى.

تم وصف الإعداد جيدًا في وثائق "Samba" وتحتاج إلى البحث هناك. باختصار ، إذن:

فمن الضروري التحقق من دعم السامبا ACL.

 smbd -b | grep HAVE_LIBACL HAVE_LIBACL 

لا تنس أنه يجب تركيب القسم مع خيارات user_xattr و acl.

يمكن فقط للمستخدمين والمجموعات الذين لديهم SeDiskOperatorPrivilege تكوين الحقوق الخاصة بالكرات:

على سبيل المثال ، لمنح هذه الحقوق لمجموعة Domain Admins ، تحتاج إلى تشغيل الأمر:
 net rpc rights grant "Samdom\Domain Admins" SeDiskOperatorPrivilege -U "Samdom\domain_admin" 

مباشرة لإضافة الكرات التي تحتاجها:

قم بإنشاء دليل وتعيين الحقوق اللازمة:

 # mkdir -p /srv/samba/Demo/ # chown root:"Domain Admins" /srv/samba/Demo/ # chmod 0770 /srv/samba/Demo/ 

أضف إلى smb.conf

 [Demo] path = /srv/samba/Demo/ read only = no 

بعد ذلك ، أعد تحميل تكوينات السامبا باستخدام الأمر:

 smbcontrol all reload-config 

كما كان من قبل ، يمكن إخفاء الكرات بإضافة وصفها:

 browseable = no 

بعد ذلك ، يتم توزيع الحقوق من نوافذ الجهاز ، من حساب مع SeDiskOperatorPrivilege . للقيام بذلك ، انتقل إلى "إدارة الكمبيوتر".
التشبث بجهاز كمبيوتر بعيد (وحدة تحكم مجال pdc في حالتنا). توزيع الحقوق من خلال: "المجلدات المشتركة" -> "الموارد المشتركة".

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

قد تكون المشاكل ممكنة إذا قمت بمشاركة مجلدات الشبكة القديمة بهذه الطريقة. قبل Classicupgrade ، تم تعيين حقوق الكرات عبر smb.conf ومستخدمي لينكس والمجموعة وغيرها و setfacl. بعد الترقية الكلاسيكية ، بدأت المدارس التي لديها الحق في التغيير وإعادة التسمية وما إلى ذلك في الظهور تدريجيًا. لم يساعد setfacl العودي ، حيث ظهرت عضادات مع وراثة الحقوق.

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

ونتيجة لذلك ، نظرًا لعدم وجود حجم كبير جدًا من الملفات ، فقد تم اتخاذ قرار بنقل البيانات إلى جهاز Windows خلال ساعات العمل ، وإعادة إنشاء مجلدات الشبكة وفقًا لتوصيات مطوري السامبا وإعادة تحميل الملفات.

المجلدات الرئيسية للمستخدم على الخادم


كما تم تغيير إدارة المجلدات الرئيسية للمستخدم.
تجدر الإشارة إلى أن العملية من التكوين موصوفة جيدًا في الوثائق .
سأصف فقط الميزات الرئيسية لحالتي.

في السابق ، حصل كل مستخدم على كرة خاصة به. الآن تتم مشاركة المجلد المشترك فقط ، ولا يمكن للمستخدمين الوصول إلا إلى دليلهم.

يتم تنفيذ الإعداد باستخدام Microsoft Administration Server Administration Tools (RSAT) . RSAT لديه ميزة غير سارة. عند ترقية Win 10 إلى إصدار جديد ، يجب إعادة تثبيته.

يمكن التقاط الكرات المنزلية يدويًا ، من خلال خصائص المستخدم في الأداة الإضافية للمستخدمين وأجهزة الكمبيوتر. علامة التبويب ملف التعريف. قرص يو: \\ pdc \ user-Share \ username

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

لا تنس أن الكرة المشتركة يمكن إخفاؤها بإضافة وصفها:

 browseable = no 

رفع مستوى المجال


تمت ترقية المجال دون مشاكل إلى المستوى 2008_R2 باستخدام الأمر:

 samba-tool domain level raise --domain=2008_R2 --forest=2008_R2 

يمكنك عرض المستوى باستخدام الأمر:

 samba-tool domain level show 

إذا تم قصف smbd.log بأخطاء CUPS


في حالتي ، ظهرت هذه المشكلة:

تعذر الاتصال بخادم مضيف CUPS: 631

تم تصحيحه بواسطة هذه المقالة القصيرة.

ترقية لاحقة لمشكلة وحل دبيان 9


في

 apt-get dist-upgrade 

كانت هناك مشكلة ، وهي السامبا ووينبيند لا تريد تحديثها. دخلت في صراع التبعيات.

ساعدت الطريقة من المقالة الرابط الذي لم أحفظه للأسف.
هنا اقتباس مباشر منه:

إذا كان Samba في وضع AD-DC ، فإنه سيفشل و winbind.
قم بهذه الأوامر ، ثم حاول تشغيل الترقية مرة أخرى

توقف النظام
تعطيل النظام
يكشف نظام systemctl samba-ad-dc
systemctl تبدأ سامبا الإعلانية
systemctl تمكين سامبا ad-dc


بعد تحديث إصدار سامبا ، يوصى بما يلي: "فحص قاعدة بيانات سامبا AD DC".



# samba-tool dbcheck --cross-ncs

منذ في سامبا الإصدار 9 4.5 حصلت على مجموعة من الأخطاء "replPropertyMetaData".
عملية استكشاف الأخطاء وإصلاحها موصوفة في الوثائق:

wiki.samba.org/index.php/Updating_Samba#Fixing_replPropertyMetaData_Attributes

والأمر يتعلق بتنفيذ الأمر:

samba-tool dbcheck --cross-ncs --fix --yes

قائمة المصادر المستخدمة


وثائق سامبا:

ترحيل نطاق Samba NT4 إلى Samba AD (ترقية كلاسيكية)
إعداد Samba كوحدة تحكم مجال Active Directory
إعداد مشاركة باستخدام قوائم التحكم في الوصول إلى Windows
مجلدات الصفحة الرئيسية للمستخدم
مقال رائع:
وحدة تحكم مجال دبيان 8 (... التي تحتوي بالفعل على Samba4 مدمج)
خطأ في Samba: تعذر الاتصال بخادم CUPS المحلي: 631
مقال لمؤلف إنجليزي غير معروف يصف كيفية الترقية إلى دبيان 9

Source: https://habr.com/ru/post/ar418499/


All Articles