منبع اصلی نوشتار زیر در این لینک قرار دارد

اعمال سیاست های پسورد در لینوکس

امنیت مهمترین جنبه هر سیستمی است. هر کاربر یا برنامه ای پیش از دسترسی به منابع بر روی سیستم می بایست توسط حساب کاربریش احراز هویت شود. حساب کاربری متشکل از نام کاربری و کلمه عبور است و ساده بودن یا بسیار پیچیده بودن پسورد ممکن است مشکلاتی را پیش بیاورد. اگر پسورد ساده باشد، به سادگی هم قابل حدس زدن است. برنامه هایی وجود دارند که با استفاده از یک دیگسنری از رشته ها، می توانند پسورد های ساده را با جستجو و تطبیق دیگشنری خود حدس بزنند. همچنین اگر پسورد بسیار پیچیده باشد، ممکن است فراموش شود و دیگر به سیستم و منابعش که تحت مالکیت کاربر است، دسترسی نشود.

استفاده از PAM در اعمال سیاست های امنیتی بر روی پسورد

در توزیع های لینوکسی (حتی سیستم عامل های بی اس دی و غیره) می توان از PAM استفاده کرد تا سیاست های امنیتی را برای احراز هویت اعمال کرد. می توانید برای آشنایی با PAM مطلب “Pluggable authentication module چیست” را بخوایند. یکی از وظایف مدیر اطمینان از مطمئن و قوی بودن پسورد کاربران است که مدیر می تواند برای این اطمینان از ماژول pam_cracklib.so استفاده کند. وقتی کاربری دستور passwd را برای ایجاد یاد  تغییر پسورد استفاده می کند،این ماژول وارد عمل شده و برخی از قوانین را برای امن و قوی کردن پسورد به کار می برد. به طور مثال اگر پسوردی که کاربر انتخاب کرد یک لغت رایج دیگشنری باشد، پیغام خطایی نشان داده شده و کاربر باید مجدد پسوردی پیچیده تر وارد کند. (خطای زیر نشان داده می شود)

BAD PASSWORD: it is too short

BAD PASSWORD: is too simple

از مطلب “آشنایی با PAM “می توانید با این ماژول تحت یک مثال آشنا شوید. البته pam_cracklib.so در توزیع های ابونتو و دبیان از پیش نصب نیست و لازم است آنرا با دستور زیر نصب کنید.

sudo apt-get install libpam-cracklib

ماژول دیگری که در امنیت پسورد به مدیر کمک می کند ماژول pam_passwdqc است که محفف Password quality-control و به معنی ماژول کنترل کیفیت پسورد است. این ماژول قدرت و پیچیدگی پسورد ورودی از سوی کاربر در زمان ایجاد یا تغییر پسورد را بررسی می کند. این ماژول از passphrase ها پشتیبانی کرده و همچنین پسوردهای تصادفی (قوی و پیچیده به طور مناسب) را ایجاد کرده و به کاربر پیشنهاد می دهد.

در فایل های پیکربندی PAM مربوط به دستور passwd در مسیر etc/pam.d/passwd/ و یا مربوط به سرویس system-auth در مسیر etc/pam.d/system-auth/ به طور سنتی دو خط زیر ممکن است مشاهده شود. (فایل system-auth مربوط به توزیع های مبتنی بر RHLE است و مشابه این فایل در ابونتو و دبیان common-password بوده و ممکن است در نسخه های تازه تر نامی متفاوت داشته باشد)

less /etc/pam.d/system-auth

OUTPUT

password   required     pam_cracklib.so retry=3

password  sufficient  pam_unix.so nullok use_authtok md5 shadow use_first_pass

البته تمامی توزیع ها از pam_passwordqc.so استفاده نمی کنند ولی در برخی توزیع ها مانند SUSE, RHLE استفاده شده است. این ماژول را می توانید از اینجا دانلود کنید. یک مثال از آن به صورت زیر است. قسمت قرمز رنگ خط بالا آرگومان هایی است که به آن ارسال شده اند.

password  required  pam_passwdqc.so min=disabled,12,8,6,5 max=40 passphrase=3 match=4 similar=deny random=42 enforce=everyone retry=3

البته در توزیع های رایجی مانند ابونتو، دبیان، فدورا، Redhat و CentOS از ماژول های pam_unix.so و pam_cracklib.so استفاده می شود که برای این پست باید هر دو نصب شده باشند. در توزیع های RHLE هر دو به صورت پیشفرض نصب بودن و pam_cracklib.so را در ابونتو دبیان با دستور apt-get ابتدای مطلب نصب کنید.

جلوگیری از استفاده مجدد پسورد توسط کاربر

همانطور که گفته شد فایل system-auth در توزیع های مبتنی بر RHLE و common-password در دبیان و ابونتو به عنوان فایل پیکربندی احراز هویت سیستم هستند.می خواهیم از استفاده مجدد کاربر از یک پسورد قدیمی برای پسورد جدیدش در زمان تغییر آن، جلوگیری کنیم.

در دبیان و ابونتو فایل زیر باز کرده و سپس در خطی که هم شامل password و هم شامل pam_unix.so است  آرگومان remember=NUMBER را به انتهای آن اضافه کنید. به طور مثال برای جلوگیری از استفاده مجدد از 5 پسورد اخیرا استفاده شده باید remember=5 را به انتهای خط اضافه کنید. پسورد های اخیرا استفاده شده در فایل etc/security/opasswd/ ذخیره می شوند.

password     [success=1 default=ignore]    pam_unix.so obscure sha512 remember=5

در توزیع های مبتنی بر RHLE باید به انتهای خط زیر از فایل system-auth اضافه کنید.

password   sufficient   pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

تعیین حداقل طول پسورد

در فایل های گفته شده به دنبال خطی که هم شامل password و pam_cracklib.so باشد بگردید و در انتهای خط آرگومان minlen=NUMBER را به ماژول pam_cracklib.so اضافه کنید. برای دشاتن پسورد هایی با حداقل طول 10 باید minlen=10 را اضافه کنید. در ابونتو

password   requisite    pam_cracklib.so retry=3 minlen=10 difok=3

و در توزیع های مبتنی بر RHLE

password   requisite   pam_cracklib.so retry=3 difok=3 minlen=10

اعمال پیچیدگی در زمان ایجاد یا تغییر پسورد

این را نیز در خطی که شامل هر دوی password و pam_cracklib.so است اعمال می کنیم. آرگومان lcredit=NIMBER برای حداقل به تعداد NUMBER از حروف کوچک در پسورد باشد و به همین ترتیب برای حروف بزرگ با آرگومان ucredit=NUMBER و آرگمان dcredit=NUMBER برای اعداد و برای مابقی کارکتر ها (مانند @) از ارگومان ocredit=NUMBER استفاده کنید. خط اول برای ابونتو و دومین خط برای RHLE است.

password   requisite    pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

password   requisite   pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

تنظیم تاریخ انقضای پسورد

فایل etc/login.defs/ تنظیماتی را بر روی پسورد اعمال می کند. سه پارامتر زیر حداکثر مدت زمانی که پسورد معتبر است را تعیین می کنند.

PASS_MAX_DAYS   150

PASS_MAX_DAYS   0

PASS_WARN_AGE 7

PASS_MAX_DAYS حداکثر تعداد روزهایی که پسورد می تواند استفاده شود. با گذشت از 150 روز بالا، یک اعلان مبنی بر تغییر پسورد در ورود بعدی نشان داده می شود. اگر می خواهید که محدویتی اعمال نشود، عدد 1- را استفاده کنید.

PASS_MIN_DAYS حداقل تعداد روزهای میان زمان تغییر پسورد که مجاز به استفاده از پسورد هستیم را نشان می دهد. اگر می خواهید محدودیتی اعمال نشود عدد1- را استفاده کنید.

PASS_WARN_AGE تعداد روزهایی که یک پیغام هشدار پیش از expire شدن پسورد شنان داده می شود را تعیین می کند. به طور مثال در بالا پس از 150 روز (شش ماه) اعلانی (پیام هشداری) به مدت هفت رو و تا پیش از انقضای پسورد برای تغییر و وارد کردن پسورد جدید نشان داده می شود. همچنین می توانید مطلب های “مجبور کردن کاربران لینوکسی به تعویض گذرواژه های خود” و “چگونگی تنظیم پسورد و غیر فعال کردن کاربران در لینوکس” را مطالعه کنید.



برچسب ها : , , , , ,