پیکوسیستم خدمات فنی IT

نصب لینوکس روی سرور: از انتخاب توزیع تا اولین کارهای امنیتی

نصب لینوکس روی سرور چند مرحله دارد که روی لپ تاپ با آن ها سروکار ندارید: RAID، بوت از کنسول مدیریتی، پارتیشن بندی با LVM و امن سازی اولیه. هر مرحله را همراه با دستورهایش توضیح داده ایم.

نصب لینوکس روی سرور: از انتخاب توزیع تا اولین کارهای امنیتی

نصب لینوکس روی یک سرور از نظر مراحل شبیه نصب روی لپ تاپ است. فرقش در چند تصمیم نیم ساعت اول است که سال ها با شما می مانند: توزیع و نسخه، حالت بوت، ساختار RAID و پارتیشن بندی. وقتی سرویس ها روی سرور راه افتادند، عوض کردن هر کدام از این ها بدون توقف کار ممکن نیست. مسیر نصب را از تنظیمات سخت افزار شروع کرده ایم و تا اولین کارهای امنیتی جلو رفته ایم.

نصب روی سرور چه فرقی با نصب دسکتاپ دارد؟

  • سرور بدون محیط گرافیکی و با کمترین بسته ممکن نصب می شود. هر سرویسی که نصب نشود، سطح حمله و تعداد به روزرسانی ها را کمتر می کند.
  • معمولا کنار سرور نیستید، پس دسترسی از راه دور از روز اول لازم است و نصب از طریق کنسول مدیریتی (iLO در سرورهای HPE، iDRAC در Dell یا IPMI در برندهای دیگر) انجام می شود.
  • دیسک ها روی کنترلر RAID هستند. RAID پیش از نصب و در فرم ور کنترلر پیکربندی می شود و نصاب لینوکس در آن نقشی ندارد.
  • سرور IP ثابت و رکورد DNS مشخص دارد و آدرسش را از DHCP نمی گیرد.
  • به روزرسانی روی سرور برنامه ریزی می شود؛ ریستارت خودکار وسط روز کاری قابل قبول نیست.
  • نصب سرور بهتر است با فایل خودکارسازی (kickstart در خانواده Red Hat یا autoinstall در اوبونتو) انجام شود تا سرور بعدی دقیقا مثل همین یکی بالا بیاید.

انتخاب توزیع: AlmaLinux یا Ubuntu LTS؟

برای سرور، توزیع پایدار با چرخه پشتیبانی بلند انتخاب می شود. دو گزینه رایج در ایران AlmaLinux (جانشین رایگان و سازگار با RHEL) و Ubuntu Server LTS هستند.

موضوع AlmaLinux Ubuntu Server LTS
چرخه پشتیبانی چند ساله و طولانی؛ نسخه 10 تا سال 2035 به روزرسانی امنیتی دارد پنج سال پشتیبانی استاندارد؛ نسخه 24.04 تا 2029 و نسخه 26.04 تا 2031
مدیریت بسته dnf و بسته های rpm apt و بسته های deb
سیاست نسخه بسته ها محافظه کارانه و پایدار، مناسب سرویس های بلندمدت بسته های تازه تر، مناسب محیط های توسعه و کانتینر
امنیت پیش فرض SELinux در حالت enforcing و فایروال firewalld AppArmor و فایروال ufw
نکته سخت افزاری نسخه 10 به صورت پیش فرض برای معماری x86-64-v3 ساخته می شود و برای سرورهای قدیمی تر نسخه جداگانه x86-64-v2 منتشر شده است روی سخت افزار قدیمی تر هم محدودیت مشابهی ندارد

اگر قرار است کنترل پنل هاست (cPanel یا DirectAdmin) نصب شود، از فهرست سیستم عامل های پشتیبانی شده همان پنل شروع کنید؛ این فهرست تصمیم را جای شما می گیرد. معیار بعدی این است که تیمتان با کدام خانواده راحت تر کار می کند. توزیعی که تیم بلد نیست، شب حادثه کار را سخت تر می کند.

پیش از نصب: کارهایی که در سخت افزار انجام می شود

  • فرم ور سرور، کنترلر RAID و کارت شبکه را به روز کنید. انجام این کار بعد از راه افتادن سرویس ها سخت تر است.
  • در کنترلر RAID، آرایه را بسازید. برای سرور سرویس معمولا RAID 1 یا RAID 10 انتخاب می شود؛ RAID 5 روی دیسک های بزرگ زمان بازسازی طولانی دارد.
  • حالت بوت را روی UEFI بگذارید و همان را در همه سرورهایتان یکسان نگه دارید. اگر بعد از نصب بخواهید بین UEFI و Legacy جابه جا شوید، باید دوباره نصب کنید.
  • پورت مدیریتی (iLO یا iDRAC) را با IP ثابت روی یک VLAN جدا تنظیم کنید و رمز پیش فرض آن را عوض کنید. این پورت هیچ وقت نباید مستقیم روی اینترنت باشد.
  • در BIOS، پروفایل توان را روی حالت کارایی بگذارید و اگر قرار است مجازی سازی نصب شود، قابلیت های VT-x یا AMD-V و IOMMU را فعال کنید.

آماده کردن رسانه نصب و بوت

فایل ISO را از سایت رسمی بگیرید و چک سام آن را بررسی کنید. ISO ناقص وسط نصب خطاهایی می دهد که وقت زیادی هدر می دهند.

sha256sum AlmaLinux-9-latest-x86_64-minimal.iso
# خروجی را با مقدار فایل CHECKSUM سایت رسمی مقایسه کنید

ساده ترین راه در سرورهای دارای کنسول مدیریتی، استفاده از Virtual Media است: ISO را در iLO یا iDRAC به عنوان درایو مجازی متصل می کنید و سرور را از روی همان بوت می کنید. اگر رسانه USB لازم دارید، روی لینوکس با dd می سازید (نام دستگاه را با دقت بررسی کنید، این دستور بازگشت ندارد):

lsblk
sudo dd if=/path/to/server.iso of=/dev/sdX bs=4M status=progress oflag=sync

برای نصب چند سرور پشت سر هم، PXE به همراه فایل kickstart یا autoinstall صرفه بیشتری دارد.

تصویر مرحله به مرحله نصب کننده اوبونتو و تنظیم IP ثابت با Netplan را در آموزش نصب Ubuntu Server نوشته ایم.

پارتیشن بندی سرور

پارتیشن بندی پیش فرض همه چیز را در یک فضای بزرگ می ریزد. روی سرور بهتر است چند مسیر را جدا کنید، بیش از همه برای اینکه لاگ یا فایل موقت یک سرویس نتواند کل ریشه سیستم را پر کند و سرور را از کار بیندازد.

مسیر اندازه پیشنهادی توضیح
/boot/efi حدود 1 گیگابایت فقط در حالت بوت UEFI، با فایل سیستم FAT32
/boot 1 تا 2 گیگابایت خارج از LVM؛ فضای کم باعث می شود به روزرسانی کرنل شکست بخورد
/ 40 تا 60 گیگابایت سیستم عامل و بسته ها
/var بسته به سرویس محل داده دیتابیس، ایمیل، کانتینرها و کش ها
/var/log 10 تا 20 گیگابایت جدا کردنش جلوی پر شدن ریشه توسط لاگ را می گیرد
فضای آزاد در گروه LVM باقی دیسک همه فضا را از ابتدا مصرف نکنید تا بعدا با lvextend هر پارتیشن را بزرگ کنید

همه این ها را داخل LVM بسازید؛ بدون LVM، بزرگ کردن یک پارتیشن در آینده کار سختی است. فایل سیستم پیش فرض AlmaLinux یعنی XFS فقط قابل بزرگ شدن است و کوچک نمی شود؛ ext4 در اوبونتو قابل کوچک کردن است ولی برای این کار باید سرویس ها متوقف شوند. میزان swap را متناسب با حافظه و توصیه نرم افزاری که قرار است اجرا شود تعیین کنید.

نصب Ubuntu Server

نصاب اوبونتو سرور، Subiquity، متنی است و در کنسول iLO هم بدون مشکل کار می کند. در مسیر نصب به این چند نکته دقت کنید:

  1. در مرحله شبکه، همان جا IP ثابت را وارد کنید تا سرور بعد از اولین بوت با آدرس مشخص بالا بیاید.
  2. گزینه نصب کمینه (minimized) را انتخاب کنید مگر اینکه به ابزارهای اضافه نیاز داشته باشید.
  3. در بخش ذخیره سازی، حالت سفارشی را انتخاب کنید و ساختار LVM بالا را بسازید.
  4. گزینه نصب OpenSSH server را تیک بزنید و اگر کلید عمومی شما روی GitHub یا Launchpad هست، همان جا وارد کنید.
  5. بسته های snap پیشنهادی را نصب نکنید؛ روی سرور سرویس، هر بسته اضافه کار نگهداری را بیشتر می کند.

وارد کردن کلید در نصاب، ورود با رمز را غیرفعال نمی کند. این کار را بعد از نصب خودتان انجام می دهید.

نصب AlmaLinux

نصاب Anaconda گرافیکی است و از طریق کنسول مدیریتی قابل استفاده است. در صفحه Software Selection گزینه Minimal Install را انتخاب کنید. در بخش شبکه، نام میزبان کامل (مثل db01.example.local) و IP ثابت را وارد کنید و کارت شبکه را روی اتصال خودکار بگذارید. اگر این تیک از قلم بیفتد، سرور بعد از ریبوت شبکه ندارد.

برای root یک رمز قوی بگذارید، اجازه ورود root با SSH را در همان صفحه ندهید و یک کاربر معمولی با دسترسی مدیر بسازید. بعد از نصب، فایل /root/anaconda-ks.cfg همان پیکربندی را به شکل kickstart نگه داشته است؛ آن را بردارید تا نصب سرور بعدی یکسان و سریع باشد.

تنظیم شبکه بعد از نصب

در اوبونتو، پیکربندی شبکه با netplan انجام می شود و فایل ساخته شده توسط نصاب معمولا در /etc/netplan/00-installer-config.yaml است:

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      addresses:
        - 192.168.10.20/24
      routes:
        - to: default
          via: 192.168.10.1
      nameservers:
        addresses: [192.168.10.10, 1.1.1.1]

فایل باید فقط برای root قابل خواندن باشد، وگرنه netplan هشدار می دهد. برای اعمال، به جای apply از try استفاده کنید؛ اگر تنظیمات غلط باشد و ارتباط قطع شود، خودش بعد از چند ثانیه برمی گردد:

sudo chmod 600 /etc/netplan/00-installer-config.yaml
sudo netplan try

در AlmaLinux 9 و 10 کار شبکه با NetworkManager انجام می شود و فایل های قدیمی ifcfg دیگر وجود ندارند؛ پیکربندی ها در /etc/NetworkManager/system-connections/ ذخیره می شوند. برای IP ثابت:

nmcli connection modify eno1 ipv4.method manual \
  ipv4.addresses 192.168.10.20/24 ipv4.gateway 192.168.10.1 \
  ipv4.dns "192.168.10.10 1.1.1.1"
nmcli connection up eno1

اولین کارهای امنیتی بعد از نصب

سروری که تازه بالا آمده و روی شبکه است، از همان دقیقه اول اسکن می شود. این کارها را پیش از انتقال هر سرویسی انجام دهید.

  1. همه بسته ها را به روز کنید: sudo apt update && sudo apt upgrade یا sudo dnf upgrade.
  2. یک کاربر معمولی با دسترسی sudo بسازید و کلید عمومی خود را در ~/.ssh/authorized_keys او بگذارید.
  3. پیش از بستن ورود با رمز، با یک نشست جدا ورود با کلید را تست کنید. اگر ورود با رمز بسته شود و کلید کار نکند، باید به دیتاسنتر بروید.
  4. تنظیمات SSH را در یک فایل جداگانه بنویسید تا با به روزرسانی بسته بازنویسی نشود.
  5. فایروال را فعال کنید و فقط پورت های لازم را باز بگذارید.
  6. به روزرسانی های امنیتی خودکار را فعال کنید.
  7. منطقه زمانی و همگام سازی ساعت را تنظیم کنید، چون لاگی که ساعتش غلط است در بررسی حادثه به کار نمی آید.
  8. SELinux را در AlmaLinux روی enforcing نگه دارید و برای حل مشکلات خاموشش نکنید.
  9. agent مانیتورینگ و بکاپ را همین ابتدا نصب کنید و منتظر اولین مشکل نمانید.

نمونه فایل تنظیم SSH:

# /etc/ssh/sshd_config.d/10-hardening.conf
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no

بعد از ویرایش، اول درستی فایل را بررسی و سپس سرویس را ریستارت کنید. در اوبونتو 24.04 به بعد سرویس ssh با socket فعال می شود، بنابراین اگر پورت را تغییر داده اید، ریستارت ssh.service به تنهایی کافی نیست:

sudo sshd -t

# AlmaLinux
sudo systemctl restart sshd

# Ubuntu
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket ssh

فایروال و به روزرسانی خودکار:

# Ubuntu
sudo ufw default deny incoming
sudo ufw allow from 192.168.10.0/24 to any port 22 proto tcp
sudo ufw enable
sudo apt install -y unattended-upgrades

# AlmaLinux
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
sudo dnf install -y dnf-automatic
sudo systemctl enable --now dnf-automatic.timer

برای کار روزمره بعد از نصب، دستورات لینوکس برای مدیر سرور مرجع سریعی است، ورود امن با کلید در SSH چیست آمده، و اگر سرور شما مجازی است راه اندازی سرور مجازی کارهای ساعت اول را فهرست کرده است.

چک لیست تحویل سرور

  • نام میزبان، IP، VLAN و رکورد DNS ثبت شده باشد.
  • ورود با کلید کار کند و ورود root با رمز بسته باشد.
  • وضعیت آرایه RAID و سلامت دیسک ها بررسی و ابزار پایش آن نصب شده باشد.
  • فضای آزاد در گروه LVM برای رشد بعدی باقی مانده باشد.
  • بکاپ تعریف شده و یک بار بازیابی آزمایشی انجام شده باشد.
  • سرور در سیستم مانیتورینگ اضافه شده و هشدارهای پایه فعال باشد.
  • مستند تنظیمات و رمزهای مدیریتی در محل امن و قابل تحویل نگهداری شود.

بعد از نصب چه می ماند؟

سرور بعد از نصب با به روزرسانی منظم، بررسی لاگ ها، پایش فضای دیسک و بازبینی دسترسی ها سالم می ماند. نصب، کانفیگ اولیه و نگهداری دوره ای سرورها در سرویس مدیریت سرور لینوکس پوشش داده می شود و تنظیمات هر سرور هم مکتوب می شود.

برای تکرارپذیر کردن نصب و تنظیم چند سرور، تفاوت Terraform و Ansible را ببینید.

منابع و مستندات رسمی

اگر سرور قرار است سرویسی را روی اینترنت ارائه کند، قدم بعدی هاردنینگ سرور است: بستن سرویس های اضافه، سیاست دسترسی و بررسی تنظیمات بر اساس چک لیست های استاندارد. برای نصب یک سرور جدید یا بازبینی سروری که سال ها دست نخورده مانده، از صفحه مدیریت سرور لینوکس با ما تماس بگیرید.

نحوه تهیه مقاله ها

مقاله های مرتبط

استعلام

کارتان را بگویید، مسیر و هزینه را می گوییم

چند خط درباره وضعیت فعلی و چیزی که می خواهید بنویسید. یک مهندس خودش با شما تماس می گیرد و درخواست به واحد فروش نمی رود.

  1. 01درخواست را می خوانیم و اگر ابهامی بود تماس می گیریم.
  2. 02در صورت نیاز، بررسی اولیه ریموت یا بازدید انجام می شود.
  3. 03پیشنهاد مکتوب با دامنه کار، زمان بندی و هزینه می فرستیم.

اطلاعات شما فقط برای پاسخ به همین درخواست استفاده می شود. حریم خصوصی