PAM چیست؟ چرا اینقدر این ماژول در لینوکس مبهم توضیح داده شده است ؟ PAM در عین سادگی ، به دلیل درست معرفی نشدن به نظر کمی سخت به نظر می رسد اما شما با خواندن این مطلب و دریافت کردن مفهوم و هدف اصلی این سرویس در لینوکس متوجه می شوید که آنقدر هم PAM چیز سختی نیست . بگذارید قبل از اینکه به سراغ PAM برویم یک سناریو برای شما مطرح کنیم تا به درستی مفهوم این سرویس را درک کنید .
فرض کنید که قرار است یک برنامه بنویسید برای سیستم عامل لینوکس که کارهای بانکداری الکترونیکی انجام می دهد !!! یا ساده تر بگوییم یک سیستم مدیریت محتوای اینترنتی قرار است بنویسید که بر روی آن کاربران ثبت نام می کنند و در اینترنت سرویس می دهد ! یا یک ماژول برای سرویس FTP یا SSH لینوکس نوشته اید !!! مهمترین رکن امنیتی در این سرویس ها این است که یک مکانیزم احراز هویتی بسیار قوی باید داشته باشند ! حال راهکار چیست ؟ دو راهکار وجود دارد ، اول اینکه می توانید به عنوان یک برنامه نویس برای هر کدام از سرویس هایی که نوشته اید یک ماژول احراز هویت و امنیتی بنویسید ! دوم اینکه می توانید از یک API یا یک برنامه که کار تخصصی آن احراز هویت است استفاده کنید و فرآیند احراز هویت ( تشخیص واقعی بودن کاربر ) را به عهده آن بیندازید و فقط خروجی را دریافت کنید ! خوب به نظر شما کدام بهتر است ؟
خوب قطعا تا اینجا متوجه شده اید که یکی از بهترین نکات در امنیت که می توانید رعایت کنید ، استفاده کردن از ماژول ها و برنامه هایی است که قبلا نوشته شده اند و امتحان خود را پس داده اند ! درست متوجه شدید ، PAM همان برنامه ای است که شما می توانید برای احراز هویت برنامه ها و سرویس ها از آن استفاده کنید و خودتان را درگیر کدنویسی یک سیستم احراز هویتی نکنید . PAM در واقع یک مجموعه ماژول یا مجموعه ابزار است که به عنوان سرویس احراز هویت مرکزی برای شما در سیستم عامل لینوکس فعالیت می کند . شما به عنوان یک برنامه نویس یا حتی یک مدیر سیستم لینوکسی هیچ کاری ندارید که احراز هویت چگونه انجام می شود ، فقط کافیست PAM را به عنوان سرویس احراز هویتی به سیستم معرفی کنید و این فرآیند امنیتی را به عهده این سرویس بیندازید و دغدغه نوشتن یک سیستم امنیتی را نداشته باشید.
PAM مخفف کلمه های Pluggable Authentication Modules است ، به معنی مجموعه ماژول های احراز هویتی قابل نصب و حذف ( معنی کلمه Pluggable اگر درست برداشت کرده باشم ) است . یعنی این سرویس مجموعه ای از ابزارها را در اختیار دارد که بصورت ماژول به ماژول برای ما کار می کنند ، برای مثال اگر ما نیاز به احراز هویت برای سرویس SSH داریم ، می توانیم از ماژول SSH آن استفاده کنیم و در عین حال اگر نیاز به احراز هویت با سرویس Kerberos داشته باشیم هم می توانیم از همین سیستم استفاده کنیم . به زبان ساده تر PAM برای شما احراز هویت انواع سرویس ها را بصورت متمرکز و یکپارچه در اختیار قرار داده است و در لفظ امنیت یک SSO یا Single Sign On یا سیستم احراز هویت یکپارچه ایجاد کرده است .
PAM مجموعه ای از Library ها یا کتابخانه ها است که می تواند به یک کاربر یا یک Application سرویس احراز هویت را ارائه بدهد. اگر کمی از برنامه نویسی دید داشته باشید PAM را می توانید یک API احراز هویتی بدانید . PAM در اکثر سیستم عامل های لینوکسی جدید و مدرن پشتیبانی می شود و اکثر برنامه ها و سرویس ها با پشتیبانی PAM ارائه می شوند . جالبترین نکته در خصوص PAM این است که یک برنامه نویس می تواند آن را برای برنامه خودش دلخواه سازی کند و البته در عین حال یک مدیر سیستم که دیدی نسبت به احراز هویت و برنامه نویسی ندارد هم می تواند از ماژول ها برای سرویس هایش استفاده کند و اینکار صرفا با دستکاری و انجام تنظیمات چند فایل انجام می شود.
به عنوان یک مدیر شبکه لینوکسی به هیچ عنوان نیازی به این ندارید که بدانید داخل PAM چه خبر است . شما فقط می خواهید از PAM برای برنامه خودتان استفاده کنید و مهم این است که برنامه هم در اصطلاح فنی PAM Aware باشد یعنی PAM را پشتیبانی کند و تمام .... برنامه های PAM Support بصورت ویژه برای این سیستم نوشته و کامپایل می شوند . PAM یک ساختار احراز هویتی 4 مرحله ای دارد که به عنوان یک ساختار پشته ای (Stack ) ضمن عملکرد مستقل در کنار هم کار می کنند و مجموع آنها فرآیند کلی PAM را تشکیل می دهد که در ادامه این 4 مرحله یا در اصطلاح فنی گروه های مدیریت ( Management Group) را به شما معرفی می کنیم :
امیدوارم مورد توجه شما قرار گرفته باشد . در قسمت بعدی در خصوص انواع پارامترهای موجود در تنظیمات PAM و برخی از نکات مهم آن در توسینسو صحبت خواهیم کرد .
نویسنده : محمد نصیری
منبع : جزیره لینوکس و متن باز وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات
محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود