পডকাস্ট ট্রান্সক্রিপ্ট দেখুন
Ubiquiti UniFi -এর জন্য Captive Portal — একটি Purple টেকনিক্যাল ব্রিফিং
[ভূমিকা এবং প্রসঙ্গ — আনুমানিক ১ মিনিট]
Purple টেকনিক্যাল ব্রিফিং সিরিজে আপনাকে স্বাগতম। আমি আপনার হোস্ট, এবং আজ আমরা Ubiquiti UniFi অবকাঠামোতে একটি এক্সটার্নাল captive portal স্থাপন করার বিশদ বিবরণ নিয়ে আলোচনা করছি — যা বিশ্বব্যাপী হসপিটালিটি, রিটেইল এবং এন্টারপ্রাইজ পরিবেশে সর্বাধিক ব্যবহৃত নেটওয়ার্ক প্ল্যাটফর্মগুলোর একটি।
আপনি যদি একজন IT ম্যানেজার, নেটওয়ার্ক আর্কিটেক্ট, বা সিস্টেম ইন্টিগ্রেটর হন যিনি UniFi Cloud Gateways, Dream Machines, বা UniFi Network Application নিয়ে কাজ করছেন, তবে এই পর্বটি আপনার জন্য। আমরা আলোচনা করব কীভাবে এক্সটার্নাল পোর্টাল মেকানিজমটি ভেতরের দিক থেকে কাজ করে, কীভাবে এটি সঠিকভাবে কনফিগার করতে হয়, সাধারণ ভুলগুলো কোথায় হতে পারে, এবং কেন একটি বেসিক স্প্ল্যাশ পেজের চেয়ে বেশি প্রয়োজন এমন ভেন্যুগুলোর জন্য UniFi ডিপ্লয়মেন্টের উপরে Purple যুক্ত করা সঠিক আর্কিটেকচারাল সিদ্ধান্ত।
চলুন শুরু করা যাক।
[প্রযুক্তিগত বিস্তারিত আলোচনা — আনুমানিক ৫ মিনিট]
প্রথমে আসুন জেনে নেওয়া যাক যখন কোনো গেস্ট ডিভাইস captive portal সক্রিয় থাকা একটি UniFi SSID -এর সাথে সংযুক্ত হয়, তখন আসলে কী ঘটে।
যখন কোনো গেস্ট ডিভাইস আপনার গেস্ট SSID -এর সাথে যুক্ত হয়, তখন UniFi অ্যাক্সেস পয়েন্ট যথারীতি DHCP -এর মাধ্যমে এটিকে একটি IP অ্যাড্রেস বরাদ্দ করে। কিন্তু ডিভাইসটিকে অবিলম্বে এমন একটি অবস্থায় রাখা হয় যাকে UniFi "পেন্ডিং" স্টেট বলে। এই অবস্থায়, AP-এর বিল্ট-ইন DNSmasq প্রসেস ডিভাইসটির করা প্রতিটি DNS কোয়েরি ইন্টারসেপ্ট করে, ডিভাইসটি কোন DNS সার্ভার ব্যবহার করছে বলে ভাবছে তা এখানে বিবেচ্য নয়। AP সমস্ত DNS ট্রাফিক নিজের দিকে রিডাইরেক্ট করে।
একই সাথে, AP পোর্ট ৮০-তে একটি লাইটওয়েট HTTP রিডাইরেক্টর চালায়। গেস্টের ব্রাউজার যেকোনো HTTP রিকোয়েস্ট করার সাথে সাথেই — এবং এটি একটি গুরুত্বপূর্ণ বিষয়, HTTP, HTTPS নয় — রিডাইরেক্টর একটি 302 রিডাইরেক্ট রেসপন্স পাঠায়, যার ফলে ব্রাউজারটি captive portal স্প্ল্যাশ পেজে চলে যায়। এটিই সেই মেকানিজম যা iOS এবং Android ডিভাইসে "Sign in to WiFi" নোটিফিকেশনটি সক্রিয় করে।
এখন, এখানেই বিল্ট-ইন পোর্টাল বনাম এক্সটার্নাল পোর্টালের পার্থক্যটি অত্যন্ত গুরুত্বপূর্ণ হয়ে ওঠে। বিল্ট-ইন UniFi Hotspot Portal-এর ক্ষেত্রে, স্প্ল্যাশ পেজটি সরাসরি UniFi Network Application দ্বারা পরিবেশিত হয়। এটি কার্যকর এবং দ্রুত সেট আপ করা যায়, তবে এটি অত্যন্ত সীমিত। আপনি এতে বেসিক পাসওয়ার্ড অথেন্টিকেশন, ভাউচার এবং Stripe পেমেন্ট পাবেন। এখানে কোনো ইমেল ক্যাপচার, সোশ্যাল লগইন, GDPR কনসেন্ট ম্যানেজমেন্ট, CRM ইন্টিগ্রেশন এবং সেশন কাউন্টের বাইরে কোনো অর্থপূর্ণ অ্যানালিটিক্স নেই।
আপনি যখন একটি External Portal Server কনফিগার করেন — যা আজকের আমাদের আলোচনার মূল সেটিংস — তখন আপনি UniFi কন্ট্রোলারকে নির্দেশ দিচ্ছেন গেস্টদের একটি সম্পূর্ণ আলাদা ওয়েব অ্যাপ্লিকেশনে রিডাইরেক্ট করার জন্য। আমাদের ক্ষেত্রে, সেটি হলো Purple। External Portal Server ফিল্ডে আপনি যে URLটি প্রবেশ করান, সেটিই সেই সমস্ত 302 রিডাইরেক্টের গন্তব্য হয়ে ওঠে।সেই রিডাইরেক্ট URL সম্পর্কে গুরুত্বপূর্ণ প্রযুক্তিগত বিশদ বিবরণ এখানে দেওয়া হলো। যখন UniFi কোনো অতিথিকে আপনার বাহ্যিক পোর্টালে রিডাইরেক্ট করে, তখন এটি URL-এর সাথে বেশ কয়েকটি কোয়েরি প্যারামিটার যুক্ত করে। এর মধ্যে রয়েছে: AP MAC অ্যাড্রেস, ক্লায়েন্ট ডিভাইসের MAC অ্যাড্রেস, একটি Unix টাইমস্ট্যাম্প, ক্লায়েন্ট যে আসল URL-এ পৌঁছানোর চেষ্টা করছিল সেটি এবং SSID নাম। আপনার বাহ্যিক পোর্টাল — এই ক্ষেত্রে Purple — সেই প্যারামিটারগুলো ক্যাপচার করে, সংযোগকারী ডিভাইসটিকে শনাক্ত করতে সেগুলো ব্যবহার করে, উপযুক্ত স্প্ল্যাশ পেজ প্রদর্শন করে, প্রমাণীকরণ পরিচালনা করে এবং তারপরে সেই MAC অ্যাড্রেসটিকে অনুমোদন করার জন্য UniFi Network Application-এ একটি API কল করে।
সেই API কলটি হলো অত্যন্ত গুরুত্বপূর্ণ হ্যান্ডশেক। UniFi Network Application 9.1 এবং পরবর্তী সংস্করণ অনুসারে, উপযুক্ত কি-ভিত্তিক প্রমাণীকরণ সহ একটি অফিসিয়াল REST API রয়েছে। অথরাইজেশন এন্ডপয়েন্ট হলো সাইটগুলোর API-এর সংস্করণ একের প্রতি একটি POST অনুরোধ, যা নির্দিষ্ট ক্লায়েন্ট আইডি-কে লক্ষ্য করে করা হয়, যার সাথে একটি JSON বডি থাকে যা মিনিটে সময়সীমা, মেগাবাইটে ডেটা ব্যবহারের সীমা এবং প্রতি সেকেন্ডে কিলোবিটে রেটের সীমা নির্দিষ্ট করতে পারে। কন্ট্রোলার যখন সেই অনুমোদন পেয়ে যায়, তখন এটি AP-তে নির্দেশনা পাঠায় এবং অতিথির স্থিতি পেন্ডিং থেকে অনুমোদিত অবস্থায় পরিবর্তিত হয়। ইন্টারনেট অ্যাক্সেস মঞ্জুর করা হয়।
এখন চলুন Walled Garden সম্পর্কে কথা বলা যাক, যা UniFi-এর পরিভাষায় Pre-Authorization Access নামে পরিচিত। এটি হলো সেই ডোমেন এবং IP অ্যাড্রেসগুলোর হোয়াইটলিস্ট যেখানে অতিথিরা প্রমাণীকরণের আগেই পৌঁছাতে পারেন। এটি অত্যন্ত প্রয়োজনীয় এবং এটি ভুল কনফিগারেশনের সবচেয়ে সাধারণ উৎসগুলোর একটি।
কমপক্ষে, আপনার walled garden-এ আপনার Purple পোর্টালের ফুল্লি কোয়ালিফাইড ডোমেন নেম এবং Purple-এর পরিকাঠামো যে IP অ্যাড্রেস বা CIDR রেঞ্জে নির্দেশ করে সেগুলো অন্তর্ভুক্ত থাকতে হবে। আপনি যদি সোশ্যাল লগইন — Facebook, Google, Microsoft — ব্যবহার করেন, তবে আপনাকে সেই প্রদানকারীদের জন্য OAuth এন্ডপয়েন্ট ডোমেনগুলোও যোগ করতে হবে। Google-এর লগইন এন্ডপয়েন্টগুলো একাধিক IP রেঞ্জ এবং accounts.google.com ও oauth2.googleapis.com সহ বেশ কয়েকটি ডোমেন জুড়ে বিস্তৃত। Facebook-এর লগইন পরিকাঠামোর জন্যও একইভাবে বেশ কয়েকটি এন্ট্রি প্রয়োজন। Purple-এর ডকুমেন্টেশনে প্রয়োজনীয় সুনির্দিষ্ট এন্ট্রিগুলোর একটি রক্ষণাবেক্ষণ করা তালিকা প্রদান করা হয় এবং সেইসব প্রদানকারীরা যখন তাদের পরিকাঠামো আপডেট করে তখন এই তালিকাটি আপ-টু-ডেট রাখা হয়।
UniFi-এর সাথে সম্পর্কিত একটি অত্যন্ত জটিল সমস্যা রয়েছে যা অনেক সেটআপের ক্ষেত্রে সমস্যা তৈরি করে। AP-তে থাকা HTTP রিডাইরেক্টর শুধুমাত্র পোর্ট 80-তে থাকা প্লেইন HTTP ট্রাফিককে বাধা দেয়। আধুনিক ডিভাইসগুলো — iOS, Android, Windows, macOS — সবই HTTPS-ভিত্তিক Captive Portal শনাক্তকরণ প্রক্রিয়া সম্পাদন করে। Apple ডিভাইসগুলো HTTPS-এর মাধ্যমে captive.apple.com-এ যায়। Android ডিভাইসগুলো connectivitycheck.gstatic.com-এ যায়। যদি সেই HTTPS অনুরোধগুলো একটি নির্দিষ্ট প্রতিক্রিয়া না পায়, তবে ডিভাইসটি সিদ্ধান্ত নিতে পারে যে কোনো Captive Portal নেই এবং সরাসরি সাইন-ইন প্রম্পট দেখাতে ব্যর্থ হতে পারে।
এর সমাধান হলো এটি নিশ্চিত করা যেন আপনার walled garden-এ প্রধান অপারেটিং সিস্টেমগুলোর Captive Portal শনাক্তকরণ ডোমেনগুলো অন্তর্ভুক্ত থাকে এবং আপনার Purple পোর্টালটি যেন একটি বৈধ, বিশ্বস্ত SSL সার্টিফিকেট সহ HTTPS-এর মাধ্যমে অ্যাক্সেসযোগ্য হয়। সেলফ-সাইনড সার্টিফিকেটগুলোর কারণে ব্রাউজারে সিকিউরিটি ওয়ার্নিং দেখাবে যা পোর্টাল লোড হওয়াকে ব্লক করে দেবে। প্রোডাকশন সেটআপের জন্য এটি একেবারেই আপসহীন।অন্যান্য UniFi-নির্দিষ্ট বিবেচনার মধ্যে রয়েছে কন্ট্রোলারের অ্যাক্সেসযোগ্যতা। API অথরাইজেশন কলগুলি সফলভাবে সম্পন্ন করার জন্য UniFi Network Application — এটি ক্লাউড গেটওয়ে, ক্লাউড কি বা স্ব-হোস্টেড সার্ভার যেখানেই চলুক না কেন — অবশ্যই Purple-এর অবকাঠামো থেকে অ্যাক্সেসযোগ্য হতে হবে। যদি আপনার কন্ট্রোলার NAT-এর পেছনে একটি প্রাইভেট নেটওয়ার্কে থাকে, তবে আপনাকে নিশ্চিত করতে হবে যে প্রাসঙ্গিক API পোর্টগুলি অ্যাক্সেসযোগ্য রয়েছে। স্ব-হোস্টেড কন্ট্রোলারের জন্য, এটি সাধারণত লেগ্যাসি API-এর জন্য পোর্ট ৮৪৪৩, অথবা সংস্করণ ৯.১-এ প্রবর্তিত নতুন API-এর জন্য স্ট্যান্ডার্ড HTTPS পোর্ট ৪৪৩। Purple-এর সাপোর্ট ডকুমেন্টেশনে আপনার কন্ট্রোলারের ইনবাউন্ড অ্যাক্সেসের জন্য প্রয়োজনীয় সঠিক IP রেঞ্জগুলি নির্দিষ্ট করে দেওয়া আছে।
RADIUS-ভিত্তিক প্রমাণীকরণের জন্য - যা ওপেন গেস্ট SSID মডেলের পরিবর্তে WPA2-Enterprise বা WPA3-Enterprise SSIDs-এর সাথে Purple মোতায়েন করার ক্ষেত্রে প্রাসঙ্গিক - UniFi-এর বিল্ট-ইন RADIUS সার্ভার স্ট্যান্ডার্ড 802.1X EAP পদ্ধতিগুলি সমর্থন করে। আপনি সেটিংস, নেটওয়ার্ক, RADIUS সার্ভারের অধীনে RADIUS প্রোফাইল কনফিগার করবেন এবং তারপরে আপনার SSID কনফিগারেশনে সেই প্রোফাইলটি রেফারেন্স করবেন। UniFi সংস্করণ ৮.৪ থেকে শুরু করে TLS-এর মাধ্যমে RADIUS সমর্থন করে, যা RADSEC নামে পরিচিত, এটি AP এবং প্রমাণীকরণ সার্ভারের মধ্যে RADIUS ট্রাফিককে এনক্রিপ্ট করে। মাল্টি-সাইট মোতায়েনের জন্য যেখানে RADIUS ট্রাফিক পাবলিক ইন্টারনেট ব্যবহার করে আদান-প্রদান করে, সেখানে RADSEC দৃঢ়ভাবে সুপারিশ করা হয়।
[বাস্তবায়ন সুপারিশ এবং ত্রুটিসমূহ - প্রায় ২ মিনিট]
আসুন আমরা আপনাকে সেই বাস্তবসম্মত বাস্তবায়নের চেকলিস্টটি প্রদান করি যা আমরা UniFi-এ Purple মোতায়েনকারী যেকোনো ক্লায়েন্টের সাথে অনুসরণ করি।
প্রথমত, নেটওয়ার্ক সেগমেন্টেশন। আপনার গেস্ট SSID অবশ্যই একটি ডেডিকেটেড VLAN-এ থাকতে হবে এবং এটি আপনার কর্পোরেট এবং IoT নেটওয়ার্ক থেকে বিচ্ছিন্ন হতে হবে। UniFi এটিকে সহজ করে তোলে - সেটিংস, নেটওয়ার্কের অধীনে একটি ডেডিকেটেড নেটওয়ার্ক তৈরি করুন, এটিকে একটি VLAN ID বরাদ্দ করুন এবং সেই নেটওয়ার্কের সাথে আপনার গেস্ট SSID সংযুক্ত করুন। গেস্টদের মধ্যে পারস্পরিক ট্রাফিক প্রতিরোধ করতে গেস্ট নেটওয়ার্কে ক্লায়েন্ট আইসোলেশন সক্ষম করুন।
দ্বিতীয়ত, কন্ট্রোলারে অবশ্যই একটি বৈধ FQDN এবং একটি বিশ্বস্ত SSL সার্টিফিকেট থাকতে হবে। শুধুমাত্র IP অ্যাড্রেসের ওপর নির্ভর করবেন না। একটি সঠিক ডোমেন নাম ব্যবহার করুন, এতে একটি Let's Encrypt বা বাণিজ্যিক সার্টিফিকেট যুক্ত করুন এবং সেই সার্টিফিকেটটি ব্যবহার করতে UniFi কনফিগার করুন। এটি অধিকাংশ HTTPS রিডাইরেক্ট সমস্যার সমাধান করে।
তৃতীয়ত, আপনার ওয়াল্ড গার্ডেন সতর্কতার সাথে তৈরি করুন এবং এটি পরীক্ষা করুন। সর্বনিম্ন এন্ট্রিগুলি হলো: আপনার Purple পোর্টাল ডোমেন এবং এর IP রেঞ্জ, iOS, Android এবং Windows-এর জন্য Captive Portal ডিটেকশন ডোমেন এবং আপনি যে সমস্ত OAuth প্রোভাইডার ডোমেন ব্যবহার করছেন তা। এমন একটি ডিভাইস দিয়ে পরীক্ষা করুন যা আগে কখনো এই নেটওয়ার্কের সাথে সংযুক্ত হয়নি - কারণ ক্যাশড DNS এবং নেটওয়ার্ক স্টেট পরীক্ষার সময় ওয়াল্ড গার্ডেনের ত্রুটিগুলিকে আড়াল করতে পারে।
চতুর্থত, API ইন্টিগ্রেশনের জন্য, ন্যূনতম প্রয়োজনীয় পারমিশন সহ UniFi Network Application-এ একটি ডেডিকেটেড লোকাল অ্যাডমিন অ্যাকাউন্ট ব্যবহার করুন। আপনার মূল অ্যাডমিন ক্রেডেনশিয়াল ব্যবহার করবেন না। আপনি যদি Network Application ৯.১ বা তার পরবর্তী সংস্করণ ব্যবহার করেন, তবে কন্ট্রোল প্লেন, ইন্টিগ্রেশনের অধীনে নতুন API কী মেকানিজম ব্যবহার করুন - এটি আরও নিরাপদ এবং এর জন্য ক্রেডেনশিয়াল-ভিত্তিক প্রমাণীকরণের প্রয়োজন হয় না।
পঞ্চমতঃ, সেশনের সময়সীমা সাবধানে বিবেচনা করুন। UniFi-এর ডিফল্ট গেস্ট সেশনের মেয়াদ শেষ হওয়ার সময় আট ঘণ্টার মতো সংক্ষিপ্ত হতে পারে। আতিথেয়তা সংক্রান্ত ব্যবহারের ক্ষেত্রে যেখানে অতিথিরা একাধিক রাত অবস্থান করতে পারেন, সেখানে Purple পোর্টালে উপযুক্ত সেশনের সময়সীমা কনফিগার করুন এবং নিশ্চিত করুন যে সেই সময়সীমাগুলি API অথরাইজেশন কলে সঠিকভাবে পাস করা হয়েছে।
সবচেয়ে সাধারণ যে ত্রুটি আমি দেখি তা হলো একটি সেলফ-হোস্টেড কন্ট্রোলারে এটি স্থাপন করা যা জনসমক্ষে অ্যাক্সেসযোগ্য নয়। Purple যদি অতিথিদের অথরাইজ করার জন্য আপনার কন্ট্রোলারে পৌঁছাতে না পারে, তবে পোর্টালটি লোড হবে কিন্তু অথেনটিকেশন কোনো বার্তা ছাড়াই ব্যর্থ হবে। লাইভ করার আগে সর্বদা Purple-এর ইনফ্রাস্ট্রাকচার থেকে API কানেক্টিভিটি যাচাই করুন।
[র্যাপিড-ফায়ার প্রশ্নোত্তর - প্রায় ১ মিনিট]
এটি কি UniFi Dream Machine Pro-তে কাজ করে? হ্যাঁ। সব UniFi OS কনসোল - UDM, UDM Pro, UDM SE, UCG Ultra, UCG-Max - External Portal Server কনফিগারেশন সমর্থন করে। Network Application-টি ডিভাইসেই চলে।
আমি কি একটি একক Purple অ্যাকাউন্ট থেকে একাধিক UniFi সাইটে Purple ব্যবহার করতে পারি? হ্যাঁ। Purple-এর মাল্টি-সাইট আর্কিটেকচার ঠিক এই কাজের জন্যই ডিজাইন করা হয়েছে। প্রতিটি ভেন্যু Purple-এ একটি পৃথক সাইট হিসেবে কনফিগার করা হয়, যা সংশ্লিষ্ট UniFi সাইটের সাথে ম্যাপ করা থাকে।
আমাকে কি UniFi গেটওয়েতে ফায়ারওয়াল পোর্ট খুলতে হবে? আপনাকে নিশ্চিত করতে হবে যে গেস্ট VLAN ট্রাফিক পোর্ট ৪৪৩-এ Purple পোর্টাল ডোমেনে পৌঁছাতে পারে। কন্ট্রোলার API পোর্টটিও Purple-এর সার্ভার থেকে অ্যাক্সেসযোগ্য হতে হবে। Purple-এর ডকুমেন্টেশনে নির্দিষ্ট IP রেঞ্জ দেওয়া রয়েছে।
WPA3-এর ক্ষেত্রে কী হবে? UniFi WPA3 Personal এবং WPA3 Enterprise সমর্থন করে। Captive Portal মেকানিজম গেস্ট নেটওয়ার্কে WPA3 Personal-এর সাথে কাজ করে। WPA3 Enterprise ব্যবহার করে 802.1X এবং RADIUS, যা একটি ভিন্ন অথেনটিকেশন ফ্লো।
[সংক্ষেপ ও পরবর্তী পদক্ষেপ - প্রায় ১ মিনিট]
সংক্ষেপে বলতে গেলে: UniFi-তে একটি এক্সটার্নাল Captive Portal হিসেবে Purple স্থাপন করা একটি সু-সমর্থিত ও আর্কিটেকচারগতভাবে সঠিক ইন্টিগ্রেশন। প্রধান ধাপগুলি হলো: আপনার গেস্ট SSID-কে External Portal Server অপশনের সাথে কনফিগার করুন যা আপনার Purple পোর্টাল URL-কে নির্দেশ করে, একটি বিস্তৃত ওয়াল্ড গার্ডেন তৈরি করুন যা Purple-এর ইনফ্রাস্ট্রাকচার এবং আপনার ব্যবহৃত যেকোনো OAuth প্রদানকারীকে কভার করে, আপনার UniFi কন্ট্রোলারের একটি বৈধ SSL সার্টিফিকেট রয়েছে এবং তা Purple-এর API সার্ভার থেকে অ্যাক্সেসযোগ্য তা নিশ্চিত করুন, এবং আপনার ভেন্যুর ধরন অনুযায়ী উপযুক্ত সেশনের সময়সীমা কনফিগার করুন।
ব্যবসায়িক দিক থেকে এটি খুবই লাভজনক। বিল্ট-ইন UniFi পোর্টাল আপনাকে কেবল একটি স্প্ল্যাশ পেজ দেয়। Purple আপনাকে দেয় একটি কমপ্লায়েন্স-প্রস্তুত, অ্যানালিটিক্স-চালিত গেস্ট এক্সপেরিয়েন্স প্ল্যাটফর্ম যা আপনার CRM-এর সাথে ইন্টিগ্রেট করে, GDPR সম্মতির অধীনে ফার্স্ট-পার্টি ডেটা সংগ্রহ করে এবং ফুটফল ও ডোয়েল-টাইম অ্যানালিটিক্স প্রদান করে যা ভেন্যু অপারেটর ও মার্কেটিং টিমের আসলেই প্রয়োজন।
আপনি যদি একজন MSP বা সিস্টেম ইন্টিগ্রেটর হন যিনি বড় স্কেলে UniFi স্থাপন করছেন, তবে Purple-এর মাল্টি-সাইট ম্যানেজমেন্ট এবং হোয়াইট-লেবেল সুবিধা এটিকে আপনার ক্লায়েন্টদের জন্য সঠিক ওভারলে করে তোলে।
বিস্তারিত কনফিগারেশন ডকুমেন্টেশন, ওয়াল্ড গার্ডেন IP তালিকা এবং API ইন্টিগ্রেশন গাইডের জন্য, purple.ai ভিজিট করুন। শোনার জন্য ধন্যবাদ।