امنیت سرور7 دقیقه

چگونه Portهای غیرضروری سرور را ببندیم؟

برای بستن واقعی پورت، سرویس غیرضروری را متوقف و Disable کنید، Bind را محدود سازید و سپس فایروال را به‌عنوان لایه دوم اعمال کنید.

#لینوکس#امنیت#فایروال
تیم فنی هاستیفای
01

موضوع دقیقاً چیست؟

برای بستن واقعی پورت، سرویس غیرضروری را متوقف و Disable کنید، Bind را محدود سازید و سپس فایروال را به‌عنوان لایه دوم اعمال کنید.

سه سؤال لازم است: چه Processی گوش می‌کند، چه کسی به آن نیاز دارد و از کدام شبکه؟ پاسخ تعیین می‌کند سرویس حذف، محلی یا محدود به Subnet شود.

02

تهدید را قبل از ابزار تعریف کنید

امنیت با نصب یک ابزار تمام نمی‌شود. ابتدا دارایی مهم، مهاجم محتمل، مسیر ورود و پیامد را مشخص کنید. حساب مدیریتی، داده مشتری، کلید API و امکان تغییر سرویس معمولاً ارزش و ریسک یکسانی ندارند و به کنترل‌های متفاوت نیاز دارند.

کنترل خوب باید احتمال حمله، دامنه اثر یا زمان تشخیص را کم کند. اگر نمی‌دانید یک تنظیم کدام‌یک را بهبود می‌دهد، احتمالاً فقط پیچیدگی اضافه کرده‌اید. تهدیدمدل ساده به اولویت‌بندی بودجه و زمان کمک می‌کند.

03

لایه‌های دفاع

هویت قوی، کمترین سطح دسترسی، محدودسازی شبکه، Patch، جداسازی، ثبت رویداد و Backup لایه‌های مکمل‌اند. فرض کنید یکی از آن‌ها شکست می‌خورد و بررسی کنید آیا لایه بعدی می‌تواند حرکت مهاجم را متوقف یا آشکار کند.

  • Listener را با ss -tulpn شناسایی کنید.
  • Dependency سرویس را پیش از Disable بررسی کنید.
  • از بیرون نتیجه را دوباره اسکن کنید.
04

پیاده‌سازی پیشنهادی

فهرست مجاز بسازید، هر Listener دیگر را با مالک برنامه تأیید، سرویس را Graceful متوقف و Rule فایروال را کمینه کنید.

تغییر را ابتدا روی یک حساب یا سرور آزمایشی اعمال کنید، مسیر اضطراری را نگه دارید و رویداد موفق و ناموفق بسازید تا مطمئن شوید کنترل فقط روی کاغذ فعال نیست. Security control بدون آزمون ممکن است هم قابل دورزدن باشد و هم کاربر واقعی را مسدود کند.

Terminal
sudo ss -tulpnsystemctl list-unit-files --state=enabledsudo systemctl disable --now service-namesudo ufw status numbered
05

ثبت رویداد و تشخیص

ورود موفق مدیریتی، تغییر Permission، ایجاد کاربر، تغییر Firewall، توقف Agent و دسترسی به Secretها باید قابل جست‌وجو و دارای زمان دقیق باشند. Log روی همان سرور، در صورت تصاحب یا پرشدن دیسک، قابل حذف است؛ برای سرویس مهم نسخه مرکزی یا خارج از میزبان داشته باشید.

Alert را برای رخداد قابل اقدام بسازید، نه هر Noise. IP یا کشور جدید، افزایش ناگهانی شکست، تغییر کلید و رفتار خارج از ساعت عادی معمولاً از شمارش صرف همه خطاها مفیدتر است.

06

اگر کنترل امنیتی شکست خورد

مسیر Incident response را از قبل بنویسید: چه کسی تصمیم می‌گیرد، دسترسی چگونه قطع می‌شود، شواهد کجا نگه داشته می‌شود و از چه نسخه‌ای بازیابی می‌کنید. در حادثه واقعی زمان مناسبی برای پیدا کردن مالک حساب یا آخرین Backup سالم نیست.

کلید و Token را قابل چرخش نگه دارید و دامنه هر Credential را محدود کنید. Rotation باید علاوه بر تولید مقدار جدید، حذف مقدار قبلی و بررسی سرویس‌های وابسته را نیز شامل شود.

07

اشتباه رایج

بستن کورکورانه پورت دیتابیس، DNS یا Agent مانیتورینگ می‌تواند سرویس‌های داخلی را بدون علامت روشن مختل کند.

امنیت نمایشی معمولاً از فعال‌کردن ابزارهای متعدد بدون مالک، Alert و نگهداری ایجاد می‌شود. کنترل کمتر اما فهمیده‌شده، تست‌شده و پایش‌شده از فهرست بلند تنظیماتی که هیچ‌کس مسئول آن نیست مؤثرتر است.

08

بازبینی دوره‌ای

هر فصل حساب‌ها، کلیدها، Ruleهای شبکه، بسته‌های آسیب‌پذیر و مسیرهای Backup را بازبینی کنید. تغییر معماری و ورود عضو جدید می‌تواند Threat model قدیمی را بی‌اعتبار کند. نتیجه بازبینی باید مالک و مهلت اصلاح داشته باشد.

یک Restore، ورود اضطراری و سناریوی از دست‌رفتن Credential را تمرین کنید. تمرین کوتاه نقص مستندات و دسترسی را پیش از حادثه واقعی آشکار می‌کند.

09

پرسش‌های مهمی که قبل از اقدام باید جواب دهید

برای اینکه پاسخ «چگونه Portهای غیرضروری سرور را ببندیم؟» فقط در حد اطلاعات عمومی نماند، ابتدا وضعیت فعلی خود را با عدد توصیف کنید: نسخه سیستم‌عامل یا نرم‌افزار، تعداد کاربر هم‌زمان، مصرف معمول و اوج منابع، حجم و رشد داده، محدودیت شبکه و بیشترین قطعی قابل قبول. بدون این اطلاعات ممکن است توصیه‌ای که از نظر فنی درست است، برای محیط شما انتخاب مناسبی نباشد.

دو سؤال بعدی مستقیماً از نکات این موضوع می‌آیند: «Listener را با ss -tulpn شناسایی کنید.» در زیرساخت شما چگونه اندازه‌گیری یا تأیید می‌شود؟ و «Dependency سرویس را پیش از Disable بررسی کنید.» چه اثری روی کاربر، هزینه یا مسیر بازیابی دارد؟ پاسخ را در قالب شواهدی مانند خروجی فرمان، نمودار متریک، نتیجه آزمون یا مستند ارائه‌دهنده ثبت کنید؛ اتکا به حافظه و حدس برای تصمیم عملیاتی کافی نیست.

10

یک برنامه عملی کم‌ریسک

کار را با ثبت وضعیت فعلی و یک معیار موفقیت آغاز کنید. سپس پیشنهاد اصلی این راهنما را در کوچک‌ترین محیط نماینده اجرا کنید: فهرست مجاز بسازید، هر Listener دیگر را با مالک برنامه تأیید، سرویس را Graceful متوقف و Rule فایروال را کمینه کنید. نتیجه را در حالت عادی و در یک سناریوی خطا یا فشار کنترل‌شده بسنجید. اگر معیار بهتر نشد، به‌جای افزودن تغییرات بیشتر، فرض اولیه را بازبینی کنید.

پیش از اعمال تغییر در سرویس اصلی، روش بازگشت، مسئول تصمیم و زمان توقف را روشن کنید. این هشدار را نیز به‌عنوان شرط توقف در نظر بگیرید: بستن کورکورانه پورت دیتابیس، DNS یا Agent مانیتورینگ می‌تواند سرویس‌های داخلی را بدون علامت روشن مختل کند. پس از اجرا، نتیجه، نسخه‌ها و تنظیمات مؤثر را مستند کنید و یک زمان بازبینی تعیین کنید؛ تغییر بدون پایش ممکن است امروز سالم به نظر برسد اما در پیک بعدی شکست بخورد.

  • Listener را با ss -tulpn شناسایی کنید.
  • Dependency سرویس را پیش از Disable بررسی کنید.
  • از بیرون نتیجه را دوباره اسکن کنید.
11

جمع‌بندی و چک‌لیست

برای «چگونه Portهای غیرضروری سرور را ببندیم؟» ابزار را از تهدید جدا نکنید. دارایی، مسیر حمله، کنترل پیشگیرانه، Log، Alert، پاسخ به حادثه و بازیابی را یک زنجیره ببینید. امنیت وقتی واقعی است که این زنجیره آزموده و قابل نگهداری باشد.

  • Listener را با ss -tulpn شناسایی کنید.
  • Dependency سرویس را پیش از Disable بررسی کنید.
  • از بیرون نتیجه را دوباره اسکن کنید.

نوشته تیم فنی هاستیفای

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