১. ভূমিকা
ক্লাউড আর্মার নিরাপত্তা নীতিগুলি আপনার পরিকাঠামোর আপস্ট্রিমে, গুগলের নেটওয়ার্কের প্রান্তে ট্র্যাফিক ফিল্টার করার জন্য ব্যবহারকারী-সংজ্ঞায়িত নিয়ম কনফিগার করতে ব্যবহৃত হয়। নেটওয়ার্ক এজ নিরাপত্তা নীতিগুলি নিম্নলিখিত এন্ডপয়েন্ট প্রকারগুলিকে লক্ষ্য করে ট্র্যাফিক সুরক্ষিত করতে এবং অনুমতি দিতে বা ব্লক করতে সাহায্য করতে পারে: নেটওয়ার্ক লোড ব্যালেন্সার, প্রোটোকল ফরওয়ার্ডিং এবং পাবলিক আইপি সহ ভিএম।

এই কোড ল্যাবে আমরা দেখাবো কিভাবে ডিডিওএস (DDoS) আক্রমণ প্রতিরোধ করার জন্য ব্যবহারকারী-সংজ্ঞায়িত নিয়মসহ ক্লাউড আর্মার (Cloud Armor) নিরাপত্তা নীতিগুলি কনফিগার করতে হয়।

চিত্র ১. পাবলিক আইপি সুরক্ষা সহ ক্লাউড আর্মার ফর ভিএম।
আপনি যা শিখবেন
- ব্যবহারকারী-সংজ্ঞায়িত নিয়ম কনফিগারেশন সহ ক্লাউড আর্মার নিরাপত্তা নীতি
- ইউডিপি অফসেট কনফিগারেশন এবং পরীক্ষা।
আপনার যা যা লাগবে
- TCP/IP সম্পর্কে জ্ঞান
- ইউনিক্স/লিনাক্স কমান্ড লাইন সম্পর্কে জ্ঞান
২. শুরু করার আগে
ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রজেক্ট আইডি সেট আপ করা আছে।
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] prodproject=YOUR-PROJECT-NAME echo $prodproject
৩. টার্গেট ভিপিসি নেটওয়ার্ক তৈরি করুন
পরবর্তী অংশে, আমরা ভিপিসি নেটওয়ার্ক এবং সংশ্লিষ্ট নেটওয়ার্কিং কনফিগারেশন স্থাপন করব। ক্লাউড আর্মার নেটওয়ার্ক এজ সিকিউরিটি পলিসি অঞ্চলভিত্তিক, তাই আমরা সমস্ত সম্পর্কিত রিসোর্স এশিয়া-সাউথইস্ট১ অঞ্চলে স্থাপন করেছি।
ভিপিসি নেটওয়ার্ক
ক্লাউড শেল থেকে
gcloud compute networks create ca4nlb --project=$prodproject --subnet-mode=custom
সাবনেট তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute networks subnets create ca4nlb-asia-southeast1 --project=$prodproject --range=10.0.0.0/24 --network=ca4nlb --region=asia-southeast1
ফায়ারওয়াল নিয়ম তৈরি করুন।
এই অংশে, আমরা পোর্ট 10000-এ প্রত্যাশিত UDP ট্র্যাফিকের অনুমতি দেওয়ার জন্য একটি ফায়ারওয়াল নিয়ম যুক্ত করব।
নিম্নলিখিত পরীক্ষার জন্য ক্লাউড শেল থেকে ইউডিপি পোর্ট ১০০০০ খোলার জন্য একটি ফায়ারওয়াল নিয়ম তৈরি করুন।
gcloud compute firewall-rules create ca4nlb-udp10000 --allow udp:10000 --network ca4nlb --source-ranges 0.0.0.0/0 --enable-logging
ক্লাউড শেল থেকে আপনার ভিএম ইনস্ট্যান্সগুলিতে আইএপি-কে সংযোগ করার অনুমতি দেওয়ার জন্য একটি ফায়ারওয়াল নিয়ম তৈরি করুন।
gcloud compute firewall-rules create ca4nlb-iap-prod --network ca4nlb --allow tcp:22 --source-ranges=35.235.240.0/20 --enable-logging
৪. টার্গেট ভিএম ইনস্ট্যান্স তৈরি করুন
নিরাপত্তা নীতি পরীক্ষা করার জন্য একটি টার্গেট ভিএম তৈরি করুন। এই ভিএমটির একটি পাবলিক আইপি অ্যাড্রেস এবং খোলা ইউডিপি পোর্ট ১০০০০ থাকা উচিত।
ক্লাউড শেল থেকে টার্গেটভিএম ইনস্ট্যান্স তৈরি করুন
gcloud compute instances create targetvm \ --zone=asia-southeast1-b \ --image-family=debian-11 \ --image-project=debian-cloud \ --network-interface=network-tier=PREMIUM,nic-type=GVNIC,stack-type=IPV4_ONLY,subnet=ca4nlb-asia-southeast1 \ --shielded-secure-boot \ --shielded-vtpm \ --shielded-integrity-monitoring
৫. উন্নত নেটওয়ার্ক ডিডিওএস সুরক্ষা কনফিগার করুন
ক্লাউড শেল থেকে
gcloud compute security-policies create ca_advanced_ddos \
--type CLOUD_ARMOR_NETWORK \
--region asia-southeast1
gcloud compute security-policies update ca_advanced_ddos \
--network-ddos-protection ADVANCED \
--region asia-southeast1
gcloud compute network-edge-security-services create caedgepolicy \
--security-policy ca_advanced_ddos \
--region asia-southeast1
৬. ডিফল্ট নিয়মাবলী সহ নেটওয়ার্ক এজ নিরাপত্তা নীতি তৈরি করুন।
নেটওয়ার্ক এজ নিরাপত্তা নীতি তৈরি করুন
ক্লাউড শেল থেকে
gcloud alpha compute security-policies create customnetworkedge --type=CLOUD_ARMOR_NETWORK --region=asia-southeast1
ডিফল্ট নিয়ম পরিবর্তন করুন
ক্লাউড শেল থেকে
gcloud alpha compute security-policies rules update 2147483647 --security-policy=customnetworkedge --action=deny --region=asia-southeast1
৭. ব্যবহৃত-কনফিগার করা নিয়মাবলী দিয়ে নেটওয়ার্ক এজ সিকিউরিটি পলিসি তৈরি করুন।
ব্যবহারকারী কর্তৃক পূর্বনির্ধারিত UDP অফসেট ক্লাউড আর্মার পলিসিতে কনফিগার করা থাকে। এই 'অফসেট ভ্যালু' সহ প্যাকেট পলিসি চেক পাস করে ব্যাকএন্ড ভিএম-এ পাঠানো হবে। নিম্নলিখিত উদাহরণে, আমরা ভিন্ন ভিন্ন মান সহ দুটি 'অফসেট' নির্ধারণ করব।
প্রথম মানটি UDP হেডারের ঠিক পরেই থাকে, যা 0x1700 ২ বাইটের সাথে হুবহু মেলে।
দ্বিতীয় মানটি হলো UDP হেডারের ৮ বাইটের অফসেট, যা 0x12345678 এই ৪ বাইটের সাথে হুবহু মেলে।
উপরোক্ত পূর্বনির্ধারিত মানটি একটি ইউডিপি প্যাকেট বিট ভিউতে রূপান্তরিত হবে।

ক্লাউড শেল থেকে
gcloud alpha compute security-policies add-user-defined-field customnetworkedge \ --user-defined-field-name=SIG1_AT_0 \ --base=udp --offset=8 --size=2 --mask=0xFF00 \ --region=asia-southeast1 gcloud alpha compute security-policies add-user-defined-field customnetworkedge \ --user-defined-field-name=SIG2_AT_8 \ --base=udp --offset=16 --size=4 --mask=0xFFFFFFFF \ --region=asia-southeast1 gcloud alpha compute security-policies rules create 1000 \ --security-policy=customnetworkedge \ --network-user-defined-fields="SIG1_AT_0;0x1700,SIG2_AT_8;0x12345678" \ --action=allow --region=asia-southeast1
৮. টার্গেট ভিএম-এ নিরাপত্তা নীতি সংযুক্ত করুন
ক্লাউড শেল থেকে সুরক্ষিত ভিএম-এ নিরাপত্তা নীতি সংযুক্ত করুন।
gcloud alpha compute instances network-interfaces update targetvm \ --security-policy=customnetworkedge \ --security-policy-region=asia-southeast1 \ --network-interface=nic0 \ --zone=asia-southeast1-b
ক্লাউড শেল থেকে টার্গেট ভিএম-টি বর্ণনা করুন, দেখবেন সিকিউরিটি পলিসি সংযুক্ত আছে। পরবর্তী পরীক্ষার জন্য পাবলিক আইপি-টি রেকর্ড করে রাখুন।
gcloud alpha compute instances describe targetvm --zone=asia-southeast1-b
networkInterfaces:
- accessConfigs:
- kind: compute#accessConfig
name: External NAT
natIP: 35.240.148.100
networkTier: PREMIUM
securityPolicy: https://www.googleapis.com/compute/alpha/projects/<project>/regions/asia-southeast1/securityPolicies/customnetworkedge
ক্লাউড শেল থেকে সুরক্ষিত ভিএম থেকে নিরাপত্তা নীতি বিচ্ছিন্ন করুন।
gcloud alpha compute instances network-interfaces update targetvm \ --network-interface=nic0 \ --zone=asia-southeast1-b \ --security-policy=
৯. পরীক্ষার উপকরণ প্রস্তুত করুন।
টেস্ট ভিপিসি নেটওয়ার্ক তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute networks create test --project=$prodproject --subnet-mode=custom
টেস্ট সাবনেট তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute networks subnets create test-asia-southeast1 --project=$prodproject --range=10.0.1.0/24 --network=test --region=asia-southeast1
ফায়ারওয়াল তৈরি করুন
ক্লাউড শেল থেকে আপনার ভিএম ইনস্ট্যান্সগুলিতে আইএপি-কে সংযোগ করার অনুমতি দেওয়ার জন্য একটি ফায়ারওয়াল নিয়ম তৈরি করুন।
gcloud compute firewall-rules create test-iap-prod --network test --allow tcp:22 --source-ranges=35.235.240.0/20 --enable-logging
টেস্ট ভিএম তৈরি করুন
ক্লাউড শেল থেকে
gcloud compute instances create test01 \
--zone=asia-southeast1-b \
--image-family=debian-11 \
--image-project=debian-cloud \
--network-interface=network-tier=PREMIUM,nic-type=GVNIC,stack-type=IPV4_ONLY,subnet=test-asia-southeast1 \
--shielded-secure-boot \
--shielded-vtpm \
--shielded-integrity-monitoring
১০. যাচাইকরণ
টেস্ট ভিএম কনসোলে লগইন করুন এবং প্যাকেট জেনারেটর packit ) ইনস্টল করুন।
sudo apt install packit
UDP অফসেট ডিজাইন অনুসরণ করে, UDP প্যাকেট তৈরি করতে packit ব্যবহার করুন। আমরা ইন্টারফেস (-s ens4) থেকে সোর্স আইপি অ্যাড্রেস (-s 10.0.1.2) ও সোর্স পোর্ট (-S 10000) ব্যবহার করে targetVM-এর ডেস্টিনেশন আইপি অ্যাড্রেস (-d 35.240.148.100) ও ডেস্টিনেশন পোর্ট (-D 10000) পর্যন্ত একটি (-t udp) প্যাকেট সিমুলেট করব। প্যাকেটের বিষয়বস্তু (-p '0x 17 00 00 00 00 00 00 00 12 34 56 78') মানের সাথে মিলে যায়। আমরা (-c 4) টি প্যাকেট পাঠাব।
sudo packit -m inject -t UDP -i ens4 -s 10.0.1.2 -d 35.240.148.100 -S 10000 -D 10000 -p '0x 17 00 00 00 00 00 00 00 12 34 56 78' -c 4
টার্গেট ভিএম-এ UDP প্যাকেট ক্যাপচার করার জন্য tcpdump চালান।
sudo tcpdump port 10000 -v -n
tcpdump: listening on ens4, link-type EN10MB (Ethernet), snapshot length 262144 bytes
06:36:18.434106 IP (tos 0x0, ttl 128, id 17173, offset 0, flags [none], proto UDP (17), length 40)
35.197.157.140.10000 > 10.0.0.2.10000: UDP, length 12
06:36:19.433656 IP (tos 0x0, ttl 128, id 55641, offset 0, flags [none], proto UDP (17), length 40)
35.197.157.140.10000 > 10.0.0.2.10000: UDP, length 12
06:36:20.433935 IP (tos 0x0, ttl 128, id 27161, offset 0, flags [none], proto UDP (17), length 40)
35.197.157.140.10000 > 10.0.0.2.10000: UDP, length 12
06:36:21.434150 IP (tos 0x0, ttl 128, id 46782, offset 0, flags [none], proto UDP (17), length 40)
35.197.157.140.10000 > 10.0.0.2.10000: UDP, length 12
যদি আমরা টেস্ট ভিএম-এর ট্র্যাফিক প্যাটার্ন পরিবর্তন করি, তাহলে টার্গেট ভিএম-এ কোনো প্যাকেট ক্যাপচার করা যায় না।
sudo packit -m inject -t UDP -i ens4 -s 10.148.0.6 -d 34.87.79.31 -S 10000 -D 10000 -p '0x 33 33 00 00 00 00 00 00 12 34 56 78' -c 4
১১. টেলিমেট্রি
ক্লাউড মেট্রিক খুলুন, NetworkSercurityPolicy টেলিমেট্রি ডেটা কোয়েরি করতে নিচের MQL ব্যবহার করুন।
fetch networksecurity.googleapis.com/RegionalNetworkSecurityPolicy | metric 'networksecurity.googleapis.com/l3/external/packet_count' | filter (resource.policy_name == 'customnetworkedge') | align rate(1m) | every 1m | group_by [metric.blocked], [value_packet_count_mean: mean(value.packet_count)] | group_by 1m, [value_packet_count_mean_mean: mean(value_packet_count_mean)] | every 1m
ম্যাচ অফসেট কমান্ড ব্যবহার করে বিপুল পরিমাণ ট্র্যাফিক তৈরি করুন।
sudo packit -m inject -t UDP -i ens4 -s 10.148.0.6 -d 34.87.79.31 -S 10000 -D 10000 -p '0x 17 00 00 00 00 00 00 00 12 34 56 78' -c 1000000 -w 0.001 [result] Injected: 1000000 Packets/Sec: 10309.27 Bytes/Sec: 412371.13 Errors: 0
একটি অমিল অফসেট কমান্ডের মাধ্যমে বিপুল পরিমাণ ট্র্যাফিক তৈরি করুন।
sudo packit -m inject -t UDP -i ens4 -s 10.148.0.6 -d 34.87.79.31 -S 10000 -D 10000 -p '0x 11 00 00 00 00 00 00 00 12 34 56 78' -c 1000000 -w 0.001 [result] Injected: 1000000 Packets/Sec: 10309.27 Bytes/Sec: 412371.13 Errors: 0
টেলিমেট্রি পলিসির নাম অনুসারে ফিল্টার করা হয় এবং ব্লক করা ট্র্যাফিকের ভিত্তিতে গ্রুপ করা হয়। নীল রেখাটি পলিসির নিয়ম দ্বারা অনুমোদিত ট্র্যাফিক নির্দেশ করে। সবুজ রেখাটি পলিসির নিয়ম দ্বারা ব্লক করা ট্র্যাফিক নির্দেশ করে।

১২. পরিষ্কার করার পদক্ষেপ
টার্মিনালে একটিমাত্র ক্লাউড শেল থেকে ল্যাবের উপাদানগুলো মুছে ফেলুন
gcloud compute instances delete targetvm --zone=asia-southeast1-b gcloud compute firewall-rules delete ca4nlb-udp10000 gcloud compute firewall-rules delete ca4nlb-iap-prod gcloud compute networks subnets delete ca4nlb-asia-southeast1 --region=asia-southeast1 gcloud compute networks delete ca4nlb gcloud alpha compute security-policies delete customnetworkedge --region=asia-southeast1 gcloud alpha compute network-edge-security-services delete caedgepolicy --region=asia-southeast1 gcloud alpha compute security-policies delete ca_advanced_ddos --region=asia-southeast1 gcloud compute instances delete test01 --zone=asia-southeast1-b gcloud compute firewall-rules delete test-iap-prod gcloud compute networks subnets delete test-asia-southeast1 --region=asia-southeast1 gcloud compute networks delete test
১৩. অভিনন্দন!
কোডল্যাবটি সম্পন্ন করার জন্য অভিনন্দন।
আমরা যা আলোচনা করেছি
- গ্রাহক-নির্ধারিত নিয়ম সহ ক্লাউড আর্মার নিরাপত্তা নীতিমালা