ব্যবহারকারী সংজ্ঞায়িত নিয়ম সহ NLB/VM-এর জন্য ক্লাউড আর্মার

1. ভূমিকা

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

7bc9d3ed0c03b54f.png

এই কোড ল্যাবে, আমরা DDoS আক্রমণ প্রতিরোধ করার জন্য ব্যবহারকারী-সংজ্ঞায়িত নিয়মগুলির সাথে ক্লাউড আর্মার সুরক্ষা নীতিগুলি কীভাবে কনফিগার করব তা ডেমো করব৷

f0a40260147e71b1.png

চিত্র 1. পাবলিক আইপি সুরক্ষা সহ VM এর জন্য ক্লাউড আর্মার।

আপনি কি শিখবেন

  • ব্যবহারকারী-সংজ্ঞায়িত নিয়ম কনফিগারেশন সহ ক্লাউড আর্মার নিরাপত্তা নীতি
  • UDP অফসেট কনফিগারেশন এবং টেস্টিং।

আপনি কি প্রয়োজন হবে

  • TCP/IP এর জ্ঞান
  • ইউনিক্স/লিনাক্স কমান্ড লাইনের জ্ঞান

2. আপনি শুরু করার আগে

ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রকল্প আইডি সেট আপ করা আছে

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
prodproject=YOUR-PROJECT-NAME
echo $prodproject

3. টার্গেট ভিপিসি নেটওয়ার্ক তৈরি করুন

নিম্নলিখিত বিভাগে, আমরা VPC নেটওয়ার্ক এবং সম্পর্কিত নেটওয়ার্কিং কনফিগারেশন সেট আপ করব। ক্লাউড আর্মার নেটওয়ার্ক এজ নিরাপত্তা নীতি আঞ্চলিক ভিত্তিক, আমরা এশিয়া-দক্ষিণপূর্ব 1 অঞ্চলে সমস্ত সম্পর্কিত সংস্থান সেট আপ করি।

ভিপিসি নেটওয়ার্ক

ক্লাউড শেল থেকে

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 ট্র্যাফিকের অনুমতি দেওয়ার জন্য একটি ফায়ারওয়াল নিয়ম যুক্ত করব।

ক্লাউড শেল থেকে নিম্নলিখিত পরীক্ষার জন্য UDP পোর্ট 10000 খুলতে একটি ফায়ারওয়াল নিয়ম তৈরি করুন।

gcloud compute firewall-rules create ca4nlb-udp10000 --allow udp:10000 --network ca4nlb --source-ranges 0.0.0.0/0 --enable-logging

ক্লাউড শেল থেকে একটি ফায়ারওয়াল নিয়ম তৈরি করুন যাতে IAP আপনার VM দৃষ্টান্তগুলির সাথে সংযোগ করতে পারে।

gcloud compute firewall-rules create ca4nlb-iap-prod --network ca4nlb --allow tcp:22 --source-ranges=35.235.240.0/20 --enable-logging

4. টার্গেট VM ইনস্ট্যান্স তৈরি করুন

নিরাপত্তা নীতি পরীক্ষা করার জন্য একটি লক্ষ্য VM তৈরি করুন। এই VM-এর একটি সর্বজনীন IP ঠিকানা থাকতে হবে এবং UDP পোর্ট 10000 খুলতে হবে।

ক্লাউড শেল থেকে উদাহরণ টার্গেটভিএম তৈরি করুন

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

5. উন্নত নেটওয়ার্ক DDoS সুরক্ষা কনফিগার করুন

ক্লাউড শেল থেকে

 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

6. ডিফল্ট নিয়ম সহ নেটওয়ার্ক এজ নিরাপত্তা নীতি তৈরি করুন

নেটওয়ার্ক এজ নিরাপত্তা নীতি তৈরি করুন

ক্লাউড শেল থেকে

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

7. ব্যবহৃত-কনফিগার করা নিয়মগুলির সাথে নেটওয়ার্ক এজ নিরাপত্তা নীতি তৈরি করুন

ব্যবহারকারীর পূর্বনির্ধারিত UDP অফসেট এবং ক্লাউড আর্মার নীতিতে কনফিগার করা হয়েছে। এই "অফসেট মান" সহ প্যাকেটটি পলিসি চেক পাস করবে এবং এটি ব্যাকএন্ড VM-এ পাঠাবে। নিম্নলিখিত উদাহরণে, আমরা বিভিন্ন মান সহ দুটি "অফসেট" সংজ্ঞায়িত করব।

প্রথম মানটি UDP হেডারের ঠিক পরে, ঠিক 2 বাইট 0x1700 সাথে মেলে

দ্বিতীয় মান UDP হেডারের 8 বাইট অফসেট, হুবহু 4 বাইট 0x12345678 মেলে

উপরে পূর্বনির্ধারিত মান একটি UDP প্যাকেট বিট ভিউতে অনুবাদ করবে।

cbfdaeb93292e07b.png

ক্লাউড শেল থেকে

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

8. VM টার্গেট করতে নিরাপত্তা নীতি সংযুক্ত করুন

ক্লাউড শেল থেকে সুরক্ষিত VM-এ নিরাপত্তা নীতি সংযুক্ত করুন।

gcloud alpha compute instances network-interfaces update targetvm \
--security-policy=customnetworkedge \
--security-policy-region=asia-southeast1 \
--network-interface=nic0 \
--zone=asia-southeast1-b

ক্লাউড শেল থেকে লক্ষ্য VM বর্ণনা করুন, নিরাপত্তা নীতি সংযুক্ত করা দেখতে পাবেন। নিম্নলিখিত পরীক্ষার জন্য পাবলিক আইপি রেকর্ড করুন।

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

ক্লাউড শেল থেকে সুরক্ষিত VM থেকে নিরাপত্তা নীতি বিচ্ছিন্ন করুন।

gcloud alpha compute instances network-interfaces update targetvm \
--network-interface=nic0 \
--zone=asia-southeast1-b \
--security-policy= 

9. পরীক্ষার সম্পদ প্রস্তুত করুন।

টেস্ট ভিপিসি নেটওয়ার্ক তৈরি করুন

ক্লাউড শেল থেকে

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

ফায়ারওয়াল তৈরি করুন

ক্লাউড শেল থেকে একটি ফায়ারওয়াল নিয়ম তৈরি করুন যাতে IAP আপনার VM দৃষ্টান্তগুলির সাথে সংযোগ করতে পারে।

gcloud compute firewall-rules create test-iap-prod --network test --allow tcp:22 --source-ranges=35.235.240.0/20 --enable-logging

টেস্ট VM তৈরি করুন

ক্লাউড শেল থেকে

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

10. যাচাইকরণ

লগইন টেস্ট VM কনসোলে এবং প্যাকেট জেনারেটর packit ইনস্টল করুন।

sudo apt install packit

UDP অফসেট ডিজাইন অনুসরণ করে, UDP প্যাকেট তৈরি করতে প্যাকেট ব্যবহার করুন। আমরা ইন্টারফেস (-s ens4) সোর্স আইপি অ্যাড্রেস (-s 10.0.1.2) থেকে সোর্স পোর্ট (-S 10000) থেকে একটি (-t udp) প্যাকেটকে টার্গেটভিএম গন্তব্য আইপি অ্যাড্রেস (-d 35.240.148.100) গন্তব্য পোর্টের সাথে সিমুলেট করি ( -ডি 10000)। প্যাকেটের সামগ্রী মানগুলির সাথে মেলে (-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

টার্গেট VM-এ, 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

আমরা যদি টেস্ট VM-এ ট্র্যাফিক প্যাটার্ন পরিবর্তন করি, তাহলে আমরা লক্ষ্য VM-এ কোনো প্যাকেট ক্যাপচার করতে পারব না।

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

11. টেলিমেট্রি

ক্লাউড মেট্রিক খুলুন, 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

টেলিমেট্রি নীতি_নাম দ্বারা ফিল্টার করা হয় এবং ব্লক দ্বারা গোষ্ঠীবদ্ধ হয়। নীল লাইন নির্দেশিত ট্রাফিক নীতি নিয়ম দ্বারা অনুমোদিত. সবুজ লাইন নির্দেশিত ট্রাফিক নীতি নিয়ম দ্বারা অবরুদ্ধ.

b11ba15d87f99775.png

12. পরিষ্কার করার পদক্ষেপ

টার্মিনালে একটি একক ক্লাউড শেল থেকে ল্যাবের উপাদানগুলি মুছে দিন

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

13. অভিনন্দন!

কোডল্যাব সম্পূর্ণ করার জন্য অভিনন্দন।

আমরা কভার করেছি কি

  • গ্রাহক সংজ্ঞায়িত নিয়ম সহ ক্লাউড আর্মার নিরাপত্তা নীতি