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