مقدمه
وقتیکه میخواهید برای اولین بار یک سرور Ubuntu 20.04 جدید بسازید، باید چند مرحله مهم پیکربندی را که بخشی از پروسه کلی راهاندازی است، انجام دهید. این مراحل امنیت و پایداری سرور شما را بالا میبرد؛ همچنین سرور شما را برای تنظیمات و اقدامات بعدی آماده می کند. در ادامه مراحل راهاندازی اولیه سرور Ubuntu 20.04 را برای شما توضیح میدهیم؛ با وان سنتر همراه باشید.
مرحله اول – ورود به سرور به عنوان کاربر اصلی (Root)
برای وارد شدن به سرور باید آدرس IP سرور خود را بدانید. همچنین برای ورود به سرور با حساب کاربری اصلی به کلمه عبور نیاز دارید؛ در صورتی که SSH-key برای احراز هویت تعیین کردهاید، برای ورود به سرور باید از SSH-key شخصی استفاده کنید.
اگر هنوز به سرور خود وصل نشدهاید، همین حالا شروع کنید و با کد دستوری زیر بهعنوان کاربر اصلی وارد شوید. (به جای your-server-ip آدرس IP خود جایگزین کنید.)
ssh root@your_server_ip
برای کامل شدن ورود شما به سرور، نیاز است تا هویت سرور را از طریق SSH Footprint تایید کنید. البته این هشدار فقط بار اول نمایش داده می شود و در دفعات بعدی آن را نخواهید دید. اگر میخواهید از احراز هویت کلمه عبور استفاده کنید باید، کلمه عبور حساب کاربری اصلی خود را وارد کنید. در صورت استفاده از یک SSH-key حفاظت شده با عبارت عبور، در هربار وارد شدن با آن باید عبارت عبور را نیز وارد کنید. اگر اولین بار است که با استفاده ازکلمه عبور وارد سرور می شوید، بهتر است کلمه عبور خود را تغییر دهید.
کاربر اصلی
کاربر اصلی در واقع مدیر یک محیط لینوکس است که دسترسیهای بسیار زیادی دارد؛ همین دسترسی زیاد حساب اصلی، باعث میشود که شما از استفاده مداوم از آن منصرف شوید. دلیل آن هم بهخاطر این است که یکی از دسترسیهای حساب اصلی توانایی تغییرات مخرب است حتی اگر این تغییرات تصادفی و به اشتباه صورت گرفته باشند.
مرحله بعدی ساختن یک حساب کاربری جایگزین با دسترسیهای محدود شده برای کارهای روزانه است. ما به شما نحوه بالا بردن دسترسی حساب خود را در مواقعی که نیاز دارید آموزش میدهیم.
مرحله دوم – ایجاد حساب کاربری جدید
حالا که با حساب اصلی وارد سرور شدید، میتوانید یک حساب کاربری جدید بسازید؛ شما از این به بعد با این حساب جدید وارد سیستم خواهید شد.
دستور پایین نحوه اضافه کردن کاربر را نشان میدهد. شما باید به جای Your Username نام کاربری خود را بنویسید.
adduser Your Username
بعد از این کار باید کلمه عبور حساب خود را وارد کنید و بعد از آن چند سؤال دیگر از شما پرسیده میشود.
سعی کنید که یک کلمه عبور قوی و خوب انتخاب کنید. همچنین اطلاعات شخصی خود را میتوانید وارد کنید که البته کاملاً اختیاری است؛ بنابراین میتوانید در هر قسمت که نمیخواهید اطلاعاتی وارد کنید فقط دکمه Enter را بزنید تا از آن قسمت عبور کنید.
مرحله سوم – دسترسی مدیریتی
برای اینکه موقع ورود به حساب اصلی از حساب ثابت خود خارج نشوید، میتوانید دسترسی حساب اصلی یا به اصطلاح superuser را روی حساب ثابت خود، تنظیم کنید. این کار باعث میشود که شما بتوانید با استفاده از دسترسی مدیریتی، دستورهای خود را با اضافهکردن کلمه sudo قبل از هر دستور، اجرایی کنید.
برای اضافهکردن این دسترسی بهحساب کاربری جدید، باید حساب را به گروه sudo اضافه کنید. در Ubunto 20.04، کاربرانی که به گروه sudo تعلق دارند بهصورت پیشفرض اجازه استفاده از کد دستوری sudo را دارند.
برای اضافهکردن حساب کاربری جدید به گروه sudo باید با حساب کاربری اصلی این کار را انجام دهید. در دستور زیر بهجای Your Username نام کاربری خود را بنویسید.
usermod -aG sudo Your Username
الان با وارد شدن به حساب کاربری ثابت خود و نوشتن sudo قبل از دستورها، با دسترسی superuser آنها را اجرایی کنید.
مرحله ۴ – تنظیمات اولیه فایروال
سرورهای Ubunto 20.04 میتوانند از فایروال UFW استفاده کنند تا مطمئن شوند که تنها اتصال به سرویسهای معین، مجاز است. با این اپلیکیشن بهراحتی میتوانید یک فایروال اولیه بسازید.
اپلیکیشنهای مختلفی وجود دارند که میتوانند بهمحض نصب، پروفایلهای خود را با UFW ثبت کنند. این پروفایلها به UFW اجازه میدهند که این اپلیکیشنها را بر اساس اسم مدیریت کند. سرویس OpenSSH که به ما اجازه ورود به سرور را میدهد، یک پروفایل ثبت شده با UFW دارد. شما میتوانید این سرور را با نوشتن دستور زیر ببینید:
ufw app list
Available applications:
OpenSSH
شما باید مطمئن شوید که فایروال اجازه اتصالات SSH را میدهد چون در این صورت میتوانید دوباره وارد شوید. با نوشتن دستور زیر میتوانید این اجازه را به اتصالات بدهید:
ufw allow OpenSSH
سپس با نوشتن دستور زیر میتوانید فایروال را فعال کنید:
ufw enable
حرف y را بنویسید و بعد ENTER را برای ادامه کار بزنید. با نوشتن دستور زیر همچنان میتوانید اجازه اتصالات SSH را صادر کنید:
ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
حالا این فایروال همه اتصالات به جز SSH را بلاک میکند؛ اگر بخواهید سرویسهای اضافی را نصب و پیکربندی کنید، باید تنظیمات فایروال را بهگونهای تعیین کنید که اجازه ورود ترافیکهای مورد نیاز به سرور را بدهد.
مرحله ۵ – فعال کردن دسترسی خارجی برای حساب کاربری ثابت
حالا که یک حساب کاربری ثابت برای استفاده روزانه دارید، باید مطمئن شوید که میتوانید مستقیماٌ با SSH-key وارد حساب شوید.
نکته: تا زمانی که مطمئن نشدید میتوانید با حساب جدید وارد سرو شوید و از sudo استفاده کنید، توصیه میکنیم از حساب اصلی خارج نشوید. با ماندن در حساب اصلی میتوانید هر زمان که مشکلی در سرور پیش آمد، آن را عیبیابی کنید و تغییرات لازم را انجام دهید.
پروسه پیکربندی دسترسی SSH برای حساب کاربری جدید، بر اساس استفاده حساب اصلی از کلمه عبور یا SSH-key برای احراز هویت، متفاوت خواهد بود.
احراز هویت حساب اصلی با استفاده از کلمه عبور
اگر با استفاده از کلمه عبور وارد حساب اصلی خود شدهاید، احراز هویت کلمه عبور برای SSH فعال شده است. با باز کردن یک session ترمینال جدید و استفاده از SSH با نام کاربری جدید خود میتوانید با اتصال SSH وارد حساب کاربری خود شوید:
ssh username@your_server_ip
بعد از وارد کردن کلمه عبور حساب ثابت خود، وارد سرور خواهید شد. به یاد داشته باشید که اگر میخواهید دستوری را با دسترسی مدیریتی اجرایی کنید، قبل دستور sudo را بنویسید:
sudo command_to_run
وقتی که در هر session میخواهید برای اولین بار از sudo استفاده کنید، باید کلمه عبور حساب کاربری ثابت خود را وارد کنید. برای بالا بردن امنیت سرور، به شدت توصیه میکنیم که برای احراز هویت به جای کلمه عبور از SSH-key استفاده کنید.
احراز هویت حساب اصلی با استفاده از SSH-key
اگر با استفاده از SSH-key وارد سرور شدهاید احراز هویت کلمه عبور برای SSH غیرفعال شده است. شما باید SSH-key شخصی خود را در فایل ssh/authorized_keys./~ حساب جدید کپی کنید تا بتوانید با وارد سرور شوید.
SSH-key شخصی شما در فایل ssh/authorized_keys./~ حساب اصلی در سرور وجود دارد؛ بنابراین میتوانید در session فعلی، فایل و ساختار دایرکتوری را در حساب کاربری جدید کپی کنید.
آسانترین راه برای کپی کردن فایلها به همراه مالکیت صحیح و دسترسیها، دستور rsync است. با یک دستور ساده، دایرکتوری ssh. حساب اصلی با حفظ دسترسیها و تعیین مالکان فایل، کپی میشود. حتما قسمتهای هایلایت شده در دستور زیر را به نام کاربری حساب ثابت خود تغییر دهید:
نکته: دستور rsync در destination و سورسهایی که با یک (/) تمام میشوند، نسبت به آنهایی که با یک (/) تمام نمیشوند، متفاوت عمل میکند. وقتی که از rsync در دستور زیر استفاده میکنید، حواستان باشد که بعد از سورس دایرکتوری ssh./~ اسلش نداشته باشد (یعنی نگاه کنید که به شکل: /ssh./~ نباشد).
اگر تصادفاً در آخر دستور اسلش اضافه کنید، rsyncبه جای کل ساختار دایرکتوری ssh./~، محتوای دایرکتوری ssh./~ حساب اصلی را در دایرکتوری کاربر sudo کپی میکند. فایلها در مکان اشتباهی خواهند بود و SSH نمیتواند فایلها را پیدا و از آنها استفاده کند.
rsync --archive --chown=username:username ~/.ssh /home/username
حالا یک session ترمینال جدیدی در دستگاه خود باز کنید و برای نام کاربری جدید خود از SSH استفاده کنید:
ssh username@your_server_ip
حالا شما بدون استفاده از کلمه عبور وارد حساب کاربری جدید خود شدهاید. به یاد داشته باشید که اگر میخواهید دستوری را با دسترسی مدیریتی، اجرایی کنید، قبل دستور sudo را بنویسید:
sudo command_to_run
در هر Session به منظور استفاده از sudo، باید کلمه عبور خود را وارد کنید. با پایان این مراحل، تنظیمات اولیه سرور انجام شده است. میتوانید هر نرمافزاری را که نیاز دارید روی سرور خود نصب کنید.