برنامه نویسی

nsswitch.conf – انجمن DEV

**

اهمیت nsswitch.conf در لینوکس

**

را /etc/nsswitch.conf فایل نقش مهمی را در سیستم‌های لینوکس با تعریف اینکه سیستم چگونه انواع مختلف اطلاعات مانند کاربران، گروه‌ها، میزبان‌ها یا سرویس‌ها را حل می‌کند، ایفا می‌کند. این فایل ترتیب و روش انجام این جستجوها را مشخص می‌کند و مدیران را قادر می‌سازد تا نحوه تعامل سیستم با منابع داده مختلف را کنترل کنند.

آیا تا به حال ابزارهایی مانند پیکربندی کرده اید FreeIPA یا OpenLDAP برای مدیریت کاربران و مجوزهای سیستم لینوکس خود؟ یا آیا تا به حال نیاز داشته اید که دسترسی به هاست خاصی را در سرورهای خود قفل کنید؟ اینجاست که اهمیت nsswitch.conf آشکار می شود. این فایل به شما اجازه می دهد تا نحوه انجام جستجوها برای منابع داده مانند انجام شود ldap، dns، فایل ها، و بیشتر.

با این حال، نادیده گرفتن پیکربندی صحیح این فایل می تواند منجر به خطرات امنیتی جدی شود. به عنوان مثال:

  • اضافه کردن نامعتبر LDAP منبع ممکن است به مهاجمان اجازه به دست آوردن را بدهد ریشه دسترسی به سیستم شما
  • پیکربندی اشتباه mdns می تواند باعث اتصال سرویس ها به مقاصد مخرب یا ناخواسته شود.

در این مقاله به بررسی ساختار آن می پردازیم nsswitch.conf فایل، پارامترهای حیاتی آن و نحوه پیکربندی صحیح آن. برای درک عمیق تر از نحوه کار جستجوهای DNS در لینوکس، می توانید به Anatomy of a Linux DNS Lookup – Part I و Part II مراجعه کنید.


ساختار nsswitch.conf

را nsswitch.conf فایل شامل خطوطی است که a را تعریف می کند پایگاه داده و منابع جستجوی مرتبط با آن هر خط از این قالب کلی پیروی می کند:

:  [
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • : نوع اطلاعاتی که در حال حل شدن هستند را مشخص می کند (مثلاً کاربران، گروه ها، میزبان).
  • : منبع یا سرویس مورد استفاده برای جستجو را نشان می دهد (به عنوان مثال، files، ldap، dns).
  • : رفتار یا شرایط اضافی را برای جستجوها ارائه می دهد (به عنوان مثال، [NOTFOUND=return]).

همچنین می توانید برای درک گسترده تر از این سیستم به اسناد Oracle در Name Service Switch مراجعه کنید.


منابع کلیدی در nsswitch.conf

1. files

را files منبع از فایل های محلی برای بازیابی اطلاعات استفاده می کند. به عنوان مثال:

  • داده های کاربر و گروه از آن بازیابی می شود /etc/passwd و /etc/group.
  • نام هاست با استفاده از آن حل می شود /etc/hosts.

این سریع‌ترین و امن‌ترین گزینه است و اغلب در اکثر پیکربندی‌ها اول فهرست می‌شود.

2. dns

را dns منبع پرس و جو از سرورهای DNS برای حل نام هاست در آدرس های IP می شود. این معمولا در استفاده می شود hosts پایگاه داده

مثال:

hosts: files dns
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این به سیستم می گوید که ابتدا بررسی کند /etc/hosts و اگر نام میزبان پیدا نشد، از سرور DNS پرس و جو کنید.

جزئیات نحوه عملکرد رزولوشن DNS، از جمله تعامل آن با ابزارهایی مانند getaddrinfo و resolv.conf، به طور گسترده در Anatomy of a Linux DNS Lookup – Part I و Part II پوشش داده شده است.

3. ldap

را ldap منبع یک سرور LDAP را برای بازیابی کاربر، گروه یا داده های دیگر درخواست می کند. معمولاً در محیط های شبکه ای برای مدیریت مرکزی کاربران استفاده می شود.

مثال:

passwd: files ldap
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این پیکربندی به سیستم دستور می دهد که ابتدا داده های کاربر را در آن جستجو کند /etc/passwd و سپس سرور LDAP را پرس و جو کنید.

نکته امنیتی: پیکربندی نادرست یا اضافه کردن یک سرور LDAP نامعتبر می تواند به مهاجمان اجازه دهد تا کاربران ممتاز را به سیستم تزریق کنند.

4. nis و nisplus

را nis و nisplus منابع اطلاعات را با استفاده از سرویس اطلاعات شبکه (NIS) یا نسخه پیشرفته آن، NIS+ بازیابی می کنند. اینها اغلب در محیط های شبکه قدیمی استفاده می شوند.

مثال:

netgroup: nis
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این به سیستم دستور می دهد تا اطلاعات گروه شبکه را از NIS بازیابی کند.

5. mdns و mdns4_minimal

را mdns منبع DNS Multicast (mDNS) را فعال می کند که برای حل نام هاست در شبکه های محلی بدون نیاز به سرور DNS مرکزی استفاده می شود.

مثال:

hosts: files mdns4_minimal [NOTFOUND=return] dns
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • mdns4_minimal آدرس های IPv4 را با استفاده از mDNS حل می کند.
  • [NOTFOUND=return] در صورت یافتن هیچ سابقه ای، جستجوهای بیشتر را متوقف می کند و کارایی و امنیت را بهبود می بخشد.

6. db

را db منبع داده ها را از پایگاه داده های محلی در بازیابی می کند برکلی دی بی قالب این برای پایگاه داده هایی مانند استفاده می شود protocols و services.

مثال:

services: db files
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این به سیستم دستور می دهد که ابتدا در مورد آن پرس و جو کند services.db فایل و سپس به /etc/services.

7. compat

را compat منبع با ترکیب داده های فایل محلی با پرس و جوهای NIS سازگاری رو به عقب را برای سیستم های NIS قدیمی تر فراهم می کند.

8. hesiod

را hesiod منبع داده ها را از DNS برای اطلاعات کاربر و گروه بازیابی می کند. به ندرت در سیستم های مدرن استفاده می شود.


گزینه ها در nsswitch.conf

[NOTFOUND=return]

این گزینه به سیستم دستور می‌دهد تا در صورت عدم موفقیت جستجو برای یافتن داده‌های درخواستی، جستجوی منابع دیگر را متوقف کند.

مثال:

hosts: files mdns4_minimal [NOTFOUND=return] dns
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مثال، اگر mdns4_minimal نمی تواند نام میزبان را حل کند، سیستم دیگر به نظر نمی رسد و DNS را درخواست نمی کند.


مثال nsswitch.conf پیکربندی

در زیر یک پیکربندی معمولی برای nsswitch.conf:

passwd:         files systemd
group:          files systemd
shadow:         files
gshadow:        files

hosts:          files mdns4_minimal [NOTFOUND=return] dns mymachines
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • passwd، group، shadow، gshadow: داده های کاربر و گروه ابتدا از فایل های محلی بازیابی می شود.
  • hosts: نام هاست با استفاده از آن حل می شود /etc/hosts، mdns4_minimalو سپس DNS.
  • protocols، services، ethers، rpc: اطلاعات شبکه از فایل های Berkeley DB و فایل های متنی محلی بازیابی می شود.

نتیجه گیری

را nsswitch.conf فایل یکی از مهمترین فایل های پیکربندی در لینوکس است. این کنترل می کند که چگونه سیستم اطلاعات مهم را حل می کند و می تواند به طور قابل توجهی بر امنیت و عملکرد تأثیر بگذارد. پیکربندی نادرست در این فایل می‌تواند منجر به مشکلات جدی مانند دسترسی غیرمجاز یا مسیریابی نادرست سرویس‌ها شود. با درک منابع موجود و رفتار آنها، مدیران می توانند سیستم های خود را به گونه ای پیکربندی کنند که هم کارآمد و هم ایمن باشد.

برای مطالعه بیشتر در مورد وضوح DNS و پیچیدگی‌های نحوه رسیدگی لینوکس به جستجوها، آناتومی جستجوی DNS لینوکس – بخش اول و دوم را بررسی کنید.

https://docs.oracle.com/cd/E88353_01/html/E37852/nsswitch.conf-5.html

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا