آموزش

آموزش نصب سیستم عامل لینوکس سرور اوبونتو

وقتی که یک سرور لینوکس Ubuntu را راه اندازی می کنید برخی تنظیمات اولیه را در چند مرحله باید انجام دهید. این تنظیمات باعث افزایش امنیت و کارایی سرور شما می شود و یک زیرساخت مطمئن را برای اقدامات و کارهای بعدی که می خواهید روی سرور انجام دهید فراهم می کند. در این آموزش از پارس پک تنظیمات اولیه راه اندازی برای نصب سیستم عامل لینوکس سرور اوبونتو را مطرح می کنیم.

پیش نیاز نصب سیستم عامل لینوکس سرور اوبونتو

در این آموزش به موارد زیر نیز داریم :

  • یک سرور لینوکس Ubuntu 18.04
  • مشخصات دسترسی به سرور : اگر به سرورتان از راه دور مانند SSH دسترسی دارید باید آدرس IP سرور و نام کاربری و رمز عبور سرور را برای اتصال به سرور داشته باشید. اگر به سرور دسترسی مستقیم دارید نیز باید نام کاربری و رمز عبور را داشته باشید.

1 – ورود به سرور Logging

برای ورود به سرور از چند روش می توانید استفاده کنید:

  • اول اینکه اگر شما به سرور دسترسی مستقیم دارید می توانید با Console سرور نام کاربری و رمز عبور خود را وارد کرده و وارد سرور شوید.
  • روش دوم اتصال از راه دور است که عمدتا از طریق SSH انجام می شود که به صورت دستوری یا با استفاده از ابزار می شود. در این حالت به محیط دستوری سرور متصل می شوید و خبری از گرافیک و GUI نیست. ( البته می توانید با استفاده از دستورات گرافیکی محیط X را فعال کرده و وارد آن شوید که این حالت را توصیه نمی کنیم). برای ارتباط SSH نیز ابزارهای زیادی وجود دارد که معروفترین آنها PUTTY است.
  • روش سوم اتصال به صورت گرافیکی و ابزار های GUI است که معروف ترین این ابزارها VNC است که یک برنامه محبوب و متن باز Open Source است. البته لینوکس Ubuntu نسخه server به صورت پیش فرض محیط گرافیکی ندارد که یا باید نسخه Desktop را نصب کنید یا یک محیط گرافیکی برای آن نصب کنید.

با هر روشی که به سرور متصل شوید باید یک کاربر و رمز عبور برای احراز هویت و تعیین سطح دسترسی داشته باشید.

2- ایجاد کاربر با دسترسی superuser – ایجاد کاربر non-root

همانطور که می دانید، کاربر root در سیستم عامل های لینوکس، کاربر ریشه و اصلی ترین کاربر است که بالاترین سطح دسترسی superuser را دارد و معادل کاربر Administrator در سیستم عامل های ویندوزی است. برای امنیت بیشتر این کاربر در سیستم عامل لینوکس Ubuntu از نسخه 12 به بعد به صورت پیش فرض برای اتصال از راه دور و ورود به سیستم، غیر فعال است.

عموما در هنگام نصب سرور Ubuntu از شما یک نام کاربری و رمز عبور به غیر از root باید تعیین کنید. این کاربر، یک کاربر غیر root و عضو گروه sudo هست که مجوز Privilege های دسترسی کاربر superuser را دارد. وقتی که می گوییم یک کاربر non-root با مجوز root یا superuser باید داشته باشید به این معنی است که یک کاربر به غیر از کاربر ریشه root که عضو گروه sudo برای اجرای دستورات superuser داشته باشید.

نکته : به صورت پیش فرض، هنگام ورود به سرور، چه با اتصال از راه دور SSH و چه با دسترسی مستقیم Console نمی توانید با کاربر root وارد شوید و باید با کاربری که هنگام نصب ایجاد شده است را وارد کنید. اگر از سرور مجازی استفاده می کنید، باید دسترسی کاربر ایجاد شده را از شرکت هاستینگ مورد نظر درخواست کنید. البته در بیشتر شرکت های فروش هاستینگ و ارائه دهنده های خدمات سرور مجازی، به خصوص شرکت پارس پک ParsPack این مشخصات به صورت خودکار در اختیار شما قرار می گیرد.

اضافه کردن دستور جدید

برای اضافه کردن یک کاربر جدید به لینوکس در تمامی توزیع های مختلف از دستور adduser برای این کار استفاده می کنیم. برای اضافه کردن کاربر به اسم john به صورت زیر عمل می کنیم :

$ sudo adduser john

بعد از اجرای این دستور باید یک رمز عبور برای این نام کاربری وارد کنید. دقت کنید که رمز عبور کاراکتر ستاره * و نقطه . نباشد. در ادامه نیز سیستم مشخصات دیگر این کاربر را از شما می پرسد که مقدار دلخواه را در هر مورد می توانید وارد کنید و در انتها یک پاسخ تایید برای صحیح بودن اطلاعات وارد شده از شما می گیرد که با مقدار y آن را پاسخ دهید. با وارد کردن این دستور کاربر john ایجاد شد که این کاربر عضو هیچ گروهی نیست، و این کاربر مجوز Privilege اجرای دستورات superuser را ندارد. برای اعطای این مجوز به این کاربر باید این کاربر را عضو گروه sudo کنیم. با دستور usermod و گزینه های aG- می توانیم این کار را انجام دهیم :

$ sudo supermod -aG sudo john
  • کلمه sudo مخفف “superuser do!” است و کاری که انجام می دهد نیز به معنای همان کلمات است و برای انجام دادن دستورات با سطح دسترسی superuser است.
  • دستور usermod نیز برای تغییر مشخصات یک کاربر مانند گروه آن می باشد.
  • گزینه -a به معنای append و گزینه -G به معنای گروه است که به انتهای گروه sudo کاربر مشخص شده را اضافه می کند.

اکنون می توانید با دستور su به کاربر جدید بروید :

$ sudo su john

نکته : بعد از اجرای این دستور، سیستم برای ورود به کاربر john از شما رمز عبور می خواهد، که اگر رمز عبوری که برای john تعیین کردید را وارد کنید سیستم به شما پیام خطا نشان می دهد مجددا رمز عبور می خواهد. در اینجا به خاطر وارد کردن دستور sudo باید رمز عبور مدیر سیستم یا همان کاربر اصلی سیستم را وارد کنید نه رمز عبور کاربر john.

اکنون به کاربر john وارد شدید و از این به می توانید کارهای خود را با این کاربر انجام دهید. نکته : اگر به هر دلیلی کاربر root برای ورود به سرور و ارتباط راه دور SSH فعال است، شدیدا توصیه می کنیم که یک کاربر non-root ایجاد کنید و کاربر root را غیر فعال کنید. و اگر مجبور به فعال کردن آن شدید حتما بعد از اتمام کار آن را غیر فعال کنید.

3- تنظیم دیوار آتش ساده Setting Up a Basic Firewall

برنامه UFW) Uncomplicated Firewall) یک ابزار بسیار ساده است که به صورت پیش فرض بر روی Ubuntu نصب می باشد. این ابزار نیز مانند Iptables و ابزارهای دیگر بر روی IP Filter Tables کار می کند. البته برنامه iptables نیز بر روی سیستم عامل Ubuntu به صورت پیش فرض نصب می شود و می توانید از آن استفاده کنید. کار با برنامه UFW بسیار ساده تر از iptables است و به همین دلیل در اختیار کاربران قرار داده شده تا به سادگی بتوانند یک دیوار آتش Firewall بدون پیچیدگی های iptables داشته باشند.

ابزار ufw به صورت پیش فرض غیرفعال است و در ابتدا باید آن را فعال کنید :

$ sudo ufw enable

بعد از فعال کردن ufw باید یک گزارش از نقش ها Rules های موجود را مشاهده می کنیم :

$ sudo ufw status verbose
Output : 
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

Status :

برای نمایش وضعیت فعلی ufw است.

Verbose :

برای نمایش توضیحات کاملتر برای نقش ها Rules و گزارش هاست

وقتی UFW فعال می شود، نقش هایی که که تنظیم شده اند را خوانده و اعمال می کند. اگر برای اولین بار آن را فعال می کنید و یا هیچی نقشی برای آن تنظیم نکرده اید نقش های پیش فرض اعمال می شوند. در خروجی بالا نقش های پیش فرض با status نمایش داده شده اند. همانطور که می بینید برای تمامی ترافیک های ورودی حالت Deny تنظیم شده است که یعنی تمام ترافیک های ورودی به سرور رد می شوند.

از این به بعد باید برای تمامی برنامه ها و ترافیک های مورد نیاز خود نقش Rule مناسب در UFW تعریف کنید. برای مثال برای ارتباط SSH ، Web ، FTP و …. هر سرویس یا برنامه ای که می خواهید به سیستم شما متصل شوند باید نقش Rule تعریف کنید. کار با ufw بسیار ساده است، به عنوان نمونه برای اجازه دادن به ترافیک SSH کافیست فقط نام ssh را در دستور بیاورید و به آن اجازه ارتباط دهید :

$ sudo ufw allow ssh

:Output Rule added (Rule added (v6

Allow :

برای اجازه عبور به ترافیک مورد نظر از عبارت allow استفاده می کنیم. خروجی این دستور نمایانگر این است که دو عدد نقش Rule اضافه شده است. که یکی برای اجازه ورود ترافیک SSH با IPv4 و دیگری برای IPv6 است. سپس یک گزارش از وضعیت موجود می گیریم :

$ sudo ufw status verbose

Output :

Status: active

Logging: on (low)

Default: deny (incoming), allow (outgoing), disabled (routed)

New profiles: skip

To Action From

22/tcp ALLOW IN Anywhere

22/tcp (v6) ALLOW IN Anywhere (v6)

این بار در خروجی دستور گزارش وضعیت مشاهده می کنید که دو نقش Rule برای SSH اضافه شده است. دقت کنید که در این حالت هیچ ترافیکی اجازه ورود به سرور شما ندارد به جز SSH که روی پورت 443 تنظیم شده است.

به همین ترتیب می توانید برای تمامی سرویس ها و برنامه های دیگر موجود در سیستم یک نقش اضافه کنید.

سرور مجازی Virtual Server

نکته : در کار با سرور مجازی Virtual Server و زمانی که به سرور با ارتباط راه دور SSH متصل هستید حتما بعد از فعال کردن UFW اجازه ورود به SSH را بدهید. شدیدا دقت کنید که بعد از فعال کردن UFW همانطور که گفتیم به صورت پیش فرض هیچ ترافیکی اجازه ورود ندارد که این مطلب شامل ترافیک های SSH که با آن به سرور متصل می شوید نیز می شود. ولی نگران نباشید اتصال فعلی شما به سرور قطعی نمی شود، چون وضعیت ترافیک شما در حالت established است و اتصال فعلی شما قطع نمی شود، ولی بعد از قطع ارتباط شما با سرور دیگر نمی توانید به آن متصل شوید مگر آنکه سریعا بعد از فعال کردن UFW ، اجازه ورود به ترافیک SSH را بدهید.

اگر می خواهید که یک ترافیک خاص به سرور را مسدود کنید به همین صورت که یک برنامه را Allow کردید از Deny استفاده کنید. و اگر می خواهید که یک نقش Rule را پاک کنید، اول باید آن را Deny کنید، سپس آن را حذف کنید :

$ sudo ufw deny ssh 
Rule updated
Rule updated (v6)

$ sudo ufw status verbose 
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To Action From
22/tcp DENY IN Anywhere  22/tcp (v6) DENY IN Anywhere (v6) $ sudo ufw delete deny ssh  Rule deleted Rule deleted (v6) $ sudo ufw status verbose  Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip

4- تنظیم زمان سیستم Check Timezone

هنگام نصب سیستم عامل لینوکس Ubuntu در تمامی نسخه باید منطقه زمانی را مشخص کنید، که بعد از آن اگر سیستم به اینترنت متصل باشد به صورت خودکار به سرور های ارائه دهنده پروتکل زمانی NTP خودش متصل شده و طبق منطقه زمانی که مشخص شده زمانی سیستم را تنظیم می کند. ولی در برخی موارد این کار به درستی انجام نمی شود. در بیشتر موارد سرور و کاربر در یک منطقه زمانی نیستند و اگر از یک زمان و منطقه زمانی یکسان استفاده نکنند در اطلاعات پایگاه داده و گزارش ها و موارد دیگر دچار مشکل می شوند، که این اتفاق برای اکثر کاربرانی که از سرور مجازی VPS استفاده می کنند رخ می دهد.

برای مثال

برای مثال فرض کنید که برای راه اندازی یک برنامه کاربردی تحت Web Application یک شرکت، یک سرور مجازی که در مکان فیزیکی آن در یک منطقه زمانی دیگر است به شما داده شده است. برای مثال شما در ایران هستید و سرور مجازی شما در کشور فرانسه است. در این حالت باید منطقه زمانی سرور را بر روی ایران تنظیم کنید، در غیر اینصورت تمامی فعالیت ها و گزارش ها در سمت سرور به ساعت کشور فرانسه در پایگاه داده شما ذخیره خواهد شد.

برای تنظیم زمان سرور اول آن را بررسی می کنیم که به درستی تنظیم شده است یا خیر. با دستور date می توانیم زمان سیستم را مشاهده کنیم :

$ date

در خروجی فقط زمان و تاریخ نمایش داده می شود. برای مشاهده منطقه زمانی می توانیم فایل timezone را مشاهده کنیم :

$ cat /etc/timezone

البته در لینوکس Ubuntu 18 با استفاده از ابزار timedatectl کار بسیار ساده تر شده است :

$ timedatectl

Output : 
Local time: Tue 2019-09-10 05:33:57 BST
Universal time: Tue 2019-09-10 04:33:57 UTC
RTC time: Tue 2019-09-10 04:33:56
Time zone: Europe/London (BST, +0100)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no

در خروجی این دستور همه جزئیات زمان بندی سیستم آورده شده است. اگر زمان و منطقه زمانی سیستم را می خواهید تنظیم کنید ابتدا از لیست منطقه زمانی، باید منطقه زمانی مناسب را انتخاب کنید. با گزینه list-timezones یک لیست کامل از منطقه زمانی را می توانید مشاهده کنید.

$ timedatectl list-timezones

بعد از مشاهده لیست با زدن دکمه q می تواند از لیست خارج شوید. برای تغییر منطقه زمانی نیز از گزینه set-timezone استفاده کنید. برای مثال برای تغییر منطقه زمانی به ایران به صورت زیر عمل می کنیم :

$ timedatectl set-timezone Asia/Tehran

زمان سیستم را مجددا بررسی می کنیم تا ببینیم که تغییرات درست اعمال شده است یا خیر :

$ timedatectl

Output : 
Local time: Tue 2019-09-10 09:17:33 +0430
Universal time: Tue 2019-09-10 04:47:33 UTC
RTC time: Tue 2019-09-10 04:47:32
Time zone: Asia/Tehran (+0430, +0430)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no

تا اینجا زمان سرور نیز به درستی تنظیم شد. اگر می خواهید که زمان سرور را به صورت دستی و دلخواه تغییر دهید، می توانید از گزینه set-time استفاده کنید. شکل ورود زمان نیز باید به صورت زیر باشد :

$ timedatectl set-time “2012-10-30 18:17:16”

5- به روز رسانی سرور Update Ubuntu

تا اینجا یک کاربر ایجاد کردیم و دیواره آتش را فعال کردیم، در ادامه باید سرور را بروز رسانی کنیم. برای این کار ابزار مدیریت بسته Package های لینوکس Ubuntu با نام apt استفاده می کنیم. شکل دستور این ابزار apt-get است که از نسخه Ubuntu 16 به بعد، آن را به صورت apt نیز می توانید استفاده کنید.

در اول لیست بسته Package های لینوکس را با دستور update بروز رسانی می کنیم. با اجرای این دستور فقط لیست بسته ها به روز رسانی می شوند و بسته هایی که به بروز رسانی نیاز دارند مشخص می شوند، ولی هیچ بسته ای نصب یا Upgrade نمی شود :

$ sudo apt update

در ادامه باید برای نصب و ارتقا Upgrade بسته هایی که به بروز رسانی نیاز دارند از دستور upgrade استفاده می کنیم :

$ sudo apt upgrade

در اجرای این دستور برای نصب بسته ها یک پیغام را نمایش می دهد و منتظر می ماند که شما جواب تایید yes را با وارد کردن حرف y/Y انتخاب کنید. اگر می خواهید که دیگر برای نصب بسته ها از شما تایید دریافت نکند از دستور upgrade به شکل زیر استفاده کنید :

$ sudo apt upgrade -y

با انتخاب گزینه y- برای تمامی درخواست های سیستم به صورت خودکار پاسخ yes داده می شود. تا اینجا فقط بسته ها که مربوط به برنامه ها و ابزارهای نصب شده بر روی سیستم عامل هستند، بروزرسانی شده اند. با استفاده از دستور dist-upgrade اگر نسخه جدید تری برای هسته Kernel سیستم عامل لینوکس Ubuntu ارائه شده باشد، می توانید آن را به روز رسانی کنید :

$ sudo apt dist-upgrade

برای راحتی کار ترکیب هر سه این دستور را می توانید در یک خط وارد کنید :

$ sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y

با استفاده از کاراکتر && بین چند دستور می توانید چند دستور را به صورت متوالی اجرا کنید. سیستم به صورت خودکار بعد از اتمام اجرای هر قطعه دستور، قسمت بعدی را اجرا می کند. بعد از انجام عملیات به روز رسانی ممکن است که فایل های تنظیمات برخی بسته ها و برخی تنظیمات سیستم تغییر کرده باشند. برای اعمالی این تغییرات بهتر است که بعد از به روز رسانی سرور را مجددا راه اندازی کنید :

$ sudo reboot

برخی خطاهای رایج بروز رسانی :

اگر بروز رسانی با مشکل مواجه شد باید پیغام خطای داده شده را بررسی را کنید تا بتوانید راه حل مناسب را پیدا کنید. در زیر چند مورد مشکل معمول را آورده ایم :

  • آدرس DNS به درستی تنظیم نشده است. در این مورد اگر آدرس سرور DNS درست تنظیم نشده باشد سیستم نمی تواند آدرس IP سرور های بروز رسانی را پیدا کند. برای رفع مشکل در نسخه 18.04 فقط باید در فایل تنظیمات شبکه سرور آدرس DNS را تنظیم کنید. همچنین از طریق فایل etc/resolv.conf/ هم در تمامی نسخه ها می توانید با اضافه کردن آدرس سرور DNS به انتهای این فایل مشکل را رفع کنید.

$ echo “nameserver 8.8.8.8” >> /etc/resolv.conf

  • بروز رسانی برخی بسته ها با مشکل مواجه شده است، پیغام Broken Package . در این حالت با استفاده از دستور زیر می توانید این مشکل را رفع کنید. البته در این موارد خود سیستم نیز در انتهای نمایش خروجی پیام خطا به شما پیشنهادی می کند که از گزینه fix-missing– استفاده کنید.

$ apt update –fix-missing

پایان

در این مطلب پیکربندی و تنظیمات اولیه یک سرور Ubuntu را که به تازگی نصب و راه اندازی شده بود را انجام دادیم. تنظیمات عنوان شده در این مطلب حداقل تنظیمات ای است که باید بر روی هر سرور Ubuntu انجام شود، و پیشنهاد می کنیم که این تنظیمات و راه اندازی اولیه را حتما انجام دهید. اگر کاربر یک سرور مجازی VPS هستید و یا از راه دور به سرور Ubuntu متصل می شوید، حتما به نکته های گفته شده در این مطلب دقت کنید. دستورات گفته شده در این آموزش با نسخه 18.4 لینوکس Ubuntu مطابقت دارد ولی در بیشتر نسخه دیگر این سیستم عامل نیز اجرا می شود.

منبع
parspack
برچسب ها
نمایش بیشتر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید

بستن
دکمه بازگشت به بالا
بستن