Linux & Open Source

تقویت زیرساخت: راهنمای جامع امنیت و سخت‌سازی سرور لینوکس

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

امن‌سازی نقطه ورود از راه دور: سخت‌سازی SSH

پروتکل پوسته امن (SSH) روش اصلی برای مدیریت از راه دور است و به همین دلیل اولین هدف حملات خودکار حدس رمز عبور محسوب می‌شود. پیکربندی‌های پیش‌فرض به ندرت به اندازه کافی برای محیط‌های عملیاتی امن هستند. اولین قدم غیرفعال کردن احراز هویت با رمز عبور به طور کامل و اجبار به استفاده از جفت‌های کلید رمزنگاری است. فایل پیکربندی دایمن SSH را که معمولاً در /etc/ssh/sshd_config قرار دارد، ویرایش کنید و دستورات زیر را اعمال نمایید:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
X11Forwarding no
AllowUsers admin user1
پس از اعمال این تغییرات، سرویس SSH را مجدداً راه‌اندازی کنید تا قوانین جدید اعمال شوند. این پیکربندی تضمین می‌کند که تنها کاربران خاصی می‌توانند از طریق SSH وارد شوند، دسترسی مستقیم به ریشه امکان‌پذیر نیست و فقط از رمزنگاری کلید عمومی برای احراز هویت استفاده می‌شود که به طور مؤثر حملات حدس رمز عبور را خنثی می‌کند.

کنترل دسترسی اجباری: SELinux و AppArmor

کنترل دسترسی اختیاری سنتی (DAC) بر پایه مجوزهای فایل استوار است که در صورت کسب امتیازات ریشه توسط یک فرآیند، قابل دور زدن است. سیستم‌های کنترل دسترسی اجباری (MAC) مانند SELinux (لینوکس با امنیت ارتقا یافته) و AppArmor لایه امنیتی اضافی را با اعمال سیاست‌هایی که محدود می‌کنند برنامه‌ها چه کاری می‌توانند انجام دهند، صرف‌نظر از مجوزهای فایل، فراهم می‌کنند. SELinux در توزیع‌های مبتنی بر RHL پیش‌فرض است، در حالی که AppArmor اغلب در سیستم‌های دبیان و اوبونتو یافت می‌شود. اگر مطمئن نیستید که سیستم شما از این قابلیت‌ها پشتیبانی می‌کند یا خیر، می‌توانید با دستور زیر بررسی کنید:
sestatus  # برای SELinux
sudo apparmor_status # برای AppArmor
هنگامی که فعال شوند، سیستم‌های MAC یا در حالت "اجرا" (Enforcing) یا "اجتناب" (Permissive) اجرا می‌شوند. همیشه با حالت اجتناب شروع کنید تا گزارش‌هایی از نقض‌های احتمالی سیاست را بدون مسدود کردن ترافیک قانونی تولید کنید. پس از اینکه سیاست‌ها را برای اجازه دادن به رفتارهای ضروری برنامه تنظیم کردید، به حالت اجرا تغییر دهید تا اقدامات غیرمجاز را به طور فعال مسدود کند. این جداسازی تضمین می‌کند که اگر وب‌سروری مانند Nginx مورد حمله قرار گیرد، مهاجم نمی‌تواند به راحتی به سایر بخش‌های سیستم یا داده‌های حساس خارج از ریشه وب دسترسی پیدا کند.

محیط شبکه و پیشگیری از نفوذ

یک فایروال قوی، خط مقدم دفاع در برابر تهدیدات خارجی است. در لینوکس، iptables (نسخه قدیمی) یا جانشین آن، nftables، ابزارهای قدرتمندی برای فیلتر کردن بسته‌ها هستند. برای بسیاری از مدیران سیستم، UFW (فایروال ساده‌سازی شده) رابط کاربری ساده‌تری ارائه می‌دهد که از این فناوری‌های زیرین استفاده می‌کند.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
این پیکربندی پایه، تمام ترافیک ورودی را به طور پیش‌فرض مسدود می‌کند و تنها اتصالات خروجی، SSH، HTTP و HTTPS را مجاز می‌داند. برای محافظت در برابر حملات خودکار پایدار، یکپارچه‌سازی Fail2Ban حیاتی است. Fail2Ban فایل‌های لاگ را برای الگوهای مخرب، مانند تلاش‌های مکرر ناموفق برای ورود، اسکن می‌کند و قوانین فایروال را برای مسدود کردن آدرس‌های IP متخلف به‌روزرسانی می‌کند.

حسابرسی و یکپارچگی سیستم

امنیت تنها درباره پیشگیری نیست؛ بلکه درباره تشخیص و پاسخگویی نیز هست. سیستم حسابرسی لینوکس (auditd) به شما امکان می‌دهد تماس‌های سیستمی خاص و رویدادهای دسترسی به فایل را نظارت و ثبت کنید. با تعریف قوانین برای دایرکتوری‌های حساس یا باینری‌های حیاتی، می‌توانید تغییرات غیرمجاز یا فعالیت‌های مشکوک را ردیابی کنید.
sudo auditctl -w /etc/passwd -p wa -k identity_changes
این دستور فایل /etc/passwd را برای هرگونه تغییر نوشتاری یا تغییر ویژگی‌ها نظارت می‌کند و رویداد را با برچسب "identity_changes" برای تجزیه و تحلیل آسان‌تر لاگ‌ها علامت‌گذاری می‌کند. بررسی منظم این لاگ‌ها اطمینان حاصل می‌کند که از هرگونه ناهنجاری در زمان واقعی آگاه هستید.

نتیجه‌گیری

امن‌سازی یک سرور لینوکس یک فرآیند مداوم است، نه یک راه‌اندازی یک‌باره. با ترکیب پیکربندی‌های سخت‌شده SSH، کنترل دسترسی اجباری، قوانین سخت‌گیرانه فایروال، ابزارهای پیشگیری از نفوذ مانند Fail2Ban و حسابرسی جامع، شما یک استراتژی دفاع در عمق ایجاد می‌کنید. این رویکرد لایه‌ای تضمین می‌کند که حتی اگر یک کنترل دور زده شود، سایر کنترل‌ها برای محافظت از زیرساخت شما در جای خود باقی می‌مانند. به‌روزرسانی‌های منظم، مدیریت پچ‌ها و نظارت مستمر باید بخش‌های جدایی‌ناپذیر از جریان کاری عملیاتی شما باشند تا محیطی مقاوم و امن حفظ شود.
Share: