آموزش سرور

۱۰ کار امنیتی که بلافاصله بعد از تحویل سرور باید انجام دهید

تهیه: کلودیفای (نگارش با کمک هوش مصنوعی) · انتشار: · زمان مطالعه: ۵ دقیقه

آموزش سرور۱۰ کار امنیتی که بلافاصلهبعد از تحویل سرور بایدانجام دهیدمجلهٔ کلودیفایclodify.net/blog
پاسخ کوتاه

بلافاصله بعد از تحویل سرور لینوکس: سیستم را به‌روز کنید، یک کاربر sudo بسازید، ورود با کلید SSH را فعال و ورود root با رمز را غیرفعال کنید، فایروال UFW را با باز گذاشتن پورت SSH روشن کنید، Fail2ban و به‌روزرسانی خودکار امنیتی را نصب کنید و یک بکاپ اولیه بگیرید. دستورهای زیر برای Ubuntu 22.04 و 24.04 نوشته شده‌اند.

هشدار: تا زمانی که از اتصال با روش جدید مطمئن نشده‌اید، نشست SSH فعلی را نبندید. همیشه یک ترمینال دوم برای تست باز کنید.

۱. تغییر رمز root

passwd

یک رمز طولانی و تصادفی انتخاب کنید و در مدیر رمز ذخیره کنید.

۲. به‌روزرسانی سیستم

apt update && apt -y upgrade

اگر سرور ایران است و apt update خطا می‌دهد، از میرور داخلی استفاده کنید: رفع خطای apt و docker روی سرور ایران.

۳. ساخت کاربر با دسترسی sudo

adduser deploy
usermod -aG sudo deploy

۴. ورود با کلید SSH

روی رایانهٔ خودتان (اگر کلید ندارید):

ssh-keygen -t ed25519 -C "my-laptop"
ssh-copy-id deploy@SERVER_IP

سپس در ترمینال جدید تست کنید: ssh deploy@SERVER_IP.

۵. غیرفعال کردن ورود root و ورود با رمز

فایل /etc/ssh/sshd_config را ویرایش کنید و این مقادیر را تنظیم کنید:

PermitRootLogin no
PasswordAuthentication no

در Ubuntu فایل‌های داخل /etc/ssh/sshd_config.d/ را هم بررسی کنید تا مقدار متضادی نداشته باشند. سپس:

sudo systemctl restart ssh

و در ترمینال جدید دوباره ورود با کلید را تست کنید.

۶. تغییر پورت SSH (اختیاری)

تغییر پورت امنیت واقعی ایجاد نمی‌کند ولی حجم تلاش‌های خودکار را کم می‌کند. اگر تغییر دادید، ابتدا پورت جدید را در فایروال باز کنید. توجه: در Ubuntu 24.04 ممکن است SSH با socket activation اجرا شود و تغییر پورت به تنظیم ssh.socket نیاز داشته باشد.

۷. فایروال UFW

sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw status verbose

اگر پورت SSH را تغییر داده‌اید، به‌جای OpenSSH همان پورت را باز کنید.

۸. نصب Fail2ban

sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

۹. به‌روزرسانی خودکار امنیتی

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

۱۰. بکاپ یا اسنپ‌شات اولیه

اگر ارائه‌دهندهٔ سرور شما اسنپ‌شات دارد (در بسیاری از سرورهای خارج کلودیفای از منوی سرور در دسترس است)، یک اسنپ‌شات از وضعیت تمیز بگیرید. فایل‌های پیکربندی مهم را هم خارج از سرور نگه دارید.

خلاصهٔ اجرایی

# کار دستور اصلی
۱ تغییر رمز root passwd
۲ به‌روزرسانی apt update && apt -y upgrade
۳ کاربر sudo adduser + usermod -aG sudo
۴ کلید SSH ssh-copy-id
۵ بستن ورود root/رمز sshd_config
۶ تغییر پورت (اختیاری) Port در sshd_config
۷ فایروال ufw enable
۸ Fail2ban apt install fail2ban
۹ به‌روزرسانی خودکار unattended-upgrades
۱۰ بکاپ اسنپ‌شات از پنل
  1. به‌روزرسانی سیستم

    apt update و upgrade

  2. کاربر sudo

    کار روزمره بدون root

  3. کلید SSH

    ورود با رمز را ببندید

  4. فایروال

    فقط پورت‌های لازم

  5. Fail2ban

    مسدودسازی تلاش‌های مکرر

  6. بکاپ

    اسنپ‌شات یا بکاپ اولیه

شکل ۱ شش قدم اصلی امن‌سازی سرور تازه‌تحویل.

نشانه‌های نفوذ به سرور

حتی با رعایت چک‌لیست، هر چند وقت یک بار این نشانه‌ها را بررسی کنید:

  • مصرف غیرعادی پردازنده توسط پروسه‌ای ناشناخته (رایج‌ترین نشانهٔ ماینر): top یا htop.
  • ترافیک خروجی ناگهانی بدون افزایش بازدید: vnstat یا iftop.
  • کاربران یا کلیدهای ناشناخته: cat /etc/passwd و cat ~/.ssh/authorized_keys.
  • کارهای زمان‌بندی‌شدهٔ ناشناخته: crontab -l و ls /etc/cron.d.
  • ورودهای ناآشنا: last -a | head و sudo grep "Accepted" /var/log/auth.log.
# پروسه‌هایی که به شبکه وصل‌اند
sudo ss -tunp

# پرمصرف‌ترین پروسه‌ها
ps aux --sort=-%cpu | head

اگر سرور هک شد چه کنیم؟

  1. همهٔ رمزها، توکن‌ها و کلیدهای API که روی سرور ذخیره بوده‌اند را از یک سیستم امن دیگر عوض کنید.
  2. از داده‌های ضروری (نه فایل‌های اجرایی و اسکریپت‌ها) بکاپ بگیرید.
  3. یک سرور جدید و تمیز بسازید و این چک‌لیست را از ابتدا روی آن اجرا کنید.
  4. داده‌ها را پس از بررسی به سرور جدید منتقل کنید و سرور آلوده را حذف کنید.
  5. علت نفوذ (رمز ضعیف، نرم‌افزار قدیمی، پنل باز) را پیدا و رفع کنید تا تکرار نشود.

پاک‌سازی سرور آلوده معمولاً قابل اعتماد نیست؛ ساخت سرور جدید امن‌ترین راه است. با صورتحساب ساعتی، سرور جدید در چند دقیقه آماده است.

امنیت سرویس‌های رایج

سرویس خطر رایج اقدام
MySQL / PostgreSQL باز بودن پورت برای اینترنت فقط روی 127.0.0.1 گوش دهد یا با فایروال به آی‌پی مشخص محدود شود
Redis اجرا بدون رمز روی آی‌پی عمومی bind 127.0.0.1 و requirepass
Docker دور زدن UFW توسط پورت‌های منتشرشده انتشار روی 127.0.0.1؛ نکات داکر و UFW
پنل‌های مدیریت وب رمز پیش‌فرض و دسترسی عمومی تغییر رمز، محدود کردن آی‌پی، HTTPS
وردپرس افزونه‌های قدیمی به‌روزرسانی منظم و حذف افزونه‌های بی‌استفاده

برنامهٔ نگه‌داری دوره‌ای

  • هفتگی: بررسی apt list --upgradable، فضای دیسک (df -h) و لاگ Fail2ban.
  • ماهانه: مرور کاربران و کلیدهای SSH، حذف سرویس‌های بی‌استفاده، تست بازگردانی یک بکاپ.
  • پس از هر تغییر بزرگ: بررسی پورت‌های باز با sudo ss -tulpn.

سؤالات متداول

اگر بعد از این تنظیمات وصل نشدم چه کنم؟

از کنسول پنل یا حالت Rescue وارد شوید و تنظیمات SSH یا فایروال را اصلاح کنید. راهنمای کامل: سرور با SSH وصل نمی‌شود.

برای سرور ویندوز چه کنم؟

رمز قوی، به‌روزرسانی Windows Update، محدود کردن RDP به آی‌پی‌های مشخص با فایروال و فعال‌سازی Network Level Authentication ضروری‌ترین اقدام‌ها هستند.

آیا این مراحل برای Debian هم درست است؟

بله، دستورها در Debian 12 هم تقریباً یکسان‌اند؛ فقط ممکن است نیاز به نصب sudo و ufw داشته باشید.

Fail2ban کافی است یا فایروال هم لازم است؟

هر دو لازم‌اند. فایروال پورت‌های غیرضروری را می‌بندد و Fail2ban تلاش‌های مکرر ورود به سرویس‌های باز (مثل SSH) را مسدود می‌کند.

آنتی‌ویروس برای سرور لینوکس لازم است؟

برای بیشتر سرورها، به‌روزرسانی منظم، ورود با کلید، فایروال و حداقل کردن سرویس‌های باز مؤثرتر از آنتی‌ویروس است. اگر سرور فایل‌های کاربران را دریافت می‌کند، ابزاری مثل ClamAV برای اسکن فایل‌ها مفید است.

چند وقت یک بار باید رمز root را عوض کنم؟

اگر ورود با رمز را غیرفعال کرده و از کلید SSH استفاده می‌کنید، تغییر دوره‌ای رمز اهمیت کمتری دارد؛ اما پس از هر مشکوک‌شدن به نشت یا خروج یک عضو تیم، رمزها و کلیدها را عوض کنید.

آماده‌اید؟ سرورتان را بسازید.

از ۱٬۲۰۰ تومان در ساعت · پرداخت ریالی

سرورتان را همین حالا بسازید.

ساعتی بپردازید. هر وقت خواستید حذف کنید.