
آموزش ایجاد کاربر جدید در لینوکس و استفاده از 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)