يتصل عميل VPN بخادم الملفات ويحل اسمه ومع ذلك لا يستطيع فتح مشاركة. سياسة المضيف في Samba واحدة من أربع طبقات يمكن أن ترفض ذلك الاتصال، وهي الطبقة التي يعدلها الناس أخيرًا. تُقيَّم قائمة السماح مقابل عنوان المصدر الذي يستقبله smbd فعليًا، وقد لا يكون العنوان الذي يظن العميل أنه يملكه. تحديد ذلك المصدر بدقة يحول مشكلة أذونات غامضة إلى تغيير إعداد من سطر واحد.

أربع طبقات تفشل بالرسالة نفسها

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

ابدأ بالنقل. إذا لم يصل المنفذ 445 إلى الخادم أبدًا فلا تهم أي إعدادات في Samba، ويحسم التقاط على واجهة الخادم الأمر في ثوانٍ. يأتي بعد ذلك جدار حماية المضيف على الخادم نفسه، وقد يُسقط مصدرًا مسموحًا قبل أن يراه smbd أصلًا. وبعد تجاوز هاتين الطبقتين فقط تصبح قائمة السماح مرشحة. تأتي المصادقة أخيرًا، لأن فشل تسجيل الدخول ورفض المضيف يبدوان مختلفين في سجل الخادم حتى عندما يبلّغ العميل عن كليهما كرفض وصول. الترتيب أهم من الأدوات، لأن لكل طبقة أمرًا يجيب عنها.

اعثر على عنوان المصدر الذي يراه smbd فعليًا

عند الوصول الموجّه يرى الخادم عادة عنوان العميل من تجمع VPN. وعند ترجمة المصدر على البوابة يرى بدلًا من ذلك عنوان الشبكة المحلية للبوابة، ويصبح كل عميل خلف تلك البوابة غير قابل للتمييز.

هذا الفرق يحدد ما إذا كان إدخال قائمة السماح سياسة أم ثغرة. السماح بعنوان بوابة مترجم يقبل كل من خلفها، وهو نادرًا ما تعنيه قاعدة لكل عميل. اقرأ المصدر من الخادم لا من فكرة العميل عن عنوانه. التقاط على واجهة الخادم هو أرخص وسيلة لرؤيته، والالتقاط نفسه يثبت هل وصلت الحزمة أصلًا. حدّد الالتقاط بعدد حزم وأضف مرشح مضيف عندما تعرف أي عميل تتابع. جدول جلسات Samba هو النصف الآخر من الجواب: في smbstatus -b يكون عمود العميل في كل صف جلسة هو النظير الذي سجله smbd، وهو أسرع تأكيد للعنوان الذي وصل فعليًا إلى الخدمة.

sudo tcpdump -ni any -c 20 'tcp port 445'
sudo smbstatus -b
ss -tnp | grep ':445'

اقرأ قائمة السماح كما يقرأها Samba

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

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

hosts allow = 192.168.50.0/24 10.90.0.0/24
testparm -s
testparm -s /etc/samba/smb.conf client.example 10.90.0.14

غيّر الملف الذي ينجو من إعادة التشغيل

على مضيف Linux عادي يكون مسار الإعداد ثابتًا وتقرأه الخدمة مرة أخرى عند إعادة التشغيل. أما على موجه أو جهاز فكثيرًا ما يُنشأ smb.conf العامل عند الإقلاع، ويختفي التعديل اليدوي عند إعادة التشغيل التالية. استخدم آلية التخصيص المدعومة في الجهاز، وهي عادة ملف إعداد خاص به.

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

سجّل الملف الذي غيّرته وما يعيد إنشاءه، حتى لا يكرر الشخص التالي التشخيص.

اختبر عميلًا مسموحًا وآخر مستبعدًا

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

smbclient -L //fileserver -U alice
sudo testparm -s /etc/samba/smb.conf alice-laptop 10.90.0.14
sudo tail -n 40 /var/log/samba/log.smbd

عندما لا يصل الاتصال إلى smbd أبدًا يكون الجواب في التوجيه أو في جدار حماية الخادم. وإذا قُبل المضيف وفشل تسجيل الدخول فالمشكلة في الهوية، ولن تساعد توسعة قائمة السماح مرة أخرى. أبقِ مخرجات التشخيص خاصة، لأن سجل Samba المفصل قد يكشف مسارات المشاركة وأسماء الحسابات. غيّر طبقة واحدة في كل محاولة، وإلا فلن تخبرك النتيجة التالية بشيء.

مقالات ذات صلة