مقدمه: چرا امنیت سرور لینوکس اهمیت حیاتی دارد؟

لینوکس به دلیل پایداری، انعطاف‌پذیری و امنیت ذاتی، ستون فقرات اینترنت مدرن و اکثر زیرساخت‌های ابری محسوب می‌شود. با این حال، این محبوبیت زیاد باعث شده است که سرورهای لینوکسی هدف اصلی حملات خودکار، ربات‌ها و هکرهای حرفه‌ای باشند. امنیت یک محصول نیست، بلکه یک فرآیند مستمر است. داشتن یک سرور لینوکس به این معنا نیست که شما در برابر حملات ایمن هستید؛ بلکه باید با پیاده‌سازی استراتژی‌های Hardening یا سخت‌سازی، سطح حمله (Attack Surface) خود را به حداقل برسانید.

"امنیت واقعی در لینوکس نه در پیچیدگی ابزارها، بلکه در رعایت اصول ساده و مستمر مدیریت دسترسی‌ها نهفته است."

در این مقاله، ما از سطح تنظیمات اولیه شروع کرده و به مباحث پیشرفته‌ای همچون مانیتورینگ و مدیریت هسته (Kernel) خواهیم پرداخت.

۱. امنیت پروتکل SSH: بستن اولین دروازه ورود هکرها

پروتکل SSH (Secure Shell) معمولاً اولین چیزی است که هکرها هدف قرار می‌دهند. حملات Brute Force (حملات جستجوی رمز عبور) به صورت مداوم پورت ۲۲ را هدف قرار می‌دهند. برای ایمن‌سازی این پروتکل، مراحل زیر را انجام دهید:

الف) تغییر پورت پیش‌فرض

استفاده از پورت استاندارد ۲۲ باعث می‌شود ربات‌های اسکنر به راحتی سرور شما را شناسایی کنند. با تغییر پورت به یک عدد غیرمتعارف (مثلاً ۴۹۲۲)، حجم حملات خودکار را به شدت کاهش می‌دهید. برای این کار فایل تنظیمات را ویرایش کنید:

sudo nano /etc/ssh/sshd_config

سپس خط Port 22 را پیدا کرده و آن را به Port 4922 تغییر دهید.

ب) غیرفعال کردن ورود با رمز عبور و استفاده از SSH Keys

امن‌ترین روش برای ورود، استفاده از کلیدهای رمزنگاری شده (Public/Private Keys) است. پس از انتقال کلید خود به سرور، حتماً ورود با رمز عبور را غیرفعال کنید:

  • در فایل sshd_config، مقدار PasswordAuthentication را به no تغییر دهید.
  • همچنین مقدار PermitRootLogin را حتماً به no تغییر دهید تا هکرها نتوانند مستقیماً با کاربر روت وارد شوند.

پس از اعمال تغییرات، سرویس SSH را ری‌استارت کنید: sudo systemctl restart ssh

۲. مدیریت کاربران و اصل کمترین امتیاز (Least Privilege)

یکی از بزرگترین اشتباهات مدیران سیستم، استفاده مداوم از کاربر root برای انجام کارهای روزمره است. طبق اصل Least Privilege، هر کاربر یا فرآیند باید تنها به حداقل میزان دسترسی که برای انجام وظیفه‌اش نیاز دارد، مجهز باشد.

ایجاد کاربران محدود و استفاده از sudo

به جای استفاده از روت، یک کاربر جدید ایجاد کنید و دسترسی‌های مدیریت را فقط در صورت نیاز از طریق sudo به او بدهید:

sudo adduser username
sudo usermod -aG sudo username

با این کار، هر فعالیت حساس نیاز به تایید صریح کاربر دارد و در صورت نفوذ به یک حساب کاربری عادی، آسیب به کل سیستم محدود می‌ماند.

۳. پیکربندی فایروال: دیوار دفاعی شبکه

بدون یک فایروال قدرتمند، تمام پورت‌های باز سرور شما مانند خانه‌ای بدون در و پنجره است. در لینوکس، ابزارهای قدرتمندی مانند UFW (برای اوبونتو/دبیان) و firewalld (برای CentOS/RHEL) وجود دارند.

استفاده از UFW برای مدیریت آسان

ابتدا مطمئن شوید که پورت SSH خود را باز کرده‌اید تا از قطع دسترسی جلوگیری شود، سپس بقیه پورت‌ها را ببندید:

  • اجازه دادن به پورت SSH: sudo ufw allow 4922/tcp
  • اجازه دادن به سرویس وب: sudo ufw allow 80/tcp و sudo ufw allow 443/tcp
  • فعال‌سازی فایروال: sudo ufw enable

همیشه به یاد داشته باشید که سیاست فایروال شما باید Default Deny باشد؛ یعنی ابتدا همه چیز را ببندید و سپس فقط پورت‌های مورد نیاز را باز کنید.

۴. مقابله با حملات Brute Force با استفاده از Fail2Ban

حتی با تغییر پورت SSH، باز هم احتمال حملات وجود دارد. ابزار Fail2Ban یک نگهبان هوشمند است که لاگ‌های سیستم را بررسی می‌کند. اگر مشخص شود یک IP مشخص در حال تلاش برای ورود ناموفق با رمز عبورهای مختلف است، Fail2Ban به صورت خودکار آن IP را در فایروال مسدود می‌کند.

برای نصب و پیکربندی اولیه در اوبونتو:

sudo apt install fail2ban

شما می‌توانید تنظیمات مربوط به زمان مسدودسازی (Bantime) و تعداد دفعات مجاز تلاش (Maxretry) را در فایل jail.local تنظیم کنید تا امنیت را شخصی‌سازی کنید.

۵. مدیریت به‌روزرسانی‌ها و امنیت نرم‌افزاری

بسیاری از حملات از طریق بهره‌برداری از آسیب‌پذیری‌های شناخته شده در نسخه‌های قدیمی نرم‌افزارها انجام می‌شوند. نگهداری سرور در وضعیت به‌روز (Up-to-date) حیاتی است.

  • به‌روزرسانی مداوم: همیشه از دستورات sudo apt update && sudo apt upgrade استفاده کنید.
  • نصب خودکار به‌روزرسانی‌ها: در توزیع‌های مبتنی بر دبیان، می‌توانید بسته unattended-upgrades را نصب کنید تا وصله‌های امنیتی به صورت خودکار اعمال شوند.
  • حذف سرویس‌های غیرضروری:

... ادامه مقاله در وبسایت AUAZ.ir