محمد ستوده

پیاده‌سازی Captive Portal با FortiGate و Active Directory

معماری Captive Portal مبتنی بر FortiGate، Active Directory و IIS برای احراز هویت کاربران پیش از دسترسی به اینترنت

یکی از سناریوهایی که همیشه دوست داشتم به‌صورت کامل پیاده‌سازی و بررسی کنم، راه‌اندازی Captive Portal به کمک FortiGate و Active Directory بود. در این پروژه سعی کردم فرآیند احراز هویت کاربران قبل از دسترسی به اینترنت را شبیه‌سازی کنم؛ به شکلی که کاربران ابتدا با حساب کاربری Domain احراز هویت کنند و سپس اجازه دسترسی به اینترنت را دریافت کنند.


معماری سناریو:

 

در این سناریو FortiGate نقش کنترل‌کننده دسترسی را بر عهده دارد. زمانی که کاربر برای اولین بار قصد دسترسی به اینترنت را دارد، ترافیک او توسط فایروال رهگیری شده و به صفحه احراز هویت هدایت می‌شود. اطلاعات ورود کاربر از طریق LDAP در Active Directory اعتبارسنجی شده و در صورت موفقیت، دسترسی اینترنت برای او فعال می‌شود.


آنچه در این پروژه پیاده‌سازی شد:

  • راه‌اندازی Active Directory و ساخت کاربران و گروه‌های موردنیاز
  • اتصال FortiGate به Active Directory از طریق LDAP
  • طراحی و پیاده‌سازی صفحه Login سفارشی روی IIS
  • پیکربندی Captive Portal روی FortiGate
  • طراحی Firewall Policy های موردنیاز برای قبل و بعد از احراز هویت
  • تست کامل فرآیند Authentication و بررسی خطاهای احتمالی

نکاتی که در طول پروژه بررسی شد:

بخش جذاب این سناریو برای من، بررسی جزئیات فرآیند احراز هویت و نحوه ارتباط مرورگر کاربر با سرویس Captive Portal بود. همچنین در طول پیاده‌سازی چند مورد رفتاری خاص در FortiOS 7.4 مشاهده شد که نیاز به عیب‌یابی و بررسی دقیق‌تر داشت.

به همین دلیل علاوه بر پیاده‌سازی سناریو، تمام مراحل، جریان ترافیک، وابستگی سرویس‌ها و فرآیند احراز هویت نیز مستندسازی شد تا در آینده بتوان از آن به عنوان یک مرجع عملی استفاده کرد.

تکنولوژی‌های استفاده‌شده:

FortiGate • Active Directory • LDAP • IIS • Windows Server 2019 • FortiOS 7.4 • Microsoft Visio


نتیجه گیری:

خروجی این پروژه یک Captive Portal مبتنی بر Active Directory بود که امکان کنترل دسترسی کاربران به اینترنت را بر اساس هویت آن‌ها فراهم می‌کند. هدف اصلی این پروژه یادگیری عمیق‌تر مکانیزم Captive Portal، نحوه تعامل FortiGate با LDAP و مستندسازی کامل فرآیند پیاده‌سازی بود.

همچنین تمامی مراحل پیاده‌سازی، تنظیمات موردنیاز، فرآیند احراز هویت، تست‌ها و موارد عیب‌یابی در قالب یک Playbook مستقل مستندسازی شده است تا امکان بازسازی و بررسی مجدد سناریو در آینده وجود داشته باشد.

فایل Playbook این پروژه شامل موارد زیر است:

  • معرفی مکانیزم Captive Portal و نحوه عملکرد آن
  • معماری شبکه و توپولوژی سناریو
  • راه‌اندازی Active Directory و گروه‌های کاربری
  • پیکربندی LDAP و یکپارچه‌سازی با FortiGate
  • پیاده‌سازی پرتال احراز هویت بر بستر IIS
  • تنظیم Captive Portal و Authentication Settings
  • طراحی و پیاده‌سازی Firewall Policy ها
  • تشریح فرآیند احراز هویت و جریان ترافیک
  • مراحل تست و اعتبارسنجی سناریو
  • راهنمای عیب‌یابی و دستورات Debug
  • کد و تنظیمات مورد استفاده در محیط آزمایشگاهی
  • راهنمای مرجع سریع تنظیمات و دستورات کلیدی

این دیاگرام و مستندات به‌صورت کامل توسط خودم تهیه شده‌اند و بخشی از فرآیند طراحی، پیاده‌سازی و مستندسازی این پروژه محسوب می‌شوند.

فایل Playbook پروژه جهت مشاهده و دانلود در دسترس است: captive_portal_playbook_v2