تغییر پسورد سرور لینوکس — آموزش کامل دستور passwd در لینوکس

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

این موضوع تنها مختص مدیران سرور نیست و کاربران خانگی هم باید بدانند که چطور پسورد حساب‌های کاربری خود را مدیریت کنند. برای تغییر پسورد در لینوکس از دستور passwd

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

چرا تغییر پسورد در سرور لینوکس ضروری است؟

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

غیر از مدیر سرور شخص دیگری نباید به پسورد سرور دسترسی داشته باشد. اگر کاربر یا کاربران دیگری برای کارهای خاصی نیاز به دسترسی به سرور دارند باید برای آن‌‌ها حساب کاربری جداگانه‌ای با سطح دسترسی مناسب ایجاد کنید تا آن‌ها از حساب کاربری مختص به خود استفاده کنند. همچنین بهتر است همه کاربران به صورت دوره‌ای پسورد خود را تغییر دهند تا احتمال درز پسورد به حداقل برسد. در ادامه این مقاله با روش‌هایی آشنا می‌شوید که به واسطه آن‌ها می‌توانید اجرای سیاست به‌روزرسانی دوره‌ای پسوردها را تضمین کنید.

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

کلیدی در داخل قفل دیجیتالی که به کدهای باینری احاطه شده است.

دسترسی به سرور برای تغییر پسورد

اگر بخواهید پسورد کامپیوتر یا لپ‌تاپ خود را تغییر دهید کافی‌ست یک ترمینال لینوکس باز کنید و مطابق آن‌چه در ادامه این مقاله از مجله فرادرس می‌خوانید پسوردها را به‌روز‌رسانی کنید. اما اغلب کاربران دسترسی مستقیم به سرور لینوکس خود ندارند. برای تغییر پسورد سرور لینوکس ابتدا لازم است تا از طریق ssh به سرور لینوکس خود متصل شوید تا بتوانید دستورهای مختلف را در سرور اجرا کنید.

دسترسی به سرور در ویندوز از طریق PuTTY

اگر از سیستم عامل ویندوز استفاده می‌کنید برای دسترسی به سرور باید ابتدا نرم‌افزار PuTTY «+» را دانلود و نصب کنید. پس از نصب PuTTY آن را اجرا کنید. در شکل زیر پنجره PuTTY و محل وارد کردن اطلاعات سرور را می‌بینید:

استفاده از ابزار putty در ویندوز برای اتصال به سرور و تغییر پسورد سرور لینوکس

در قسمت Host Name که با رنگ سبز در تصویر بالا مشخص شده است آدرس سرور را مشخص می‌کنیم. علاوه بر آدرس سرور، در این قسمت می‌توانیم نام‌کاربری حسابی که قصد ورود به آن را داریم نیز مشخص کنیم. مثلا در تصویر بالا می‌بینیم که در این قسمت عبارت [email protected]

  نوشته شده است. به این معنی که می‌خواهیم وارد حسابی با نام‌کاربری soroosh

 در سروری به آدرس 192.168.1.3

  شویم. چنانچه در این قسمت نام‌کاربری مشخص نشود پس از ورود به باید نام کاربری و پسورد را وارد کنیم. آدرس سرور معمولا یک آدرس آی‌پی است که توسط سرویس‌دهنده برای شما ارسال می‌شود. به طور معمول برای ارتباط ssh از پورت ۲۲ استفاده می‌شود، اگر سرویس‌دهنده شما پورت دیگری را برای اتصال ssh مشخص کرده است پورت مشخص شده را در قسمت Port مقابل آدرس سرور بنویسید. در نهایت روی کلید Open که در تصویر بالا با رنگ قرمز مشخص شده است کلیک کنید.

پس از این که روی کلید Open کلیک کردید، نام کاربری و پسورد از شما خواسته می‌شود. لازم به ذکر است هنگامی که پسورد را وارد می‌کنید در محیط ترمینال چیزی نوشته نمی‌شود. پس از وارد کردن پسورد کلید Enter را بفشارید تا به سرور متصل شوید. پس از اتصال به سرور می‌توانید فرمان‌های مختلف را از طریق اتصال ssh در سرور اجرا کنید.

اتصال به سرور در لینوکس از طریق ssh

اگر از یکی از توزیع‌های سیستم عامل لینوکس استفاده می‌کنید، برای اتصال به سرور باید از ابزار OpenSSH استفاده کنید. معمولا در بیشتر توزیع‌های لینوکس این ابزار به طور پیش‌فرض روی سیستم عامل شما نصب شده است. برای اتصال به سرور تنها کافیست از دستور ssh به این شکل استفاده کنید:

ssh user@server_address

به طور مثال برای اتصال به سروری به آدرس 192.168.1.3

  با نام کاربری user1

  باید دستور زیر را در ترمینال وارد کنید:

ssh [email protected]

پس از وارد کردن این دستور از شما خواسته می‌شود تا پسورد کاربر مربوطه را وارد کنید. در صورتی که پسورد صحیح را وارد کنید به سرور متصل می‌شوید و هر دستوری که پس از آن در ترمینال وارد کنید توسط سرور اجرا خواهد شد.

در صورتی که پس از وارد کردن دستور ssh پیام خطایی با متن زیر را مشاهده کردید به این معنی است که ابزار OpenSSH در سیستم عامل شما نصب نشده است و باید آن را نصب کنید.

ssh: command not found

برای نصب ابزار OpenSSH در توزیع‌های اوبونتو، دبیان و سایر توزیع‌های مبتنی بر دبیان دستورهای زیر را به ترتیب در ترمینال وارد کنید:

sudo apt-get update
sudo apt-get install openssh-client -y

دستور passwd برای تغییر پسورد سرور لینوکس

برای تغییر پسورد کاربران در لینوکس از دستور passwd استفاده می‌کنیم. نحو «syntax» دستور passwd به این شکل است:

passwd [options] [username]

در هنگام استفاده از این دستور به جای username نام‌کاربری کاربری را وارد می‌کنیم که قصد تغییر پسورد آن را داریم. البته دستور passwd در لینوکس کارکردهایی فراتر از تغییر پسورد کاربران دارد. در ادامه با کارکرد این دستور به طور کامل آشنا خواهیم شد.

تغییر پسورد سرور لینوکس

برای تغییر پسورد سرور لینوکس ابتدا باید وارد حساب کاربری خود شوید. پس از آن با وارد کردن دستور passwd به شکل زیر می‌توانید پسورد حسابی که با آن وارد شده‌اید را تغییر دهید:

passwd

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

تغییر پسورد سایر کاربران در سرور لینوکس

برای این که پسورد کاربرهای دیگر را تغییر دهید پس از وارد کردن دستور passwd باید نام‌کاربری مربوط به کاربری که قصد تغییر دادن پسورد او را دارید را وارد کنید. مثلا برای تغییر پسورد کاربری با نام‌کاربری user1 از دستور passwd به این شکل استفاده می‌کنیم:

sudo passwd user1

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

محافظت از سرورها با تغییر پسورد سرور لینوکس به کمک دستور passwd

لازم به ذکر است که برای تغییر پسورد کاربران دیگر حتما باید دستور passwd را به عنوان کاربر root اجرا کنید (عبارت sudo در ابتدای دستور بالا به معنای اجرا کردن دستور به عنوان کاربر root است). در نتیجه این امکان تنها برای کاربر root و سایر کاربرانی که از دسترسی اجرای sudo برخوردارند فراهم است. در صورتی که به عنوان کاربر root وارد شده باشید، نیازی به نوشتن عبارت sudo پیش از دستور passwd ندارید. این موضوع در مورد سایر دستورهایی که در ادامه این مقاله با عبارت sudo شروع می‌شوند هم صادق است.

حذف پسورد برای یک کاربر با دستور passwd در لینوکس

اگر پسورد یک کاربر را حذف کنید، آن کاربر بدون وارد کردن پسورد می‌تواند وارد حساب کاربری خود شود. این کار به لحاظ امنیتی تقریبا هیچگاه توصیه نمی‌شود. اما در شرایط خاصی ممکن است بخواهید پسورد حساب‌های کاربری موقت یا میهمان را با رعایت سایر ملاحظات امنیتی حذف کنید. برای این کار کافیست دستور passwd را به این صورت در ترمینال لینوکس وارد کنید تا کاربر مشخص شده بتواند بدون وارد کردن پسور وارد حساب کاربری خود شود:

sudo passwd -d username

ملزم کردن کاربران به تغییر پسورد سرور لینوکس پس از ورود

دستور زیر را در ترمینال لینوکس وارد کنید تا پسورد کاربر با نام‌کاربری username منقضی شود:

sudo passwd -e username

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

مسدود کردن حساب‌های کاربری با دستور passwd در لینوکس

با استفاده از این دستور می‌توانید یک حساب کاربری را مسدود کنید:

sudo passwd -l username

حساب‌های کاربری مسدود شده حتی با وارد کردن پسورد صحیح نیز نمی‌توانند وارد شوند. از این دستور می‌‌توانید در شرایطی که گزارش استفاده مشکوک از حساب‌های کاربری دریافت کرده‌اید استفاده کنید. همچنین در شرایط افشای پسورد کاربران باید بلافاصله حساب کاربری آن‌ها را مسدود کنید تا از دسترسی غیر مجاز جلوگیری کنید. با وارد کردن دستور زیر می‌توانید حساب‌های مسدود شده را از حالت مسدودی خارج کنید:

sudo passwd -u username
کلیدی روی یک لپتاپ که با کدهای مختلف اطراف خود احاطه شده است.

مشخص کردن بازه زمانی برای تغییر پسورد سرور لینوکس

پیش از این گفتیم با تغییر پسوردها به صورت دوره‌ای می‌توانید احتمال افشای پسوردها و وقوع دسترسی غیر مجاز به سیستم را کاهش دهید. برای این که اجرای سیاست‌های امنیتی خود را تضمین کنید لازم است کاربران سیستم شما ملزم به تغییر پسورد سرور لینوکس در بازه‌های زمانی مشخص شده شوند. با اجرای دستور زیر پسورد کاربر با نام کاربری user1 پس از حداکثر ۷ روز منقضی می‌شود. به این ترتیب اگر این کاربر طی ۷ روز پسورد خود را تغییر ندهد، پس از روز هفتم در اولین ورودش به سیستم از او خواسته می‌شود تا پسورد جدیدی تعیین کند و تا پسوردش را تغییر ندهد نمی‌تواند وارد حساب کاربری خود شود:

sudo passwd -x 7 user1

دستور زیر نیز از تغییر پسورد تا ۲ روز پس از تعویض قبلی پسورد توسط کاربر user1 جلوگیری می‌کند:

sudo passwd -n 2 user1
محافظت از سیستم با انتخاب پسورد مناسب

راهنمای انتخاب پسورد ایمن

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

برای انتخاب یک پسورد مطمئن به این نکات دقت کنید:

  • از اطلاعات شخصی خود مانند نام، تاریخ تولد، شماره شناسایی، آدرس و … و ترکیب آن‌ها در پسورد استفاده نکنید. ترکیب‌های محدودی که توسط این اطلاعات ساخته می‌شوند از اولین عباراتی هستند که توسط مهاجم‌ها بررسی می‌شوند.
  • از کلمات مشخص که در فرهنگ لغات زبان‌های مختلف وجود دارند در پسورد استفاده نکنید. ابزارهای خودکار تشخیص پسورد از ترکیب کلمات برای محدود کردن جستجوی پسورد استفاده می‌کنند. به این روش Dictionary attack می‌گویند.
  • از پسوردهای کوتاه استفاده نکنید، همچنین در صورت امکان از دامنه‌ وسیع‌تری از کاراکترها برای انتخاب پسورد انتخاب کنید.
  • از پسوردهای تکراری استفاده نکنید. با این کار در صورتی که پسورد یکی از حساب‌های کاربری شما به هر دلیلی افشا شود، سایر حساب‌های کاربری مربوط به شما نیز در معرض خطر قرار خواهند داشت.
  • پسوردهای خود را یادداشت نکنید و آن‌ها را به صورت رمزنگاری نشده ذخیره نکنید.

مهاجم در حال تلاش برای کسب دسترسی به سرور

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

جمع‌بندی

افشای پسورد سرور باعث به خطر افتادن کسب‌وکار شما می‌شود. به همین دلیل باید در فواصل زمانی مشخص تغییر پسورد سرور لینوکس را در دستور کار قرار دهید. برای تغییر پسورد حساب کاربری در لینوکس از دستور passwd استفاده می‌کنیم. کارکردهای این دستور که به تفصیل در این مقاله از مجله فرادرس مورد بحث قرار گرفتند را در جدول زیر مرور می‌کنیم:

دستور کارکرد
passwd تغییر پسورد کاربر فعلی با وارد کردن پسورد فعلی
sudo passwd username تغییر پسورد یک کاربر دیگر بدون نیاز به پسورد فعلی
sudo passwd -d username حذف پسورد برای یک کاربر
sudo passwd -e username منقضی کردن پسورد یک کاربر
sudo passwd -l username مسدود کردن یک حساب کاربری
sudo passwd -u username خارج کردن یک حساب کاربری از حالت مسدود
sudo passwd -x D username الزام کاربر به تغییر پسورد طی حداکثر D روز
sudo passwd -n D username جلوگیری از تغییر مجدد پسورد کاربر تا D روز پس از تغییر پسورد

همچنین لازم است کاربران هنگام تعیین پسورد از انتخاب پسوردهای ضعیف پرهیز کنند تا احتمال افشای پسوردها به حداقل برسد. بهترین راه انتخاب پسوردهای بلند و تصادفی است که حدس زدن آن‌ها برای مهاجمان تقریبا غیر ممکن خواهد بود.

source