مبین کبیر · مهندس شبکه بازگشت به بلاگ ←
امن سازی سرور لینوکس

امن‌سازی سرور لینوکس؛ چک‌لیست کامل و به‌روز برای مدیران

۱۴ شهریور ۱۴۰۵ · 8 دقیقه مطالعه

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

به‌روزرسانی؛ ساده‌ترین و مهم‌ترین قدم

  • sudo apt update را به‌صورت دوره‌ای اجرا کن
  • برای به‌روزرسانی خودکار، unattended-upgrades را پیکربندی کن (فقط بسته‌های امنیتی)
  • بعد از هر به‌روزرسانی هسته، ری‌استارت برنامه‌ریزی‌شده بده

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

سخت‌کردن دسترسی SSH

  • بستن ورود مستقیم root: در sshd_config مقدار PermitRootLogin را no کن
  • ساخت کاربر معمولی با sudo و ورود با کلید عمومی
  • تنظیم PasswordAuthentication no بعد از اینکه کلیدها را تست کردی
  • تغییر پورت پیش‌فرض همراه با محدودیت سورس IP در فایروال بهتر است

پورت‌های دیگر را در مطلب فایروال و اصول پیکربندی کامل ببند.

فایروال و سرویس‌ها

فایروال را به‌صورت پیش‌فرض-رد پیکربندی کن:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw enable

و سرویس‌های استفاده‌نشده را نصب نکن یا غیرفعال کن: telnet، FTP و ماژول‌های غیرضروری وب‌سرور.

اصل کمترین دسترسی؛ کلیدواژه‌ی صحیح

  • برنامه‌ها را با کاربر مختص خودشان اجرا کن (نه root)
  • دایرکتوری‌های وبی را برای نوشتن ببند و فقط دایرکتوری‌های آپلود را با تنظیم دقیق باز کن
  • نشست‌ها و کوکی‌ها را امن کن (HttpOnly، SameSite)

اگر به‌دنبال تعمیق مفهوم امنیتی هستی، مفاهیم CIA در امنیت شبکه را بخوان؛ کمترین دسترسی عملاً تلاش برای حفظ «محرمانگی» است.

پایش و مهار حمله

  • لاگ‌ها: SSH را در rsyslog/journald دنبال کن و خطاهای آپاچی/Nginx را بررسی کن
  • fail2ban: تلاش‌های مکرر ورود را با بن کردن IP مهار کن
  • ابزارهایی مثل unattended-upgrades پچ امنیتی را پیگیری می‌کنند؛ ولی لاگ را خودت هم مرور کن

پشتیبان‌گیری و بازیابی

  • بکاپ رمزنگاری‌شده و جدا از سرور (آفلاین یا سرویس دیگر) نگه دار
  • تست بازیابی منظم، بخشی از چرخه است (بکاپ بدون تست یعنی هیچ)
  • دسترسی به بکاپ را با احراز هویت دومرحله‌ای و کلید جدا محدود کن

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

بعد از هر تغییر، سناریوی حمله‌ی فرضی را اجرا کن: سرویس جدید را با nmap ببین، تلاش ورود اشتباه بکن و خروجی لاگ را چک کن. هر شش ماه یک‌بار، این چک‌لیست را از سر اجرا کن تا هیچ دری باز نماند. اگر تازه شروع کرده‌ای، می‌توانی تمام این تمرین‌ها را در کالی انجام بدهی؛ نصب کالی لینوکس را ببین.

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

اولین کاری که بعد از خرید سرور باید انجام دهم چیست؟

به‌روزرسانی کامل، ساخت کاربر معمولی با کلید SSH، غیرفعال‌کردن ورود مستقیم root و فعال‌کردن UFW با پیش‌فرض-رد؛ بعد از آن فقط سرویس‌های واقعاً لازم را باز کن.

چرا باید PasswordAuthentication را غیرفعال کنم؟

بوت‌فورس رمز عبور شایع‌ترین روش ورود ربات‌هاست. با کلید عمومی قوی و غیرفعال‌کردن ورود با رمز، این مسیر عملاً بسته می‌شود.

آیا fail2ban کافی است؟

fail2ban لایه‌ی خوبی است اما جای سخت‌کردن SSH و فایروال را نمی‌گیرد؛ آن‌ها را مکمل هم ببین، نه جایگزین.

چطور بفهمم سرورم هک شده؟

مصرف غیرعادی CPU/رم، اتصالات خروجی مشکوک، کاربران یا فایل‌های تازه و لاگ‌های غیرمنتظره. ابزارهایی مثل rkhunter و lynis هم برای بررسی اولیه مفیدند.