نحوه راهاندازی اولیه سرور مجازی با اوبونتو Ubuntu
۲۳ دی ۱۴۰۳
مقدمه
هنگامی که یک سرور مجازی (VPS) جدید با Ubuntu ایجاد میکنید، باید به عنوان بخشی از تنظیمات اولیه، چند مرحله مهم را انجام دهید. این مراحل امنیت و میزان بهرهوری سرور مجازی شما را افزایش داده و ساختار محکمی برای انجام عملیات دیگر در سرور، به شما، ارائه میدهد.
پیشنیازها
این آموزش، پیشنیاز خاصی ندارد؛ اما به شدت توصیه میشود که قبل از مطالعه این مقاله، مقالههای زیر را مطالعه و بررسی کنید:
- سرور مجازی یا VPS چیست؟ معرفی انواع VPS + کاربردها
- SSH چیست؟ + نحوه استفاده از SSH برای اتصال به سرور مجازی (VPS)
در ادامه، بخوانید:
- ورود به سرور مجازی به عنوان کاربر root
- نحوه ساخت کاربر جدید در سرور مجازی
- اعطای دسترسیهای مدیریتی به کاربر جدید (Administrative Privileges)
- تنظیم Firewall در سرور مجازی
- فعالسازی دسترسی خارجی (External Access) برای کاربر معمولی
مرحله اول — ورود به سرور مجازی به عنوان کاربر root
برای ورود به سرور، باید آدرس IP عمومی سرور خود را بدانید. همچنین، در صورتی که برای احراز هویت، یک SSH key نصب کرده باشید، نیاز به رمز عبور یا کلید خصوصی (Private Key) حساب کاربری root دارید.
اگر در حال حاضر به سرور متصل نیستید، با استفاده از دستور زیر بهعنوان کاربر root وارد شوید. عبارت your_server_ip
را با آدرس IP عمومی سرور خود جایگزین کنید (میتوانید به جای آدرس IP، دامنه سرور مجازی خود را وارد کنید):
ssh root@your_server_ip
پس از اجرای دستور فوق، اگر هشدار مربوط به host authenticity نمایش داده شد، آن را قبول کنید. اگر سرور مجازیتان از احراز هویت با رمز عبور استفاده میکند، رمز عبور کاربر root را وارد کنید تا وارد شوید. در صورتی که از SSH key محافظتشده با passphrase استفاده میکنید، ممکن است لازم باشد در اولین استفاده از کلید، در هر جلسه، passphrase را وارد کنید.
اگر این اولین باری است که با رمز عبور وارد سرور مجازی میشوید، ممکن است نیاز باشد رمز عبور root را تغییر دهید. در صورت دریافت پیام مربوطه، دستورالعملهای تغییر رمز عبور را دنبال کنید.
درباره کاربر root
کاربر root، کاربر مدیر در محیط Linux است که دسترسیهای پیشرفتهای (elevated privileges) دارد. به دلیل دسترسیهای بالای حساب root، توصیه میشود بهطور منظم، از این حساب استفاده نکنید. حساب root میتواند حتی بهصورت تصادفی، تغییرات مخربی را در سرور مجازی، ایجاد کند.
گام بعدی، ایجاد یک حساب کاربری جدید با دسترسیهای محدود برای استفاده روزمره است. در ادامه، نحوه دسترسی موقت (در مواقعی که نیاز باشد)، به مجوزهای بالا را، آموزش خواهیم داد.
مرحله ۲ — ایجاد یک کاربر جدید
پس از ورود به سرور مجازی لینوکس بهعنوان کاربر root، میتوانید یک حساب کاربری جدید ایجاد کنید. در آینده به جای استفاده از حساب root، با این حساب جدید وارد خواهید شد. در این مثال، یک کاربر جدید با نام lorem ایجاد میشود، اما شما باید این نام را، با نام کاربری موردنظر خود جایگزین کنید:
adduser lorem
پس از اجرای دستور فوق، چند سؤال از شما پرسیده میشود که با رمز عبور حساب کاربری شروع میشود. یک رمز عبور قوی وارد کنید و در صورت تمایل، اطلاعات اضافی دیگر را، پر کنید. پر کردن این اطلاعات الزامی نیست و میتوانید برای رد کردن هر فیلدی، کلید ENTER را فشار دهید.
مرحله سوم — اعطای دسترسیهای مدیریتی
اکنون، یک حساب کاربری جدید با دسترسیهای معمولی ایجاد کردهاید. با این حال، گاهی اوقات نیاز خواهید داشت تسکهایی را انجام دهید که تنها کاربر root، مجوزهای لازم برای انجام آنها را دارد.
برای جلوگیری از خروج از حساب کاربری معمولیتان و ورود مجدد به حساب root، میتوانید دسترسیهای مدیریتی (superuser یا root privileges) را برای حساب کاربری معمولی خود در سرور مجازی، تنظیم کنید. این دسترسیها به شما اجازه میدهند که با قرار دادن کلمه sudo قبل از دستور، فرمانها را با مجوزهای مدیریتی، اجرا کنید.
برای اضافه کردن این مجوزها به کاربر جدید، باید کاربر را به گروه سیستمی sudo اضافه کنید. بهصورت پیشفرض در Ubuntu، کاربرانی که عضو گروه sudo هستند، میتوانند از دستور sudo استفاده کنند. بهعنوان root، این دستور را اجرا کنید تا کاربر جدید را به گروه sudo اضافه کنید (نام کاربری lorem را با کاربر جدید خود جایگزین کنید):
usermod -aG sudo sammy
اکنون، وقتی که با کاربر معمولیتان وارد سرور مجازی لینوکس خود شدید؛ میتوانید قبل از دستورات مدنظرتان، sudo
را به کار ببرید تا آنها را با مجوزهای superuser، اجرا کنید.
مرحله چهارم – تنظیم Firewall
سرورهای مجازی Ubuntu میتوانند از UFW firewall استفاده کنند تا فقط اتصال به یکسری سرویسهای خاص، به آنها، مجاز باشد. با استفاده از UFW، میتوانید یک firewall ساده، راهاندازی کنید.
نکته: توصیه میشود که فقط از یک firewall در یک زمان، استفاده کنید تا از ایجاد تداخل در قوانین که ممکن است عیبیابی آنها دشوار باشد، جلوگیری شود.
برنامهها میتوانند پس از نصب بر روی سرور، پروفایلهای خود را با UFW رجیستر کنند. این پروفایلها به UFW امکان میدهد این برنامهها را با استفاده از نامشان، مدیریت کند. OpenSSH به عنوان سرویسی که به شما این امکان را میدهد به سرور مجازی خود متصل شوید، یک پروفایل ثبتشده در UFW دارد.
برای مشاهده لیست پروفایلهای نصبشده در UFW، میتوانید دستور زیر را تایپ کنید:
ufw app list
با اجرای دستور فوق، خروجیتان ممکن است مانند قطعه کد زیر، باشد:
Available applications:
OpenSSH
برای اطمینان از اینکه firewall، اجازه اتصالات SSH را میدهد تا دفعه بعد، بتوانید به سرور مجازیتان وارد شوید، این اتصالات را با اجرای دستور زیر مجاز کنید:
ufw allow OpenSSH
برای فعالکردن firewall، دستور زیر را اجرا کنید:
ufw enable
حرف y را تایپ کرده و کلید ENTER را فشار دهید تا عملیات، جلو برود. برای بررسی اینکه اتصالات SSH همچنان مجاز هستند، دستور زیر را اجرا کنید:
ufw status
با اجرای دستور فوق، خروجیتان ممکن است مانند قطعه کد زیر، باشد:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
firewall در حال حاضر، تمام اتصالات بهجز SSH را مسدود کرده است. اگر قصد دارید که سرویسهای اضافی دیگری را، نصب و پیکربندی کنید، باید firewall را برای اجازه دادن به ترافیک جدیدِ سرور مجازی، تنظیم کنید.
مرحله پنجم — فعالسازی External Access برای کاربر معمولی
اکنون که یک کاربر معمولی برای استفاده روزانهتان از سرور مجازی، ایجاد کردهاید، باید اطمینان حاصل کنید که میتوانید مستقیماً به این حساب، از طریق SSH وارد شوید.
نکته: تا زمانی که مطمئن نشدهاید میتوانید با حساب معمولیتان، وارد سرور مجازی شوید و قادر هستید که از sudo استفاده کنید، توصیه میشود که بهعنوان root، در سرور مجازی، بمانید. اگر در اتصال مشکل داشتید، میتوانید بهعنوان root، عیبیابی کرده و تغییرات لازم را اعمال کنید.
تنظیم دسترسی SSH برای کاربر جدید شما به این بستگی دارد که حساب root سرور مجازی شما برای احراز هویت، از رمز عبور استفاده میکند یا از SSH Keyها. اگر با استفاده از رمز عبور وارد حساب root شدهاید، احراز هویت با رمز عبور برای SSH فعال است. میتوانید با باز کردن یک ترمینال جدید و استفاده از SSH با نام کاربری جدید خود، مانند دستور زیر، وارد حساب جدید شوید:
ssh lorem@your_server_ip
پس از وارد کردن رمز عبور کاربر معمولی، وارد حساب کاربریتان در سرور مجازی، خواهید شد. به خاطر داشته باشید، اگر نیاز به اجرای دستوری با مجوزهای مدیریتی داشتید، کافی است پیش از آن، کلمهی sudo را تایپ کنید، مانند مثال زیر:
sudo command_to_run
هنگام استفاده از sudo برای اولین بار (و بهصورت دورهای در دفعات بعد)، از شما خواسته میشود رمز عبور کاربر معمولی خود را وارد کنید.
برای افزایش امنیت سرور خود، بهشدت توصیه میکنیم بهجای احراز هویت با رمز عبور، SSH Keys را تنظیم کنید.
اگر با استفاده از SSH Keys به حساب root وارد شدهاید، احراز هویت با رمز عبور برای SSH غیرفعال است. برای ورود به حساب کاربر معمولی با استفاده از SSH Key، باید یک نسخه از public key موجود در لوکال را به فایل ~/.ssh/authorized_keys
در حساب جدید اضافه کنید.
از آنجا که public key شما در فایل ~/.ssh/authorized_keys
حساب root روی سرور مجازی، قرار دارد، میتوانید این فایل و دایرکتوری آن را با استفاده از نشست فعلی، به حساب کاربر جدید، کپی کنید.
سادهترین راه برای کپی کردن فایلها با مالکیت و مجوزهای صحیح، استفاده از دستور rsync است. این دستور دایرکتوری .ssh
کاربر root را کپی میکند، مجوزها را حفظ میکند و مالکیت فایلها را تغییر میدهد؛ همه اینها در یک دستور انجام میشود. مطمئن شوید بخشهای مشخصشده در دستور زیر را با نام کاربر معمولی خود، جایگزین کنید:
rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
توجه: دستور rsync مسیرهایی که با trailing slash تمام میشوند را متفاوت از مسیرهایی که بدون اسلش انتهایی هستند، پردازش میکند. هنگام استفاده از دستور rsync، مطمئن شوید که دایرکتوری منبع (~/.ssh
) اسلش انتهایی ندارد (نباید از ~/.ssh/
استفاده کنید).
حالا، یک ترمینال جدید در local باز کنید و از SSH با نام کاربری جدید خود استفاده کنید:
ssh lorem@your_server_ip
با اجرای دستور فوق، باید به سرور مجازی خود با حساب کاربری جدید متصل شوید بدون اینکه نیازی به وارد کردن رمز عبور باشد. به خاطر داشته باشید، اگر نیاز به اجرای دستوری با دسترسیهای مدیریتی داشتید، کافی است پیش از آن کلمهی sudo را تایپ کنید، مانند مثال زیر:
sudo command_to_run
نتیجهگیری
در این مقاله، به بررسی تنظیمات اولیه سرور Ubuntu و اهمیت امنیت و مدیریت دسترسیها، پرداخته شد. ابتدا با ورود به سرور مجازی بهعنوان کاربر root و ایجاد یک حساب کاربری جدید با دسترسی محدود، به حفط امنیت سرور مجازی کمک کردیم. سپس به راهاندازی UFW firewall و نحوهی فعالسازی اتصال SSH برای دسترسی راحتتر اشاره شد. در نهایت، با استفاده از SSH keys و تنظیم دسترسیهای ادمین با sudo، امنیت و راحتی دسترسی به سرور افزایش پیدا کرد. پیروی از این مراحل به شما کمک میکند تا سرور خود را امنتر کرده و بتوانید به راحتی از آن استفاده کنید.
لیارا، یکی از ارائهدهندگان سرویس IaaS است و شما میتوانید به آسانی و در کمترین زمان ممکن، از یک سرور مجازی لینوکس (VPS)، برخوردار شوید. اگر که به دنبال خرید سرور مجازی ایران هستید و میخواهید که سرور مجازی مدنظرتان، شامل زیر ساخت قوی و در عین حال، ارزان باشد، میتوانید از VPS دائمی لیارا، استفاده کنید.
همچنین بخوانید: سرور ابری چیست؟ نحوه عملکرد و معرفی بهترین سرور ابری