محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

معرفی قالب ذخیره سازی پسوردها در لینوکس : فایل پسورد Linux

همانطور که پسوردها در ویندوز درون فایل SAM بصورت Hash شده نگهداری می شوند ، در سیستم عامل لینوکس نیز پسوردهای کاربران درون پایگاه داده یا بهتر بگوییم فایلی به نام shadow ذخیره می شوند. البته ساختار سنتی نگهداری پسورد فایل ها در سیستم عامل های خانواده Unix بصورت فایلی به نام passwd بود که در مطلب قبلی در خصوص آن مفصل صحبت کردیم و ساختارش را باز کردیم اما دیگر از passwd برای نگهداری رمز عبور استفاده نمی شود. طبیعتا پسوردها هیچوقت بصورت ساده و رمزنگاری نشده در سیستم عامل لینوکس ذخیره سازی نمی شوند. تمامی پسوردها در سیستم عامل ها بصورت رمزنگاری شده با الگوریتم های یکطرفه ای به نام Hash نگهداری می شوند.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

اگر مطابق آموزشی قبلی شما فایل مربوط به passwd را باز کنید قسمتی از قالب فایل بصورت علامت x نمایش داده شده است ، این یعنی پسورد مورد نظر در فایل shadow قرار گرفته است ، درواقع حرف x در فایل passwd بصورت یک لینک به فایل shadow کار می کند. در فایل shadow علاوه بر نگهداری پسوردها ، اطلاعاتی در خصوص پسورد و کاربر نیز نگهداری می شود. توجه کنید که فقط کاربر root می تواند محتویات فایل shadow را باز کند و آن را بخواند ، موارد زیر از مزایای استفاده کردن از فایل shadow به جای فایل passwd هستند :

  1. پسوردها توسط هر کاربری قابل مشاهده نیستند و فقط توسط root می شود این فایل را باز کرد
  2. پسوردها در قالب الگوریتم های رمزنگاری Hashing در این فایل ذخیره می شوند
  3. تمامی اطلاعات Password Aging در این قسمت ذخیره می شود
  4. با استفاده از فایل login.defs می توان policy های امنیتی به این فایل اعمال کرد

در زیر نمونه از ای محتویات فایل shadow را مشاهده می کنید که در خصوص آن توضیحاتی را ارائه خواهیم کرد :

root@itpro-kali:~# cat /etc/shadow 
root:$6$dSx6v.3w$NXENWxEl.eIlbCLSkbInpKpCHapHqwnyBzOxfu5R7p9zcdP4K3ucUkXZXPNbyr.rz6J9IaFQArxCa9fzXXwiW.:16835:0:99999:7:::
daemon:*:16471:0:99999:7:::
bin:*:16471:0:99999:7:::
sys:*:16471:0:99999:7:::
sync:*:16471:0:99999:7:::
games:*:16471:0:99999:7:::
man:*:16471:0:99999:7:::
lp:*:16471:0:99999:7:::
mail:*:16471:0:99999:7:::
news:*:16471:0:99999:7:::
uucp:*:16471:0:99999:7:::
proxy:*:16471:0:99999:7:::
www-data:*:16471:0:99999:7:::
backup:*:16471:0:99999:7:::
list:*:16471:0:99999:7:::
irc:*:16471:0:99999:7:::
gnats:*:16471:0:99999:7:::
nobody:*:16471:0:99999:7:::
libuuid:!:16471:0:99999:7:::
mysql:!:16471:0:99999:7:::
messagebus:*:16471:0:99999:7:::
colord:*:16471:0:99999:7:::
usbmux:*:16471:0:99999:7:::
miredo:*:16471:0:99999:7:::
ntp:*:16471:0:99999:7:::
Debian-exim:!:16471:0:99999:7:::
arpwatch:!:16471:0:99999:7:::
avahi:*:16471:0:99999:7:::
beef-xss:*:16471:0:99999:7:::
dradis:*:16471:0:99999:7:::
pulse:*:16471:0:99999:7:::
speech-dispatcher:!:16471:0:99999:7:::
haldaemon:*:16471:0:99999:7:::
sshd:*:16471:0:99999:7:::
snmp:*:16471:0:99999:7:::
iodine:*:16471:0:99999:7:::
postgres:*:16471:0:99999:7:::
redsocks:!:16471:0:99999:7:::
stunnel4:!:16471:0:99999:7:::
statd:*:16471:0:99999:7:::
sslh:!:16471:0:99999:7:::
Debian-gdm:*:16471:0:99999:7:::
rtkit:*:16471:0:99999:7:::
saned:*:16471:0:99999:7:::

خوب طبق روال در سیستم عامل لینوکس قسمت های مختلف تنظیمات با استفاده از علامت : از هم جدا می شوند وما به بررسی این قسمت ها در فایل shadow می پردازیم ، قسمت اول نام کاربری یا username را مشخص می کند ، قسمت دوم مشخص کننده پسورد کاربر است که بصورت رمزنگاری شده نگهداری می شود ، دقت کنید که این همان قسمتی است که در فایل passwd به عنوان x مشخص شده است. قسمت سوم Password History یا تاریخچه پسورد را مشخص می کند به این معنی که آخرین باری که پسورد تغییر کرده است را نمایش می دهد ، اگر توجه کنید خواهید دید که در اکثر موارد عدد 16471 قرار گرفته است .

این ساختار یونیکسی است که برای پسوردها در نظر گرفته شده است. قسمت چهارم mindays یا حداقل عمر پسورد ، قسمت پنجم maxdays یا حداکثر عمر پسورد ، قسمت ششم warndays یا زمانی که قبل از منقضی شدن پسورد سیستم به کاربر هشدار می دهد را نمایش می دهد در قسمت هفتم inactive یا عدم فعالیت کاربر بعد از منقضی شدن پسورد را نمایش می دهد ، قسمت نهم تعداد روزهای Disable بودن کاربر را مشخص می کند و قسمت نهم هم در حالت رزرو قرار دارد و هنوز استفاده آن تعریف نشده است ، قبلا در خصوص دستور chage صحبت کرده ایم و بصورت کامل در خصوص این پارامترها و نحوه تغییر دادنشان صحبت کرده ایم. امیدوارم مورد توجه شما قرار گرفته باشد. ITPRO باشید

نویسنده : محمد نصیری

منبع : انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات