تغییر پسورد سرور لینوکس — آموزش کامل دستور passwd در لینوکس
![تغییر پسورد سرور لینوکس — آموزش کامل دستور passwd در لینوکس](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/11/A-penguin-like-Linux-logo-with-a-lock-in-the-hands-and-servers-and-keys-in-the-background-Index.jpg.webp)
به طور معمول اولین کاری که پس از راهاندازی سرور لینوکس لازم است انجام دهید تغییر پسورد در سرور لینوکس است. اگر یک سرور مجازی یا اختصاصی لینوکس خریده باشید معمولا سرویسدهندهای که سرور را به شما تحویل میدهد پسورد کاربر root یا کاربر اصلی را برای شما ارسال میکند تا بتوانید به سرور خود دسترسی داشته باشید. پس از دسترسی به سرور باید این پسورد را تغییر دهید. اگر هم خودتان اقدام به راهاندازی یک سرور لینوکس کرده باشید معمولا کاربرهای مختلفی لازم است روی آن ایجاد کنید و هر کاربر پس از اولین ورود به سیستم باید پسوردش را تغییر دهد. در هر صورت دانستن راههای تغییر پسورد در لینوکس برای هر کاربری ضروری است.
این موضوع تنها مختص مدیران سرور نیست و کاربران خانگی هم باید بدانند که چطور پسورد حسابهای کاربری خود را مدیریت کنند. برای تغییر پسورد در لینوکس از دستور passwd استفاده میکنیم. این دستور برای مدیریت زمان انقضای پسوردها و نیز قفل کردن حسابهای کاربری نیز مورد استفاده قرار میگیرد. در این مقاله از مجله فرادرس پس از بررسی اهمیت پسورد حسابهای کاربری در سرور و ضرورت تدوین سیاست امنیتی برای بهروزرسانی دورهای پسوردها، با دستور passwd در لینوکس آشنا میشویم و طی بررسی چند مثال تغییر پسورد کاربران با استفاده از این دستور را یاد میگیریم. در نهایت نکاتی را مرور میکنیم که برای انتخاب یک پسورد ایمن باید به آنها توجه کنیم.
چرا تغییر پسورد در سرور لینوکس ضروری است؟
هرکسی با در اختیار داشتن یک نامکاربری و پسورد معتبر میتواند به یک سرور دسترسی پیدا کند. اطلاعات شما، کسبوکارتان و مشتریانتان معمولا روی سرورهایی که استفاده میکنید به طریقی ذخیره شدهاند. همچنین سرویسی که ارائه میدهید، احتمالا برای اینکه کارکرد مورد انتظار را داشته باشد نیازمند این است که نرمافزارهای سرور دقیقا به همان صورتی که تنظیم کردهاید به کارشان ادامه دهند. اگر پسورد سرور شما قابل حدس زدن باشد یا کسی بتواند به آن دسترسی داشته باشد با استفاده از آن میتواند به سرور شما دسترسی کامل داشته باشد و به این ترتیب اطلاعات حساس کسبوکار شما و همجنین سرویسی که ارائه میدهید به خطر خواهند افتاد.
غیر از مدیر سرور شخص دیگری نباید به پسورد سرور دسترسی داشته باشد. اگر کاربر یا کاربران دیگری برای کارهای خاصی نیاز به دسترسی به سرور دارند باید برای آنها حساب کاربری جداگانهای با سطح دسترسی مناسب ایجاد کنید تا آنها از حساب کاربری مختص به خود استفاده کنند. همچنین بهتر است همه کاربران به صورت دورهای پسورد خود را تغییر دهند تا احتمال درز پسورد به حداقل برسد. در ادامه این مقاله با روشهایی آشنا میشوید که به واسطه آنها میتوانید اجرای سیاست بهروزرسانی دورهای پسوردها را تضمین کنید.
پسوردی که پس از خرید یک سرور لینوکس توسط سرویسدهنده برای شما ارسال میشود معمولا به صورت رمزنگاری نشده ارسال و ذخیره میشود. همچنین سرویسدهندهای که سرور را به شما تحویل داده است احتمالا به پسورد شما دسترسی دارد. در نتیجه برای جلوگیری از درز پسورد سرور باید بلافاصله پس از تحویل گرفتن سرور اقدام به تغییر پسورد در سرور لینوکس کنید تا مطمئن باشید که غیر از خودتان کسی از پسورد سرور اطلاع ندارد.
![یک سرور به همراه یک کلید و قفل با لوگوی لینوکس](https://blog.faradars.org/wp-content/uploads/2023/11/A-server-with-Linux-logo-on-it-and-a-shape-of-lock-and-key.jpg)
دسترسی به سرور برای تغییر پسورد
اگر بخواهید پسورد کامپیوتر یا لپتاپ خود را تغییر دهید کافیست یک ترمینال لینوکس باز کنید و مطابق آنچه در ادامه این مقاله از مجله فرادرس میخوانید پسوردها را بهروزرسانی کنید. اما اغلب کاربران دسترسی مستقیم به سرور لینوکس خود ندارند. برای تغییر پسورد سرور لینوکس ابتدا لازم است تا از طریق ssh به سرور لینوکس خود متصل شوید تا بتوانید دستورهای مختلف را در سرور اجرا کنید.
دسترسی به سرور در ویندوز از طریق PuTTY
اگر از سیستم عامل ویندوز استفاده میکنید برای دسترسی به سرور باید ابتدا نرمافزار PuTTY «+» را دانلود و نصب کنید. پس از نصب PuTTY آن را اجرا کنید. در شکل زیر پنجره PuTTY و محل وارد کردن اطلاعات سرور را میبینید:
![استفاده از ابزار putty در ویندوز برای اتصال به سرور و تغییر پسورد سرور لینوکس](https://blog.faradars.org/wp-content/uploads/2023/11/putty-example.jpg)
در قسمت Host Name که با رنگ سبز در تصویر بالا مشخص شده است آدرس سرور را مشخص میکنیم. علاوه بر آدرس سرور، در این قسمت میتوانیم نامکاربری حسابی که قصد ورود به آن را داریم نیز مشخص کنیم. مثلا در تصویر بالا میبینیم که در این قسمت عبارت soroosh@192.168.1.3 نوشته شده است. به این معنی که میخواهیم وارد حسابی با نامکاربری 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 user1@192.168.1.3
پس از وارد کردن این دستور از شما خواسته میشود تا پسورد کاربر مربوطه را وارد کنید. در صورتی که پسورد صحیح را وارد کنید به سرور متصل میشوید و هر دستوری که پس از آن در ترمینال وارد کنید توسط سرور اجرا خواهد شد.
در صورتی که پس از وارد کردن دستور 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
پس از وارد کردن دستور بالا کافیست دو مرتبه پسورد جدید را وارد کنید تا پسورد کاربر مورد نظر تغییر کند. دقت کنید که در این حالت دیگر نیازی نیست پسورد فعلی را وارد کنید، به این ترتیب اگر کاربری پسورد خود را فراموش کرده باشد، به این صورت توسط کاربر دیگری میتوان پسورد جدید برای آن کاربر تعیین کرد.
![یک مرد جوان نشسته پشت میز در حال کار با کامپیوتر، یک صفحه لاگین با لوگوی لینوکس در پس زمینه - تغییر پسورد سرور لینوکس](https://blog.faradars.org/wp-content/uploads/2023/11/A-guy-sitting-behind-a-desk-in-a-server-room-working-with-a-laptop-displaying-Linux-logo-and-a-login-page.jpg)
لازم به ذکر است که برای تغییر پسورد کاربران دیگر حتما باید دستور 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
![پنگوئن لینوکس با یک علامت ایست در دست، چند سرور در پس زمینه - تغییر پسورد سرور لینوکس](https://blog.faradars.org/wp-content/uploads/2023/11/A-Linux-pinguin-holding-the-sign-of-stop-with-servers-in-the-background.jpg)
حسابهای کاربری مسدود شده حتی با وارد کردن پسورد صحیح نیز نمیتوانند وارد شوند. از این دستور میتوانید در شرایطی که گزارش استفاده مشکوک از حسابهای کاربری دریافت کردهاید استفاده کنید. همچنین در شرایط افشای پسورد کاربران باید بلافاصله حساب کاربری آنها را مسدود کنید تا از دسترسی غیر مجاز جلوگیری کنید. با وارد کردن دستور زیر میتوانید حسابهای مسدود شده را از حالت مسدودی خارج کنید:
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 روز پس از تغییر پسورد |
همچنین لازم است کاربران هنگام تعیین پسورد از انتخاب پسوردهای ضعیف پرهیز کنند تا احتمال افشای پسوردها به حداقل برسد. بهترین راه انتخاب پسوردهای بلند و تصادفی است که حدس زدن آنها برای مهاجمان تقریبا غیر ممکن خواهد بود.