1. ভূমিকা
Google ক্লাউড HTTP(S) লোড ব্যালেন্সিং সারা বিশ্বের Google পয়েন্ট অফ উপস্থিতিতে (POP) Google-এর নেটওয়ার্কের প্রান্তে স্থাপন করা হয়। একটি HTTP(S) লোড ব্যালেন্সারে নির্দেশিত ব্যবহারকারীর ট্র্যাফিক ব্যবহারকারীর সবচেয়ে কাছের POP-এ প্রবেশ করে এবং তারপরে Google-এর গ্লোবাল নেটওয়ার্কের মাধ্যমে ভারসাম্যপূর্ণভাবে নিকটতম ব্যাকএন্ডে লোড করা হয় যার পর্যাপ্ত ক্ষমতা উপলব্ধ।
ক্লাউড আর্মার হল Google-এর বিতরণ করা অস্বীকৃতি পরিষেবা এবং ওয়েব অ্যাপ্লিকেশন ফায়ারওয়াল (WAF) সনাক্তকরণ সিস্টেম। ক্লাউড আর্মার গুগল ক্লাউড এইচটিটিপি লোড ব্যালেন্সারের সাথে শক্তভাবে মিলিত হয়েছে এবং ইন্টারনেটের আক্রমণ থেকে গুগল ক্লাউড গ্রাহকদের অ্যাপ্লিকেশনগুলিকে রক্ষা করে। reCAPTCHA এন্টারপ্রাইজ হল এমন একটি পরিষেবা যা আপনার সাইটকে স্প্যাম এবং অপব্যবহার থেকে রক্ষা করে, বিদ্যমান reCAPTCHA API এর উপর ভিত্তি করে তৈরি করে যা মানুষ এবং বটকে আলাদা করার জন্য উন্নত ঝুঁকি বিশ্লেষণ কৌশল ব্যবহার করে। ক্লাউড আর্মার বট ম্যানেজমেন্ট ডাউনস্ট্রিম অ্যাপ্লিকেশনগুলিকে রক্ষা করতে নেটওয়ার্কের প্রান্তে ক্লাউড আর্মার দ্বারা প্রয়োগের সাথে reCAPTCHA এন্টারপ্রাইজ বট সনাক্তকরণ এবং স্কোরিংকে একীভূত করে এন্ড-টু-এন্ড সমাধান সরবরাহ করে।
এই ল্যাবে, আপনি একটি ব্যাকএন্ড সহ একটি HTTP লোড ব্যালেন্সার কনফিগার করেন, যেমনটি নীচের চিত্রে দেখানো হয়েছে। তারপর, আপনি একটি reCAPTCHA সেশন টোকেন সাইট কী সেট আপ করতে শিখবেন এবং এটিকে আপনার ওয়েবসাইটে এম্বেড করতে পারবেন। এছাড়াও আপনি reCAPTCHA এন্টারপ্রাইজ ম্যানুয়াল চ্যালেঞ্জে পুনর্নির্দেশ সেট আপ করতে শিখবেন। তারপরে আমরা একটি ক্লাউড আর্মার বট পরিচালনা নীতি কনফিগার করব কীভাবে বট সনাক্তকরণ আপনার অ্যাপ্লিকেশনকে দূষিত বট ট্র্যাফিক থেকে রক্ষা করে তা প্রদর্শন করতে।
আপনি কি শিখবেন
- যথাযথ স্বাস্থ্য পরীক্ষা সহ কিভাবে একটি HTTP লোড ব্যালেন্সার সেট আপ করবেন।
- কিভাবে একটি reCAPTCHA WAF চ্যালেঞ্জ-পৃষ্ঠা সাইট কী তৈরি করবেন এবং এটিকে ক্লাউড আর্মার নিরাপত্তা নীতির সাথে যুক্ত করবেন।
- কীভাবে একটি reCAPTCHA সেশন টোকেন সাইট কী তৈরি করবেন এবং এটি আপনার ওয়েব পৃষ্ঠাগুলিতে ইনস্টল করবেন।
- কিভাবে একটি ক্লাউড আর্মার বট পরিচালনা নীতি তৈরি করবেন।
- বট ম্যানেজমেন্ট নীতি কনফিগার করা নিয়মের উপর ভিত্তি করে ট্র্যাফিক পরিচালনা করছে তা কীভাবে যাচাই করবেন।
আপনি কি প্রয়োজন হবে
- বেসিক নেটওয়ার্কিং এবং HTTP এর জ্ঞান
- মৌলিক ইউনিক্স/লিনাক্স কমান্ড লাইন জ্ঞান
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
- প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না এবং আপনি যে কোনো সময় এটি আপডেট করতে পারেন।
- সমস্ত Google ক্লাউড প্রজেক্ট জুড়ে প্রোজেক্ট আইডি অবশ্যই অনন্য হতে হবে এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে প্রজেক্ট আইডি উল্লেখ করতে হবে (এবং এটি সাধারণত
PROJECT_ID
হিসাবে চিহ্নিত করা হয়), তাই আপনি যদি এটি পছন্দ না করেন তবে অন্য একটি এলোমেলো তৈরি করুন, অথবা, আপনি নিজের চেষ্টা করে দেখতে পারেন এটি উপলব্ধ কিনা। তারপর প্রকল্প তৈরি হওয়ার পরে এটি "হিমায়িত" হয়। - একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
- এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। রিসোর্স বন্ধ করতে যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন, কোডল্যাবের শেষে পাওয়া যেকোনো "ক্লিন-আপ" নির্দেশাবলী অনুসরণ করুন। Google ক্লাউডের নতুন ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
ক্লাউড শেল শুরু করুন
যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Google ক্লাউড শেল ব্যবহার করবেন, একটি কমান্ড লাইন পরিবেশ যা ক্লাউডে চলছে।
GCP কনসোল থেকে উপরের ডানদিকে টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:
পরিবেশের ব্যবস্থা করতে এবং সংযোগ করতে এটি শুধুমাত্র কয়েক মুহূর্ত নিতে হবে। এটি সমাপ্ত হলে, আপনি এই মত কিছু দেখতে হবে:
এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই ল্যাবে আপনার সমস্ত কাজ কেবল একটি ব্রাউজার দিয়ে করা যেতে পারে।
আপনি শুরু করার আগে
ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রকল্প আইডি সেট আপ করা আছে
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] PROJECT_ID=[YOUR-PROJECT-NAME] echo $PROJECT_ID
এপিআই সক্ষম করুন
সমস্ত প্রয়োজনীয় পরিষেবা সক্রিয় করুন
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com gcloud services enable recaptchaenterprise.googleapis.com
3. HTTP এবং SSH ট্র্যাফিককে ব্যাকএন্ডে অনুমতি দেওয়ার জন্য ফায়ারওয়াল নিয়মগুলি কনফিগার করুন৷
Google ক্লাউড স্বাস্থ্য পরীক্ষা এবং লোড ব্যালেন্সার থেকে ব্যাকএন্ডে HTTP ট্র্যাফিকের অনুমতি দেওয়ার জন্য ফায়ারওয়াল নিয়মগুলি কনফিগার করুন৷ এছাড়াও, উদাহরণগুলিতে SSH-কে অনুমতি দেওয়ার জন্য একটি ফায়ারওয়াল নিয়ম কনফিগার করুন।
আমরা আপনার প্রকল্পে তৈরি ডিফল্ট VPC নেটওয়ার্ক ব্যবহার করব। ব্যাকএন্ডে HTTP ট্র্যাফিকের অনুমতি দেওয়ার জন্য একটি ফায়ারওয়াল নিয়ম তৈরি করুন। স্বাস্থ্য পরীক্ষা নির্ধারণ করে যে লোড ব্যালেন্সারের কোন দৃষ্টান্তগুলি নতুন সংযোগ পেতে পারে। HTTP লোড ব্যালেন্সিংয়ের জন্য, আপনার লোডের ভারসাম্যপূর্ণ দৃষ্টান্তগুলির স্বাস্থ্য পরীক্ষাগুলি 130.211.0.0/22 এবং 35.191.0.0/16 রেঞ্জের ঠিকানাগুলি থেকে আসে। আপনার ভিপিসি ফায়ারওয়াল নিয়মগুলি অবশ্যই এই সংযোগগুলিকে অনুমতি দেবে৷ এছাড়াও, লোড ব্যালেন্সারগুলি একই আইপি রেঞ্জের ব্যাকএন্ডের সাথে কথা বলে।
- ক্লাউড কনসোলে, নেভিগেশন মেনুতে নেভিগেট করুন ( ) > ভিপিসি নেটওয়ার্ক > ফায়ারওয়াল ।
- বিদ্যমান ICMP , অভ্যন্তরীণ , RDP , এবং SSH ফায়ারওয়াল নিয়মগুলি লক্ষ্য করুন৷ প্রতিটি Google ক্লাউড প্রকল্প ডিফল্ট নেটওয়ার্ক এবং এই ফায়ারওয়াল নিয়মগুলি দিয়ে শুরু হয়৷
- ফায়ারওয়াল নিয়ম তৈরি করুন ক্লিক করুন।
- নিম্নলিখিত মানগুলি সেট করুন, অন্যান্য সমস্ত মান তাদের ডিফল্টে ছেড়ে দিন:
সম্পত্তি | মান (প্রকার মান বা নির্দিষ্ট করা বিকল্প নির্বাচন করুন) |
নাম | ডিফল্ট-অনুমতি-স্বাস্থ্য-পরীক্ষা |
নেটওয়ার্ক | ডিফল্ট |
টার্গেট | নির্দিষ্ট লক্ষ্য ট্যাগ |
লক্ষ্য ট্যাগ | অনুমতি-স্বাস্থ্য-পরীক্ষা |
উৎস ফিল্টার | আইপি রেঞ্জ |
উৎস আইপি রেঞ্জ | 130.211.0.0/22, 35.191.0.0/16 |
প্রোটোকল এবং পোর্ট | নির্দিষ্ট প্রোটোকল এবং পোর্ট, এবং তারপর tcp চেক করুন । পোর্ট নম্বরের জন্য 80 টাইপ করুন |
- তৈরি করুন ক্লিক করুন।
বিকল্পভাবে, আপনি যদি gcloud কমান্ড লাইন ব্যবহার করেন। নিম্নে নির্দেশ দেওয়া হল-
gcloud compute firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=allow-health-check
- একইভাবে, উদাহরণগুলিতে SSH-ing-এর অনুমতি দেওয়ার জন্য একটি ফায়ারওয়াল নিয়ম তৈরি করুন -
gcloud compute firewall-rules create allow-ssh --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0 --target-tags=allow-health-check
4. ইনস্ট্যান্স টেমপ্লেট কনফিগার করুন এবং ম্যানেজড ইনস্ট্যান্স গ্রুপ তৈরি করুন
একটি পরিচালিত দৃষ্টান্ত গোষ্ঠী অভিন্ন দৃষ্টান্তগুলির একটি গোষ্ঠী তৈরি করতে একটি উদাহরণ টেমপ্লেট ব্যবহার করে। HTTP লোড ব্যালেন্সারের ব্যাকএন্ড তৈরি করতে এগুলো ব্যবহার করুন।
উদাহরণ টেমপ্লেট কনফিগার করুন
ইনস্ট্যান্স টেমপ্লেট হল একটি রিসোর্স যা আপনি ভিএম ইনস্ট্যান্স এবং ম্যানেজড ইনস্ট্যান্স গ্রুপ তৈরি করতে ব্যবহার করেন। ইনস্ট্যান্স টেমপ্লেট মেশিনের ধরন, বুট ডিস্ক ইমেজ, সাবনেট, লেবেল এবং অন্যান্য উদাহরণ বৈশিষ্ট্য নির্ধারণ করে। নীচে নির্দেশিত হিসাবে একটি উদাহরণ টেমপ্লেট তৈরি করুন।
- ক্লাউড কনসোলে, নেভিগেশন মেনুতে নেভিগেট করুন ( ) > কম্পিউট ইঞ্জিন > ইনস্ট্যান্স টেমপ্লেট , এবং তারপরে ইনস্ট্যান্স টেমপ্লেট তৈরি করুন ক্লিক করুন।
- নামের জন্য, lb-backend-template টাইপ করুন।
- সিরিজের জন্য, N1 নির্বাচন করুন।
- নেটওয়ার্কিং, ডিস্ক, সিকিউরিটি, ম্যানেজমেন্ট, সোল-টেনেন্সি ক্লিক করুন।
- ম্যানেজমেন্ট বিভাগে যান এবং স্টার্টআপ স্ক্রিপ্ট ক্ষেত্রে নিম্নলিখিত স্ক্রিপ্টটি সন্নিবেশ করুন।
#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" sudo echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html
- নেটওয়ার্কিং ট্যাবে ক্লিক করুন, নেটওয়ার্ক ট্যাগ যোগ করুন: অনুমতি-স্বাস্থ্য-চেক
- নিম্নলিখিত মানগুলি সেট করুন এবং অন্যান্য সমস্ত মানকে তাদের ডিফল্টে ছেড়ে দিন -
সম্পত্তি | মান (প্রকার মান বা নির্দিষ্ট করা বিকল্প নির্বাচন করুন) |
নেটওয়ার্ক (নেটওয়ার্ক ইন্টারফেসের অধীনে) | ডিফল্ট |
সাবনেট (নেটওয়ার্ক ইন্টারফেসের অধীনে) | ডিফল্ট (us-east1) |
নেটওয়ার্ক ট্যাগ | অনুমতি-স্বাস্থ্য-পরীক্ষা |
- তৈরি করুন ক্লিক করুন।
- ইনস্ট্যান্স টেমপ্লেট তৈরি হওয়ার জন্য অপেক্ষা করুন।
পরিচালিত উদাহরণ গ্রুপ তৈরি করুন
- এখনও কম্পিউট ইঞ্জিন পৃষ্ঠায়, বাম মেনুতে ইনস্ট্যান্স গ্রুপে ক্লিক করুন।
- ইনস্ট্যান্স গ্রুপ তৈরি করুন ক্লিক করুন। নতুন পরিচালিত উদাহরণ গোষ্ঠী নির্বাচন করুন (রাষ্ট্রহীন)।
- নিম্নলিখিত মানগুলি সেট করুন, অন্যান্য সমস্ত মান তাদের ডিফল্টে ছেড়ে দিন:
সম্পত্তি | মান (প্রকার মান বা নির্দিষ্ট করা বিকল্প নির্বাচন করুন) |
নাম | lb-ব্যাকএন্ড-উদাহরণ |
অবস্থান | একক অঞ্চল |
অঞ্চল | us-east1 |
জোন | us-east1-b |
উদাহরণ টেমপ্লেট | lb-ব্যাকএন্ড-টেমপ্লেট |
অটোস্কেলিং | অটোস্কেল করবেন না |
দৃষ্টান্তের সংখ্যা | 1 |
- তৈরি করুন ক্লিক করুন।
উদাহরণ গ্রুপে একটি নামযুক্ত পোর্ট যোগ করুন
আপনার উদাহরণ গোষ্ঠীর জন্য, একটি HTTP পরিষেবা সংজ্ঞায়িত করুন এবং প্রাসঙ্গিক পোর্টে একটি পোর্টের নাম ম্যাপ করুন। লোড ব্যালেন্সিং পরিষেবাটি নামযুক্ত বন্দরে ট্র্যাফিক ফরোয়ার্ড করে।
gcloud compute instance-groups set-named-ports lb-backend-example \ --named-ports http:80 \ --zone us-east1-b
5. HTTP লোড ব্যালেন্সার কনফিগার করুন
আপনার ব্যাকএন্ড lb-backend-উদাহরণে ট্রাফিক পাঠাতে HTTP লোড ব্যালেন্সার কনফিগার করুন:
কনফিগারেশন শুরু করুন
- ক্লাউড কনসোলে, নেভিগেশন মেনুতে ক্লিক করুন ( ) > নেটওয়ার্ক সার্ভিসেস > লোড ব্যালেন্সিং -এ ক্লিক করুন এবং তারপর ক্রিয়েট লোড ব্যালেন্সার ক্লিক করুন।
- HTTP(S) লোড ব্যালেন্সিংয়ের অধীনে, স্টার্ট কনফিগারেশনে ক্লিক করুন।
- ইন্টারনেট থেকে আমার ভিএম , ক্লাসিক HTTP(এস) লোড ব্যালেন্সার নির্বাচন করুন এবং চালিয়ে যান ক্লিক করুন।
- নামটি http-lb এ সেট করুন।
ব্যাকএন্ড কনফিগার করুন
ব্যাকএন্ড পরিষেবা এক বা একাধিক সংযুক্ত ব্যাকএন্ডে আগত ট্র্যাফিককে নির্দেশ করে। প্রতিটি ব্যাকএন্ড একটি ইনস্ট্যান্স গ্রুপ এবং অতিরিক্ত পরিবেশন ক্ষমতা মেটাডেটা নিয়ে গঠিত।
- ব্যাকএন্ড কনফিগারেশনে ক্লিক করুন।
- ব্যাকএন্ড পরিষেবা এবং ব্যাকএন্ড বালতিগুলির জন্য, একটি ব্যাকএন্ড পরিষেবা তৈরি করুন ক্লিক করুন।
- নিম্নলিখিত মানগুলি সেট করুন, অন্যান্য সমস্ত মান তাদের ডিফল্টে ছেড়ে দিন:
সম্পত্তি | মান (নির্দিষ্ট হিসাবে বিকল্প নির্বাচন করুন) |
নাম | http-ব্যাকএন্ড |
প্রোটোকল | HTTP |
নাম বন্দর | htp |
উদাহরণ গ্রুপ | lb-ব্যাকএন্ড-উদাহরণ |
পোর্ট নম্বর | 80 |
- সম্পন্ন ক্লিক করুন.
- ব্যাকএন্ড যোগ করুন ক্লিক করুন।
- স্বাস্থ্য পরীক্ষার জন্য, স্বাস্থ্য পরীক্ষা তৈরি করুন নির্বাচন করুন।
- নিম্নলিখিত মানগুলি সেট করুন, অন্যান্য সমস্ত মান তাদের ডিফল্টে ছেড়ে দিন:
সম্পত্তি | মান (নির্দিষ্ট হিসাবে বিকল্প নির্বাচন করুন) |
নাম | http-স্বাস্থ্য-পরীক্ষা |
প্রোটোকল | টিসিপি |
বন্দর | 80 |
- Save এ ক্লিক করুন।
- লগিং বক্স সক্ষম করুন চেক করুন।
- নমুনা হার 1 এ সেট করুন:
- ব্যাকএন্ড পরিষেবা তৈরি করতে তৈরি করুন ক্লিক করুন।
ফ্রন্টএন্ড কনফিগার করুন
হোস্ট এবং পথের নিয়মগুলি নির্ধারণ করে যে আপনার ট্র্যাফিক কীভাবে পরিচালিত হবে। উদাহরণস্বরূপ, আপনি একটি ব্যাকএন্ডে ভিডিও ট্র্যাফিক এবং অন্য ব্যাকএন্ডে স্ট্যাটিক ট্র্যাফিক পরিচালনা করতে পারেন। যাইহোক, আপনি এই ল্যাবে হোস্ট এবং পাথ নিয়মগুলি কনফিগার করছেন না।
- ফ্রন্টএন্ড কনফিগারেশনে ক্লিক করুন।
- অন্যান্য সমস্ত মান তাদের ডিফল্টে রেখে নিম্নলিখিতগুলি নির্দিষ্ট করুন:
সম্পত্তি | মান (প্রকার মান বা নির্দিষ্ট করা বিকল্প নির্বাচন করুন) |
প্রোটোকল | HTTP |
আইপি সংস্করণ | IPv4 |
আইপি ঠিকানা | ক্ষণস্থায়ী |
বন্দর | 80 |
- সম্পন্ন ক্লিক করুন.
পর্যালোচনা করুন এবং HTTP লোড ব্যালেন্সার তৈরি করুন
- পর্যালোচনা এবং চূড়ান্ত ক্লিক করুন.
- ব্যাকএন্ড পরিষেবা এবং ফ্রন্টএন্ড পর্যালোচনা করুন।
- Create এ ক্লিক করুন।
- লোড ব্যালেন্সার তৈরি হওয়ার জন্য অপেক্ষা করুন।
- লোড ব্যালেন্সারের নামের উপর ক্লিক করুন ( http-lb )।
- পরবর্তী কাজের জন্য লোড ব্যালেন্সারের IPv4 ঠিকানাটি নোট করুন। আমরা এটিকে [LB_IP_v4] হিসাবে উল্লেখ করব।
6. HTTP লোড ব্যালেন্সার পরীক্ষা করুন
এখন আপনি আপনার ব্যাকএন্ডের জন্য HTTP লোড ব্যালেন্সার তৈরি করেছেন, যাচাই করুন যে ট্র্যাফিক ব্যাকএন্ড পরিষেবাতে ফরোয়ার্ড করা হয়েছে। HTTP লোড ব্যালেন্সারে IPv4 অ্যাক্সেস পরীক্ষা করতে, আপনার ব্রাউজারে একটি নতুন ট্যাব খুলুন এবং http://[LB_IP_v4]- এ নেভিগেট করুন। লোড ব্যালেন্সারের IPv4 ঠিকানা দিয়ে [LB_IP_v4] প্রতিস্থাপন করা নিশ্চিত করুন।
7. reCAPTCHA সেশন টোকেন এবং চ্যালেঞ্জ-পৃষ্ঠা সাইট কী তৈরি করুন এবং স্থাপন করুন
WAF এবং Google ক্লাউড আর্মার ইন্টিগ্রেশনের জন্য reCAPTCHA Enterprise নিম্নলিখিত বৈশিষ্ট্যগুলি অফার করে: reCAPTCHA চ্যালেঞ্জ পৃষ্ঠা , reCAPTCHA অ্যাকশন-টোকেন এবং reCAPTCHA সেশন-টোকেন ৷ এই কোড ল্যাবে, আমরা reCATCHA সেশন টোকেন সাইট কী এবং reCAPTCHA WAF চ্যালেঞ্জ-পৃষ্ঠা সাইট বাস্তবায়ন করব।
reCAPTCHA সেশন টোকেন এবং WAF চ্যালেঞ্জ-পৃষ্ঠা সাইট কী তৈরি করুন
সেশন টোকেন সাইট কী এবং চ্যালেঞ্জ পৃষ্ঠা সাইট কী তৈরি করার আগে, শুরুতে "এপিআই সক্ষম করুন" বিভাগে নির্দেশিত হিসাবে আপনি reCAPTCHA এন্টারপ্রাইজ API সক্ষম করেছেন কিনা তা দুবার পরীক্ষা করুন৷
reCAPTCHA জাভাস্ক্রিপ্ট মূল্যায়নের পরে শেষ-ব্যবহারকারীর ব্রাউজারে একটি কুকি হিসাবে একটি reCAPTCHA সেশন-টোকেন সেট করে। শেষ-ব্যবহারকারীর ব্রাউজার কুকি সংযুক্ত করে এবং যতক্ষণ reCAPTCHA জাভাস্ক্রিপ্ট সক্রিয় থাকে ততক্ষণ কুকিটিকে রিফ্রেশ করে।
- reCAPTCHA সেশন টোকেন সাইট কী তৈরি করুন এবং কীটির জন্য WAF বৈশিষ্ট্য সক্রিয় করুন। এছাড়াও আমরা ক্লাউড আর্মার ইন্টিগ্রেশন সক্ষম করতে ক্লাউড আর্মারে WAF পরিষেবা সেট করব।
gcloud recaptcha keys create --display-name=test-key-name \ --web --allow-all-domains --integration-type=score --testing-score=0.5 \ --waf-feature=session-token --waf-service=ca
- উপরের কমান্ডের আউটপুট, আপনাকে তৈরি করা কী দেয়। এটির একটি নোট করুন কারণ আমরা পরবর্তী ধাপে এটি আপনার ওয়েব সাইটে যোগ করব৷
- reCAPTCHA WAF চ্যালেঞ্জ-পৃষ্ঠা সাইট কী তৈরি করুন এবং কীটির জন্য WAF বৈশিষ্ট্য সক্রিয় করুন। প্রতিটি অনুরোধ সম্ভাব্য জালিয়াতি বা বৈধ কিনা তা নির্ধারণ করতে আপনি reCAPTCHA এন্টারপ্রাইজে ইনকামিং অনুরোধগুলি পুনঃনির্দেশ করতে reCAPTCHA চ্যালেঞ্জ পৃষ্ঠা বৈশিষ্ট্যটি ব্যবহার করতে পারেন। ম্যানুয়াল চ্যালেঞ্জ সক্ষম করতে আমরা পরে এই কীটিকে ক্লাউড আর্মার সুরক্ষা নীতির সাথে সংযুক্ত করব। পরবর্তী ধাপে আমরা এই কীটিকে চ্যালেঞ্জ-পেজ-কী হিসাবে উল্লেখ করব।
gcloud recaptcha keys create --display-name=challenge-page-key \ --web --allow-all-domains --integration-type=INVISIBLE \ --waf-feature=challenge-page --waf-service=ca
- নেভিগেশন মেনুতে নেভিগেট করুন ( ) > নিরাপত্তা > reCAPTCHA এন্টারপ্রাইজ। আপনি এন্টারপ্রাইজ কীগুলির অধীনে তৈরি করা কীগুলি দেখতে পাবেন -
reCAPTCHA সেশন টোকেন সাইট কী প্রয়োগ করুন
- নেভিগেশন মেনুতে নেভিগেট করুন ( ) > কম্পিউট ইঞ্জিন > ভিএম ইনস্ট্যান্স। আপনার ইনস্ট্যান্স গ্রুপে VM এবং এটিতে SSH সনাক্ত করুন।
- ওয়েব সার্ভার রুট ডিরেক্টরিতে যান এবং ব্যবহারকারীকে রুটে পরিবর্তন করুন -
@lb-backend-example-4wmn:~$ cd /var/www/html/ @lb-backend-example-4wmn:/var/www/html$ sudo su
- ল্যান্ডিং index.html পৃষ্ঠা আপডেট করুন এবং reCAPTCHA সেশন টোকেন সাইট কী এম্বেড করুন। সেশন টোকেন সাইট কী নিচের মত আপনার ল্যান্ডিং পৃষ্ঠার প্রধান বিভাগে সেট করা আছে -
<script src="https://www.google.com/recaptcha/enterprise.js?render= <REPLACE_TOKEN_HERE> &waf=session" async defer></script>
নীচে নির্দেশিত হিসাবে index.html ফাইলটি আপডেট করার আগে টোকেনটি প্রতিস্থাপন করতে ভুলবেন না -
root@lb-backend-example-4wmn:/var/www/html# echo '<!doctype html><html><head><title>ReCAPTCHA Session Token</title><script src="https://www.google.com/recaptcha/enterprise.js?render=<REPLACE_TOKEN_HERE>&waf=session" async defer></script></head><body><h1>Main Page</h1><p><a href="/good-score.html">Visit allowed link</a></p><p><a href="/bad-score.html">Visit blocked link</a></p><p><a href="/median-score.html">Visit redirect link</a></p></body></html>' > index.html
- বট পরিচালনার নীতিগুলি পরীক্ষা করার জন্য আরও তিনটি নমুনা পৃষ্ঠা তৈরি করুন -
- good-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Congrats! You have a good score!!</h1></body></html>' > good-score.html
- bad-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>Sorry, You have a bad score!</h1></body></html>' > bad-score.html
- median-score.html
root@lb-backend-example-4wmn:/var/www/html# echo '<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body><h1>You have a median score that we need a second verification.</h1></body></html>' > median-score.html
- আপনার ব্রাউজারে খোলার মাধ্যমে আপনি সমস্ত ওয়েবপেজ অ্যাক্সেস করতে পারবেন তা যাচাই করুন। লোড ব্যালেন্সারের IPv4 ঠিকানা দিয়ে [LB_IP_v4] প্রতিস্থাপন করা নিশ্চিত করুন।
- http://[LB_IP_v4]/index.html খুলুন। আপনি যখন পৃষ্ঠার নীচে ডানদিকে "reCAPTCHA দ্বারা সুরক্ষিত" দেখতে পাবেন তখন আপনি reCAPTCHA বাস্তবায়ন কাজ করছে কিনা তা যাচাই করতে সক্ষম হবেন -
- প্রতিটি লিঙ্কে ক্লিক করুন.
- আপনি সমস্ত পৃষ্ঠা অ্যাক্সেস করতে সক্ষম তা যাচাই করুন।
8. বট পরিচালনার জন্য ক্লাউড আর্মার নিরাপত্তা নীতির নিয়ম তৈরি করুন
এই বিভাগে, আপনি reCAPTCHA স্কোরের উপর ভিত্তি করে অনুরোধগুলিকে অনুমতি দিতে, অস্বীকার করতে এবং পুনঃনির্দেশ করতে ক্লাউড আর্মার বট পরিচালনার নিয়মগুলি ব্যবহার করবেন৷ মনে রাখবেন যে আপনি যখন সেশন টোকেন সাইট কী তৈরি করেছিলেন, আপনি 0.5 এর একটি টেস্টিং স্কোর সেট করেছিলেন।
- ক্লাউড শেল-এ (ক্লাউড শেল কীভাবে ব্যবহার করবেন তার নির্দেশাবলীর জন্য " সেটআপ এবং প্রয়োজনীয়তা " এর অধীনে " স্টার্ট ক্লাউড শেল " পড়ুন), gcloud এর মাধ্যমে নিরাপত্তা নীতি তৈরি করুন:
gcloud compute security-policies create recaptcha-policy \ --description "policy for bot management"
- মানব এবং স্বয়ংক্রিয় ক্লায়েন্টদের মধ্যে পার্থক্য করতে reCAPTCHA এন্টারপ্রাইজ ম্যানুয়াল চ্যালেঞ্জ ব্যবহার করতে, নিরাপত্তা নীতির সাথে ম্যানুয়াল চ্যালেঞ্জের জন্য আমরা তৈরি করা reCAPTCHA WAF চ্যালেঞ্জ সাইট কীটিকে সংযুক্ত করুন। "CHALLENGE-PAGE-KEY" কে আমাদের তৈরি করা কী দিয়ে প্রতিস্থাপন করুন -
gcloud compute security-policies update recaptcha-policy \ --recaptcha-redirect-site-key "CHALLENGE-PAGE-KEY"
- url পাথ good-score.html এর সাথে মেলে এবং 0.4-এর বেশি স্কোর থাকলে ট্র্যাফিকের অনুমতি দিতে একটি বট পরিচালনার নিয়ম যোগ করুন৷
gcloud compute security-policies rules create 2000 \ --security-policy recaptcha-policy\ --expression "request.path.matches('good-score.html') && token.recaptcha_session.score > 0.4"\ --action allow
- url পাথ bad-score.html এর সাথে মেলে এবং 0.6 এর কম স্কোর থাকলে ট্র্যাফিক অস্বীকার করতে একটি বট পরিচালনার নিয়ম যোগ করুন৷
gcloud compute security-policies rules create 3000 \ --security-policy recaptcha-policy\ --expression "request.path.matches('bad-score.html') && token.recaptcha_session.score < 0.6"\ --action "deny-403"
- url পাথ median-score.html এর সাথে মেলে এবং 0.5 এর সমান স্কোর থাকলে Google reCAPTCHA-এ ট্রাফিক পুনঃনির্দেশিত করতে একটি বট পরিচালনার নিয়ম যোগ করুন
gcloud compute security-policies rules create 1000 \ --security-policy recaptcha-policy\ --expression "request.path.matches('median-score.html') && token.recaptcha_session.score == 0.5"\ --action redirect \ --redirect-type google-recaptcha
- ব্যাকএন্ড পরিষেবা http-ব্যাকেন্ডে নিরাপত্তা নীতি সংযুক্ত করুন:
gcloud compute backend-services update http-backend \ --security-policy recaptcha-policy –-global
- কনসোলে, নেভিগেশন মেনু > নেটওয়ার্ক নিরাপত্তা > ক্লাউড আর্মারে নেভিগেট করুন।
- রিক্যাপচা-নীতিতে ক্লিক করুন । আপনার নীতি নিম্নলিখিত অনুরূপ হওয়া উচিত:
9. ক্লাউড আর্মার দিয়ে বট ম্যানেজমেন্ট যাচাই করুন
- একটি ব্রাউজার খুলুন এবং url লিখুন http://[LB_IP_v4]/index.html৷ "অনুমতি লিঙ্কে যান" নেভিগেট করুন। আপনাকে এর মাধ্যমে অনুমতি দেওয়া উচিত -
- আমাদের একটি নতুন সেশন নিশ্চিত করতে ছদ্মবেশী মোডে একটি নতুন উইন্ডো খুলুন। url লিখুন http://[LB_IP_v4]/index.html এবং "অবরুদ্ধ লিঙ্কে যান" নেভিগেট করুন। আপনার একটি HTTP 403 ত্রুটি পাওয়া উচিত -
- আমাদের একটি নতুন সেশন নিশ্চিত করতে ছদ্মবেশী মোডে একটি নতুন উইন্ডো খুলুন। url লিখুন http://[LB_IP_v4]/index.html এবং নেভিগেট করুন "রিডাইরেক্ট লিঙ্কে যান"। আপনি Google reCAPTCHA-এ পুনঃনির্দেশ এবং ম্যানুয়াল চ্যালেঞ্জ পৃষ্ঠাটি নীচে দেখতে পাবেন -
ক্লাউড আর্মার লগগুলি যাচাই করুন
প্রত্যাশিতভাবে বট পরিচালনা কাজ করেছে তা যাচাই করতে নিরাপত্তা নীতি লগগুলি অন্বেষণ করুন৷
- কনসোলে, নেভিগেশন মেনু > নেটওয়ার্ক নিরাপত্তা > ক্লাউড আর্মারে নেভিগেট করুন।
- রিক্যাপচা-নীতিতে ক্লিক করুন।
- লগ-এ ক্লিক করুন।
- নীতি লগ দেখুন ক্লিক করুন.
- নীচে MQL(মনিটরিং ক্যোয়ারী ল্যাঙ্গুয়েজ) ক্যোয়ারী আছে, আপনি ক্যোয়ারী এডিটারে কপি করে পেস্ট করতে পারেন -
resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(recaptcha-policy)
- এখন Run Query এ ক্লিক করুন।
- কোয়েরি ফলাফলে একটি লগ এন্ট্রি খুঁজুন যেখানে অনুরোধটি http://[LB_IP_v4]/good-score.html-এর জন্য। jsonPayload প্রসারিত করুন। enforcedSecurity Policy প্রসারিত করুন।
- http://[LB_IP_v4]/bad-score.html এবং http://[LB_IP_v4]/median-score.html এর জন্য একই পুনরাবৃত্তি করুন
লক্ষ্য করুন যে কনফিগার করা অ্যাকশনটি recaptcha-policy নামের সাথে ALLOW, DENY বা GOOGLE_RECAPTCHA তে সেট করা আছে।
অভিনন্দন! আপনি ক্লাউড আর্মারের সাথে বট পরিচালনার এই ল্যাবটি সম্পূর্ণ করেছেন
©2020 Google LLC সর্বস্বত্ব সংরক্ষিত৷ Google এবং Google লোগো হল Google LLC-এর ট্রেডমার্ক। অন্যান্য সমস্ত কোম্পানি এবং পণ্যের নাম সংশ্লিষ্ট কোম্পানির ট্রেডমার্ক হতে পারে যার সাথে তারা যুক্ত।
10. ল্যাব পরিষ্কার করা
- নেটওয়ার্ক সিকিউরিটি >> ক্লাউড আর্মার >> %POLICY NAME%- এ নেভিগেট করুন এবং ডিলিট নির্বাচন করুন -
- নেটওয়ার্কিং >> নেটওয়ার্ক পরিষেবা >> লোড ব্যালেন্সিং-এ নেভিগেট করুন। আপনার তৈরি লোড ব্যালেন্সার নির্বাচন করুন এবং মুছুন ক্লিক করুন।
মুছে ফেলার জন্য অতিরিক্ত সংস্থান হিসাবে ব্যাকএন্ড পরিষেবা এবং স্বাস্থ্য পরীক্ষা নির্বাচন করুন -
- নেভিগেশন মেনুতে নেভিগেট করুন ( ) > কম্পিউট ইঞ্জিন > ইনস্ট্যান্স গ্রুপ। পরিচালিত উদাহরণ গোষ্ঠী নির্বাচন করুন এবং মুছুন ক্লিক করুন -
পাঠ্যবক্সে "মুছুন" টাইপ করে মুছে ফেলা নিশ্চিত করুন।
পরিচালিত উদাহরণ গোষ্ঠীটি মুছে ফেলার জন্য অপেক্ষা করুন। এটি গ্রুপের উদাহরণটিও মুছে দেয়। উদাহরণ গোষ্ঠীটি মুছে ফেলার পরেই আপনি টেমপ্লেটগুলি মুছতে পারেন৷
- বাম দিকের ফলক থেকে ইনস্ট্যান্স টেমপ্লেটগুলিতে নেভিগেট করুন**।** ইনস্ট্যান্স টেমপ্লেটটি নির্বাচন করুন এবং মুছুন ক্লিক করুন।
- নেভিগেশন মেনুতে নেভিগেট করুন ( ) > ভিপিসি নেটওয়ার্ক > ফায়ারওয়াল । ডিফল্ট-অনুমতি-স্বাস্থ্য-পরীক্ষা এবং অনুমতি-ssh নিয়ম নির্বাচন করুন এবং মুছুন ক্লিক করুন।
- নেভিগেশন মেনুতে নেভিগেট করুন ( ) > নিরাপত্তা > reCAPTCHA এন্টারপ্রাইজ। আমাদের তৈরি কীগুলি নির্বাচন করুন এবং এটি মুছুন। টেক্সটবক্সে "DELETE" লিখে মুছে ফেলা নিশ্চিত করুন।
11. অভিনন্দন!
আপনি ক্লাউড আর্মারের সাথে সফলভাবে বট ব্যবস্থাপনা বাস্তবায়ন করেছেন। আপনি একটি HTTP লোড ব্যালেন্সার কনফিগার করেছেন৷ তারপর, আপনি একটি ওয়েবপৃষ্ঠায় reCAPTCHA সেশন টোকেন সাইট কী তৈরি এবং প্রয়োগ করেছেন। আপনি একটি চ্যালেঞ্জ-পৃষ্ঠা সাইট কী তৈরি করতেও শিখেছেন। আপনি ক্লাউড আর্মার বট পরিচালনা নীতি সেট আপ করেছেন এবং নিয়মের ভিত্তিতে তারা কীভাবে অনুরোধগুলি পরিচালনা করে তা যাচাই করেছেন। কেন ট্র্যাফিক অনুমোদিত, অবরুদ্ধ বা পুনঃনির্দেশিত হয়েছে তা সনাক্ত করতে আপনি নিরাপত্তা নীতি লগগুলি অন্বেষণ করতে সক্ষম হয়েছেন৷
আমরা কভার করেছি কি
- কিভাবে ইনস্ট্যান্স টেমপ্লেট সেট আপ করবেন এবং ম্যানেজড ইনস্ট্যান্স গ্রুপ তৈরি করবেন।
- কিভাবে একটি HTTP লোড ব্যালেন্সার সেট আপ করবেন।
- কিভাবে একটি ক্লাউড আর্মার বট পরিচালনা নীতি তৈরি করবেন।
- কিভাবে reCAPTCHA সেশন টোকেন সাইট কী তৈরি এবং প্রয়োগ করবেন।
- কিভাবে reCAPTCHA চ্যালেঞ্জ পৃষ্ঠা সাইট কী তৈরি এবং প্রয়োগ করবেন।
- বট ম্যানেজমেন্ট নীতি উদ্দেশ্য অনুযায়ী কাজ করছে তা কীভাবে যাচাই করবেন।
পরবর্তী পদক্ষেপ
- reCAPTCHA অ্যাকশন টোকেন সেট আপ করার চেষ্টা করুন।