آموزش ایجاد کاربر جدید در لینوکس و استفاده از ssh
سرور های لینوکس در حالت عادی بسیار ایمن هستند و از همه رقیب هایش بهتر است اما همچنان چند نقاط ضعف در آنها وجود دارد. سرور خوب سروری است که ایمن باشد, پس ما ضروریترین کارهایی که باید پس از خرید وی پی اس انجام داد در این پست به شما توضیح میدهیم تا هکر ها نتوانند به اطلاعات حساس شما دسرتسی پیدا کنند.
پس از خرید وی پی اس , یک ایمیل با مشخصات vps , ای پی سرور, نام کاربری (که در حالت پیشفرض root
است) و پسور آن برای شما ارسال خواهد شد. در صورتی که شما از نام کاربری روت برای اتصال به وی پی اس استفاده می کنید, کار را برای هکر ها بسیار آسان میکنید, هکر ها می توانند با حملات brute force (تلاش برای وارد شدن با ارسال هزاران پسور تصادفی در چند ثانیه ) سرور vps شما هک کنند, در این حملات چون نام کاربری root
قابل حالت پیشفرض است, هکر ها براحتی می توانند با حملاتی مانند brute force پسورد vps را در چند ساعات بدست آورند.
نام کاربری root
بخشی از سیستم عامل لینوکس است و نمیتوان آن را ویرایش یا حذف کرد اما میتوان امکان وارد شدن از طریق نام کاربری root
را بست و با ساخت یک کاربر جدید و دادن سطح اختیارات root
این مشکل را حل کرد.
به سرور وصل شوید
- ابتدا ترمینال را باز کنید
- با استفاده از
ssh
و ای پی سرور, وارد سرور شوید - از شما سوالی درباره مطمئن بودن تان پرسیده میشود
yes
را تایپ کنید و کلید اینتر را بزنید
#!/bin/bash
ssh root@104.248.57.186
- پسورد سرور را که قبلا به شما ایمیل شده وارد کنید
- دوباره پسورد را وارد کنید
- سیستم از شما یک پسور جدید برای نام کاربری
root
می خواهد - یک پسورد جدید تایپ کنید و آن را به خاطر بسپارید
- دوباره پسورد جدید را تایپ کنید
- در صورتی با موفقیت این مرحله را پست سر بگذارید پیام زیر را خواهید دید
root@pcname:~#
- با استفاده از دستور
exit
از سرور خارج شوید - دوباره به سرور وصل شوید و از پسورد جدید استفاده کنید
#!/bin/bash
ssh root@104.248.57.186
کلید های ssh بسازید
- در ترمینال سیستم خود یک تب جدید باز کنید
- به دلیل ایمنی بالای کلید های
ssh
برای وصل شدن به سرور همیشه از آن استفاده کنید - یک کلید جدید
ssh
برای وصل شدن به سرور بسازید (می توانید نامی متفاوت نتخاب کنید)
#!/bin/bash
ssh-keygen -t rsa -b 4096 -C "ardweb"
بعد از در ترمینال پیام زیر را خواهید دید
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ardweb/.ssh/id_rsa):
این متن را در ترمینال کپی کنید (می توانید نامی دلخواه انتخاب کنید)
#!/bin/bash
/Users/ardweb/.ssh/id_ardweb
سپس از شما رمزی عبوری برای کلید ها خواسته می شود
#!/bin/bash
Enter passphrase (empty for no passphrase):
البته به دلیل استفاده از کلید های ssh
و امنیت بالای آن, میتوانید بدون تایپ کردن چیزی, کلید اینتر را فشار دهید و بدون رمز عبور به سرور وی پی اس وصل شوید, درصورتی که از رمز استفاده کنید, مسلما سرور شما امنیت بیشتری خواهد داشت
- زمان چک کردن کلید های ساخته شده است
- دستور زیر را در ترمینال تایپ کنید
#!/bin/bash
cd ~/.ssh & ls
میتوانید لیست کلید های جدید را مشاهده کنید
id_ardweb
id_ardweb.pub
بدلیل اینکه ما به سرور دسترسی فیزیکی نداریم و نمی توانیم از رمزگذاری متقارن استفاده کنیم (در صورت ارسال کلید به صورت اینترنتی امکان لو رفتن وجود دارند), در ssh
از روش رمز گزاری نامتقارن استفاده میشود, ما کلید عمومی را در سرور ذخیره میکنیم و هنگامی که درخواست اتصال به سرور را ارسال میکنیم, سرور ssh
یک کلید مخصوص را با کلید عمومی id_ardweb.pub
رمزگذاری میکند و چون ما کلید خصوصی id_ardweb
را داریم, آن را رمزگشایی میکنیم و کلید مخصوص را به سرور ارسال میکنیم و اجازه اتصال به سرور داده میشود و پس از آن یک تونل رمزگذاری شده میان شما و سرور ایجاد میشود تا بتوانید سرور را با امنیت کامل کنترل کنید.
id_ardweb.pub
کلید عمومی است که میتوانید با همه به اشتراک بگذارید و id_ardweb
کلید خصوصی است که باید از آن به دقت مراقبت کنید تا در دسترس دیگران قرار نگیرد. با استفاده از دستور زیر کلید عمومی را در کلیبرد ذخیره کنید
cat id_ardweb.pub | pbcopy
این تب را در ترمینال ترک کنید و یک صفحه جدید در ترمینال باز کنید
ایجاد یک کاربر جدید برای جایگزینی با کاربر root
برای که اینکه ما دسترسی کاربر روت در آینده خواهیم بسته , پس یک کاربر جدید می سازیم تا بتوانیم یه سرور از طریق کاربر جدید دسترسی پیدا کنیم.
- به تبی که به سرور وصل شده بودید بر گردید
- دستور زیر را اجرا کنید (می توانید نامی دلخواه انتخاب کنید)
#!/bin/bash
adduser ardweb
- سیستم از شما یک پسورد برای کاربر جدید می خواهد
- دوبار پسورد را برای تایید تایپ کنید
- سیستم از شما مشخصاتی مانند , نام کامل, شماره و غیره می خواهد
- پس از تکمیل اطلاعات
y
را تایپ و اینتر را فشار دهید - اکنون با دستور زیر وارد نام کاربری
ardweb
میشویم
#!/bin/bash
sudo su ardweb
اعطا کردن امتیاز sudo به کاربر جدید
در حال حاضر ما با نام کاربر ardweb
در سیستم هستیم ولی این نام کاربری همچنان به امتیاز sudo
دسترسی ندارد و نمی توانیم دستورات su
را رد سیتم اجرا کنیم
- با دستور
exit
از این نام کاربری خارج شوید - دستور زیر را اجرا کنید
#!/bin/bash
usermod -aG admin ardweb
کاربر ardweb
هم اکنون به امتیاز sudo
دسترسی دارد و می توانیم در سیستم عامل تغییرات سیستمی اعمال کنیم. برای اطمینان با دستور زیر دوباره وارد نام کاربری ardweb
می شویم و دوباره وارد نام کاربری root
میشویم
#!/bin/bash
sudo su ardweb
cd
sudo su root
در صورتی به مراحل کار به درستی انجام شده باشد , میتوانیم با دستور به sudo su root
به نام کاربری root برگردیم, در غیر این صورت با خطا مواجه خواهید شد. اکنون به نام کاربری ardweb
بر میگردیم
#!/bin/bash
sudo su ardweb
اضافه کردن کلید عمومی ssh به سرور وی پی اس
درصورتی که فولدر ssh.
وجود نداشته باشد , فودر را ایجاد و داخل آن میشویم و با استفاده از نرم افزاری مانند nano
یا vim
فایل authorized_keys
را ایجاد میکنیم.
#!/bin/bash
mkdir .ssh
cd .ssh
vim authorized_keys
اگر به یاد داشته باشید ما قبلا با دستور cat id_ardweb.pub | pbcopy
کلید عمومی در کلیبورد ذخیره کرده بودیم, اگر پاک شده دوباره در سیستم خود وارد فولدر cd ~/.ssh
شوید و دستور cat id_ardweb.pub | pbcopy
را اجرا کنید و سپس در نرم افزار nano
یا vim
که سرور باز کرده بودیم برگردید و کپی کنید و پس از آن فایل را ذخیره کنید . متن باید چیزی شبیه به ssh-rsa XXXXXX
باشد.
اکنون میتوانیم با جفت کلید ها به سرور متصل شویم .
#!/bin/bash
ssh -i ~/.ssh/id_ardweb ardweb@100.100.100.100
تبریک میگم , شما سرور متصل شدید :)
حذف امکان اتصال کاربر root
دستور زیرا اجرا کنید
#!/bin/bash
sudo nano /etc/ssh/sshd_config or sudo nano /etc/ssh/sshd_config
عبارت های زیر به صورت بعد فلش تغییر دهید (بهتر است پورت ssh
را هم تغییر دهید)
PermitRootLogin yes -> PermitRootLogin no
PasswordAuthentication yes -> PasswordAuthentication no
فایل را ذخیره کنید و سپس یکبار ssh
را ریستارت کنید
#!/bin/bash
sudo service ssh restart
در صورتی بخواهیم از طریق نام کاربری روت متصل شویم با خطا روبه رو خواهیم شد
#!/bin/bash
ssh root@104.248.57.186
ssh root@104.248.57.186: Permission denied (publickey)