راهنمای کامل
راهنمای مدیریت فایروال: طراحی قوانین، بازبینی و تغییر امن
فایروالی که روز نصب درست تنظیم شده، بعد از یک سال معمولاً قوانین موقت، پورتهای پروژههای تمامشده و استثناهایی دارد که کسی دلیلشان را به یاد نمیآورد. مدیریت فایروال یعنی قوانین با سرویسهای واقعی هماهنگ بمانند، هر قانون دلیل و مالک داشته باشد و تغییرات بدون قطع دسترسی اعمال شوند. نکتههای زیر هم برای فایروال روی سرورهای لینوکس کاربرد دارد و هم برای pfSense و Cisco ASA در لبه شبکه.
فایروال میزبان و فایروال شبکه چه تفاوتی دارند؟
فایروال شبکه در لبه یا بین VLANها قرار میگیرد و فقط ترافیکی را کنترل میکند که از آن عبور میکند. ترافیک بین دو سرور داخل یک VLAN از فایروال شبکه نمیگذرد، و سرور مجازی در دیتاسنتر معمولاً اصلاً پشت فایروال شبکه اختصاصی نیست. فایروال میزبان با nftables، iptables یا firewalld روی خود سرور این فاصله را پر میکند و اگر مهاجم به یک سرور نفوذ کند، حرکت او به سرورهای کناری را محدود میکند. روی سرورهای cPanel و DirectAdmin، CSF همراه LFD هم فایروال را مدیریت میکند و هم تلاشهای ناموفق ورود را مسدود میکند. سختسازی بقیه سرور، از SSH تا وبسرور، بخشی از امنسازی سرور است.
طراحی قوانین با اصل حداقل دسترسی
سیاست پیشفرض برای ترافیک ورودی باید drop باشد و هر پورت بازی دلیل مشخص داشته باشد. پیش از نوشتن قوانین، یک ماتریس دسترسی با چهار ستون مبدأ، مقصد، پورت و دلیل تهیه کنید. در nftables و iptables، قانون اول معمولاً پاسخ اتصالهای موجود (established و related) را میپذیرد و بعد سرویسها یکییکی باز میشوند. ترتیب قوانین مهم است، چون iptables، pfSense و ACLهای Cisco از بالا به پایین خوانده میشوند و اولین قانونی که با بسته جور شود اجرا میشود. نوشتن این زنجیرهها را در آموزش کانفیگ Iptables در لینوکس توضیح دادهایم.
در pfSense از aliasها و در ASA از object-groupها استفاده کنید تا چند IP یا پورت مشابه در یک گروه و یک قانون جمع شوند. پورتهای مدیریتی مثل SSH، RDP روی 3389، پنل Proxmox روی 8006 و رابط وب خود فایروال را روی IP عمومی باز نگذارید و فقط از VPN یا فهرست IP مجاز در دسترس قرار دهید. سرویسهایی مثل MySQL روی 3306 هم فقط باید از سرورهایی در دسترس باشند که به آنها نیاز دارند.
بازبینی و پاکسازی قوانین قدیمی
بازبینی با خروجی گرفتن از قوانین فعلی هر فایروال و مقایسه آن با فهرست سرویسهای واقعی شروع میشود. شمارنده هر قانون نشان میدهد از آخرین ریاستارت بستهای به آن رسیده یا نه؛ در ASA دستور show access-list تعداد hit هر خط را نشان میدهد. قانونی که مدت طولانی هیچ ترافیکی نداشته نامزد حذف است، اما پیش از حذف مالک آن را پیدا کنید، چون بعضی سرویسها فقط در پایان ماه یا هنگام بکاپ استفاده میشوند. قوانین any-any و قوانین سایهخورده، یعنی قوانینی که زیر یک قانون کلیتر قرار گرفتهاند و بستهای به آنها نمیرسد، را هم در همین مرحله علامت بزنید.
برای هر قانونی که میماند، سرویس، دلیل و مالک را در توضیح همان قانون یا سند قوانین بنویسید. قوانین موقت را با تاریخ انقضا ثبت کنید تا در بازبینی دورهای حذف یا تمدید شوند. اگر در بازبینی نشانهای از نفوذ پیدا شد، مثل اتصال خروجی ناشناس از یک سرور، بررسی آن در رفع هک و مالور ادامه پیدا میکند.
تغییر قوانین از راه دور بدون قفل شدن
بیشتر قطعیهایی که فایروال ایجاد میکند از تغییری از راه دور میآید که دسترسی خود مدیر را هم بسته است. پیش از تغییر، از پیکربندی پشتیبان بگیرید: config.xml در pfSense، running-config در ASA و خروجی nft list ruleset یا iptables-save روی لینوکس. بعد یک بازگشت خودکار زمانبندی کنید، مثلاً jobی با at که چند دقیقه بعد پیکربندی قبلی را بازمیگرداند، و اگر دسترسی بعد از تغییر برقرار بود آن را لغو کنید. یک راه دسترسی جایگزین هم آماده داشته باشید، مثل کنسول VNC یا KVM دیتاسنتر برای سرور و کنسول سریال برای فایروال سختافزاری.
زمان و هزینه مدیریت فایروال به چه بستگی دارد؟
تعداد فایروالها و سرورها، تعداد قوانین فعلی و وضعیت مستندات آنها پایه برآورد هستند. طراحی قوانین برای سرور تازه سریع است، ولی بازبینی فایروالی با قوانین زیاد و بدون توضیح زمان بیشتری میگیرد، چون دلیل هر قانون باید با صاحب سرویس روشن شود. فعالسازی لاگ و ارسال آن به syslog مرکزی، VPN دسترسی راه دور و هماهنگی قوانین فایروال شبکه با فایروال سرورها هم کار را بیشتر میکند. قیمت پس از مشاوره اولیه و دیدن ساختار شبکه اعلام میشود.
خروجی پیکربندی فایروال ممکن است رمزها، کلیدهای VPN و آدرسهای داخلی را داشته باشد. آن را در پیام اولیه نفرستید و پیش از ارسال، مقادیر حساس را حذف کنید.