Google Cloud Armor ile Bot Yönetimi + reCAPTCHA

1. Giriş

Google Cloud HTTP(S) yük dengeleme, Google'ın dünya genelindeki varlık noktalarında (POP) yer alan ağının ucunda dağıtılır. HTTP(S) yük dengeleyiciye yönlendirilen kullanıcı trafiği, kullanıcıya en yakın varlık noktasına girer, ardından Google'ın global ağı üzerinden yeterli kapasiteye sahip en yakın arka uca doğru yük dengelemesi yapılır.

Cloud Armor, Google'ın dağıtılmış hizmet reddi ve web uygulaması güvenlik duvarı (WAF) algılama sistemidir. Cloud Armor, Google Cloud HTTP Yük Dengeleyici ile sıkı bir şekilde uyumludur ve Google Cloud müşterilerinin uygulamalarını internet saldırılarına karşı korur. reCAPTCHA Enterprise, sitenizi spam ve kötüye kullanıma karşı koruyan, gelişmiş risk analizi teknikleri kullanarak gerçek veya bot'ları birbirinden ayıran mevcut reCAPTCHA API'sini temel alan bir hizmettir. Cloud Armor Bot Yönetimi, aşağı akış uygulamalarını korumak için reCAPTCHA Enterprise bot algılama ve puanlama işlemlerini ağın kenarındaki Cloud Armor'ın zorunlu kıldığı şekilde entegre eden uçtan uca çözüm sunar.

Bu laboratuvarda, aşağıdaki şemada gösterildiği gibi arka ucu olan bir HTTP yük dengeleyici yapılandıracaksınız. Ardından, reCAPTCHA oturum jetonu site anahtarı oluşturmayı ve web sitenize yerleştirmeyi öğreneceksiniz. Ayrıca, reCAPTCHA Enterprise manuel sorgulamasına yönlendirmeyi ayarlamayı öğreneceksiniz. Ardından, bot algılamanın uygulamanızı kötü amaçlı bot trafiğinden nasıl koruduğunu göstermek için bir Cloud Armor bot yönetim politikası yapılandıracağız.

8b46e6728996bc0c.png

Neler öğreneceksiniz?

  • Uygun durum denetimleriyle HTTP yük dengeleyici oluşturma
  • reCAPTCHA WAF meydan okuma sayfası site anahtarı oluşturma ve bunu Cloud Armor güvenlik politikasıyla ilişkilendirme.
  • reCAPTCHA oturum jetonu site anahtarı oluşturma ve bu anahtarı web sayfalarınıza yükleme
  • Cloud Armor bot yönetim politikası oluşturma
  • Bot yönetim politikasının trafiği yapılandırılan kurallara göre işlediğini doğrulama.

Gerekenler

  • Temel Ağ İletişimi ve HTTP bilgisi
  • Temel Unix/Linux komut satırı bilgisi

2. Kurulum ve Gereksinimler

Kendi hızınızda ortam kurulumu

  1. Google Cloud Console'da oturum açıp yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir ve bunu istediğiniz zaman güncelleyebilirsiniz.
  • Proje Kimliği, tüm Google Cloud projelerinde benzersiz olmalıdır ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. Genellikle bu dizenin ne olduğunu umursmazsınız. Çoğu codelab'de, proje kimliğine referans vermeniz gerekir (ve bu kimlik genellikle PROJECT_ID olarak tanımlanır). Derlemeyi beğenmezseniz başka bir rastgele dize oluşturabilir veya mevcut bir dizeyi deneyip kullanılabilir olup olmadığına bakabilirsiniz. Proje oluşturulduktan sonra durum "dondurulur".
  • Bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
  1. Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırma yapılmaması için kaynakları kapatmak isterseniz codelab'in sonunda bulunan tüm "temizlik" talimatlarını uygulayın. Yeni Google Cloud kullanıcıları, 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.

Cloud Shell'i başlatma

Google Cloud dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

GCP Console'da, sağ üstteki araç çubuğunda yer alan Cloud Shell simgesini tıklayın:

55efc1aaa7a4d3ad.png

Ortamı sağlamak ve bağlamak yalnızca birkaç dakika sürer. Tamamlandığında şuna benzer bir sonuç görmeniz gerekir:

7ffe5cbb04455448

İhtiyacınız olan tüm geliştirme araçlarını bu sanal makinede bulabilirsiniz. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu laboratuvardaki tüm çalışmalarınızı yalnızca bir tarayıcıyla yapabilirsiniz.

Başlamadan önce

Cloud Shell'de proje kimliğinizin ayarlandığından emin olun

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

API'leri etkinleştirme

Gerekli tüm hizmetleri etkinleştirin

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. Arka uçlara giden HTTP ve SSH trafiğine izin vermek için güvenlik duvarı kurallarını yapılandırın

Google Cloud durum denetimlerinden ve yük dengeleyiciden arka uçlara giden HTTP trafiğine izin vermek için güvenlik duvarı kuralları yapılandırın. Ayrıca, örneklerde SSH'ye izin vermek için bir güvenlik duvarı kuralı yapılandırın.

Projenizde oluşturulan varsayılan VPC ağını kullanacağız. Arka uçlara giden HTTP trafiğine izin vermek için bir güvenlik duvarı kuralı oluşturun. Durum denetimleri, yük dengeleyicinin hangi örneklerinin yeni bağlantılar alabileceğini belirler. Durum denetimi, HTTP yük dengeleme için 130.211.0.0/22 ve 35.191.0.0/16 aralıklarındaki adreslerden gelen yük dengeli örneklerinizde durum kontrolü yapar. VPC güvenlik duvarı kurallarınız bu bağlantılara izin vermelidir. Ayrıca, yük dengeleyiciler aynı IP aralığında arka uçla iletişim kurar.

  1. Cloud Console'da gezinme menüsü (mainmenu.png) > VPC network (VPC ağı) > Firewall'a (Güvenlik duvarı) gidin.

131fb495c9242335.png

  1. Mevcut ICMP, internal (dahili), RDP ve SSH güvenlik duvarı kurallarını görürsünüz.Her Google Cloud projesi default (varsayılan) ağı ve bu güvenlik duvarı kurallarıyla başlar.
  2. Create Firewall Rule'u (Güvenlik Duvarı Kuralı Oluştur) tıklayın.
  3. Aşağıdaki değerleri ayarlayın, diğer tüm değerleri varsayılan haliyle bırakın:

Özellik

Değer (değeri yazın veya belirtilen seçeneği seçin)

Ad

default-allow-health-check

varsayılan

Hedefler

Belirtilen hedef etiketler

Hedef etiketler

sağlık-denetimi-izin-ver

Kaynak filtresi

IP Aralıkları

Kaynak IP aralıkları

130.211.0.0/22, 35.191.0.0/16

Protokoller ve bağlantı noktaları

Protokolleri ve bağlantı noktalarını belirtin, ardından TCP'yi işaretleyin. Bağlantı noktası numarası için 80 yazın

  1. Oluştur'u tıklayın.

Alternatif olarak gcloud komut satırını kullanıyorsanız. Aşağıdaki komutu kullanabilirsiniz:

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
  1. Benzer şekilde, örneklerde SSH ile bağlantı kurulmasına izin vermek için bir Güvenlik Duvarı kuralı oluşturun:
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. Örnek şablonlarını yapılandırma ve yönetilen örnek grupları oluşturma

Yönetilen örnek grupları, aynı örnekleri içeren bir grup oluşturmak için örnek şablonlarını kullanır. HTTP yük dengeleyicinin arka ucunu oluşturmak için bunları kullanın.

Örnek şablonlarını yapılandırma

Örnek şablonları, sanal makine örnekleri ve yönetilen örnek grupları oluşturmak için kullandığınız kaynaklardır. Bu şablonlar makine türünü, önyükleme diski görüntüsünü, alt ağı, etiketleri ve diğer örnek özelliklerini tanımlar. Aşağıda gösterildiği gibi bir örnek şablonu oluşturun.

  1. Cloud Console'da Gezinme menüsü ( mainmenu.png) > Compute Engine > Instance templates'a (Örnek şablonları) gidip Create instance template'ı (Örnek şablonu oluştur) tıklayın.
  2. Ad alanına lb-backend-template yazın.
  3. Seri için N1'i seçin.
  4. Networking, Disks, Security, Management, Sole-Tenancy (Ağ iletişimi, Diskler, Güvenlik, Yönetim, Tek Kiracılı) seçeneğini tıklayın.

1d0b7122f4bb410d.png

  1. Yönetim bölümüne gidin ve aşağıdaki komut dosyasını Başlangıç komut dosyası alanına ekleyin.
#! /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
  1. Ağ iletişimi sekmesini tıklayın, ağ etiketlerini ekleyin: allow-health-check
  2. Şu değerleri ayarlayın ve diğer tüm değerleri varsayılan ayarlarında bırakın:

Özellik

Değer (değeri yazın veya belirtilen seçeneği seçin)

Ağ (Ağ Arayüzleri altında)

varsayılan

Alt Ağ (Ağ Arayüzleri altında)

default (us-east1)

Ağ etiketleri

sağlık-denetimi-izin-ver

  1. Oluştur'u tıklayın.
  2. Örnek şablonunun oluşturulmasını bekleyin.

Yönetilen örnek grubunu oluşturma

  1. Compute Engine sayfasındaki sol menüden Instance groups'u (Örnek grupları) tıklayın.

ed419061ad2b982c.png

  1. Create instance group'u (Örnek grubu oluştur) tıklayın. Yeni yönetilen örnek grubu (durum bilgisiz) seçeneğini belirleyin.
  2. Aşağıdaki değerleri ayarlayın, diğer tüm değerleri varsayılan haliyle bırakın:

Özellik

Değer (değeri yazın veya belirtilen seçeneği seçin)

Ad

lb-arka uç-örneği

Konum

Tek alt bölge

Bölge

us-east1

Alt Bölge

us-east1-b

Örnek şablonu

lb-arka uç-şablonu

Otomatik ölçeklendirme

Otomatik ölçeklendirme yapma

Örnek sayısı

1

  1. Oluştur'u tıklayın.

Örnek grubuna adlandırılmış bağlantı noktası ekleme

Örnek grubunuz için bir HTTP hizmeti tanımlayın ve ilgili bağlantı noktasına bir bağlantı noktası adı eşleyin. Yük dengeleme hizmeti, trafiği adlandırılmış bağlantı noktasına yönlendirir.

gcloud compute instance-groups set-named-ports lb-backend-example \
    --named-ports http:80 \
    --zone us-east1-b

5. HTTP yük dengeleyiciyi yapılandırma

HTTP yük dengeleyiciyi arka ucunuza trafik gönderecek şekilde yapılandırın lb-backend-example:

Yapılandırmayı başlatma

  1. Cloud Console'da gezinme menüsü (mainmenu.png) > Network Services (Ağ Hizmetleri) > Load balancing'i (Yük dengeleme), ardından Create yük dengeleyici'yi tıklayın.
  2. HTTP(S) Yük Dengeleme bölümünde Yapılandırmayı başlat'ı tıklayın.

4f8b8cb10347ec.png

  1. İnternetten sanal makinelerime ve Klasik HTTP(S) Yük Dengeleyici'yi seçip Devam'ı tıklayın.
  2. Ad'ı http-lb olarak ayarlayın.

Arka ucu yapılandırma

Arka uç hizmetleri, gelen trafiği bir veya daha fazla ekli arka uca yönlendirir. Her arka uç, bir örnek grubundan ve ek sunum kapasitesi meta verisinden oluşur.

  1. Backend configuration'ı (Arka uç yapılandırması) tıklayın.
  2. Backend services & backend buckets (Arka uç hizmetleri ve arka uç paketleri) için Create a backend service'i (Arka uç hizmeti oluştur) tıklayın.
  3. Şu değerleri ayarlayın ve diğer tüm değerleri varsayılan ayarlarında bırakın:

Özellik

Değer (belirtilen seçeneği kullanın)

Ad

http-backend

Protokol

HTTP

Adlandırılmış Bağlantı Noktası

htp

Örnek grubu

lb-arka uç-örneği

Bağlantı noktası numaraları

80

  1. Done'ı (Bitti) tıklayın.
  2. Arka uç ekle'yi tıklayın.
  3. Health Check (Durum Denetimi) için Create a health check'i (Durum denetimi oluştur) seçin.

168a9ba1062b1f45.png

  1. Aşağıdaki değerleri ayarlayın, diğer tüm değerleri varsayılan haliyle bırakın:

Özellik

Değer (belirtilen seçeneği kullanın)

Ad

http-health-check

Protokol

TCP

Bağlantı noktası

80

dc45bc726bb4dfad.png

  1. Kaydet'i tıklayın.
  2. Enable Logging (Günlük kaydını etkinleştir) kutusunu işaretleyin.
  3. Sample Rate'i (Örnek hızı) 1 olarak ayarlayın:

c8f884fa4a8cd50.png

  1. Arka uç hizmetini oluşturmak için Create'i (Oluştur) tıklayın.

1fd2ad21b1d32a95.png

Ön ucu yapılandırma

Ana makine ve yol kuralları, trafiğinizin nasıl yönlendirileceğini belirler. Örneğin, video trafiğini bir arka uca, statik trafiği ise başka bir arka uca yönlendirebilirsiniz. Ancak bu laboratuvarda ana makine ve yol kurallarını yapılandırmayacaksınız.

  1. Frontend configuration'ı (Ön uç yapılandırması) tıklayın.
  2. Aşağıdakileri ayarlayın, diğer tüm değerleri varsayılan haliyle bırakın:

Özellik

Değer (değeri yazın veya belirtilen seçeneği seçin)

Protokol

HTTP

IP sürümü

IPv4

IP adresi

Geçici

Bağlantı noktası

80

  1. Done'ı (Bitti) tıklayın.

HTTP Yük Dengeleyiciyi inceleme ve oluşturma

  1. Review and finalize'ı (İnceleme ve sonlandırma) tıklayın.

478e5e51057af3a3.png

  1. Arka uç hizmetleri ve Ön uç'u inceleyin.
  2. Oluştur'u tıklayın.
  3. Yük dengeleyicinin oluşturulmasını bekleyin.
  4. Yük dengeleyicinin adını (http-lb) tıklayın.
  5. Sonraki görev için yük dengeleyicinin IPv4 adresini not edin. Bu sayfaya [LB_IP_v4] olarak atıfta bulunacağız.

6. HTTP yük dengeleyiciyi test etme

Arka uçlarınız için HTTP yük dengeleyici oluşturduğunuza göre trafiğin arka uç hizmetine yönlendirildiğini doğrulayın. HTTP yük dengeleyiciye IPv4 erişimini test etmek için tarayıcınızda yeni bir sekme açıp http://[LB_IP_v4] adresine gidin. [LB_IP_v4] ifadesinin yerine yük dengeleyicinin IPv4 adresini yazmayı unutmayın.

7. reCAPTCHA oturum jetonu ve sorgulama sayfası site anahtarı oluşturup dağıtma

WAF için reCAPTCHA Enterprise ve Google Cloud Armor entegrasyonu şu özellikleri sunar: reCAPTCHA sorgulama sayfası, reCAPTCHA işlem jetonları ve reCAPTCHA oturum jetonları. Bu kod laboratuvarında reCATCHA oturum jetonu site anahtarını ve reCAPTCHA WAF meydan okuma sayfası sitesini uygulayacağız.

reCAPTCHA oturum jetonu ve WAF sorgulama sayfası site anahtarı oluşturma

Oturum jetonu site anahtarını ve sorgulama sayfası site anahtarını oluşturmadan önce, reCAPTCHA Enterprise API'yi en başta "API'yi Etkinleştir" bölümünde belirtildiği gibi etkinleştirdiğinizden emin olun.

reCAPTCHA JavaScript'i, değerlendirmeden sonra son kullanıcının tarayıcısında bir çerez olarak reCAPTCHA oturum jetonunu ayarlar. Son kullanıcının tarayıcısı çerezi ekler ve reCAPTCHA JavaScript etkin kaldığı sürece çerezi yeniler.

  1. reCAPTCHA oturum jetonu site anahtarını oluşturun ve anahtar için WAF özelliğini etkinleştirin. Ayrıca Cloud Armor entegrasyonunu etkinleştirmek için WAF hizmetini Cloud Armor'a ayarlayacağız.
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
  1. Yukarıdaki komutun çıkışı, oluşturulan anahtarı verir. Bu bilgileri not edin. Bir sonraki adımda web sitenize ekleyeceğiz.
  2. reCAPTCHA WAF meydan okuma sayfası site anahtarını oluşturun ve anahtar için WAF özelliğini etkinleştirin. Gelen istekleri reCAPTCHA Enterprise'a yönlendirip sahte veya meşru olup olmadığını belirlemek için reCAPTCHA test sayfası özelliğini kullanabilirsiniz. Daha sonra manuel sorgulamayı etkinleştirmek için bu anahtarı Cloud Armor güvenlik politikasıyla ilişkilendireceğiz. Bu anahtarı sonraki adımlarda CHALLENGE-PAGE-KEY olarak adlandıracağız.
gcloud recaptcha keys create --display-name=challenge-page-key \
   --web --allow-all-domains --integration-type=INVISIBLE \
   --waf-feature=challenge-page --waf-service=ca
  1. Gezinme menüsü ( mainmenu.png) > Güvenlik > reCAPTCHA Enterprise'a gidin. Enterprise Keys (Kuruluş Anahtarları) bölümünde oluşturduğunuz anahtarları göreceksiniz:

4e2567aae0eb92d7.png

reCAPTCHA oturum jetonu site anahtarını uygulama

  1. Gezinme menüsü ( mainmenu.png) > Compute Engine > Sanal Makine Örnekleri'ne gidin. Örnek grubunuzdaki sanal makineyi bulun ve SSH ile değiştirin.

6d7b0fd12a667b5f.png

  1. Web sunucusu kök dizinine gidin ve kullanıcıyı kök olarak değiştirin -
@lb-backend-example-4wmn:~$ cd /var/www/html/
@lb-backend-example-4wmn:/var/www/html$ sudo su
  1. Açılış index.html sayfasını güncelleyin ve reCAPTCHA oturum jetonu site anahtarını yerleştirin. Oturum jetonu site anahtarı, açılış sayfanızın başlık bölümünde aşağıdaki gibi ayarlanır:

<script src="https://www.google.com/recaptcha/enterprise.js?render=<REPLACE_TOKEN_HERE>&waf=session" eş zamansız erteleme></script>

index.html dosyasını güncellemeden önce aşağıda gösterildiği gibi jetonu değiştirmeyi unutmayın -

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
  1. Bot yönetimi politikalarını test etmek için üç örnek sayfa daha oluşturun:
  • iyi-skor.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
  • kötü-puan.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
  • ortan-puan.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
  1. Tüm web sayfalarını tarayıcınızda açarak erişebildiğinizi doğrulayın. [LB_IP_v4] ifadesinin yerine yük dengeleyicinin IPv4 adresini yazmayı unutmayın.
  • http://[LB_IP_v4]/index.html sayfasını açın. Sayfanın sağ alt köşesinde "reCAPTCHA ile korunuyor" ifadesini gördüğünüzde reCAPTCHA uygulamasının çalıştığını doğrulayabilirsiniz.

d695ad23d91ae4e9.png

  • Bağlantıların her birini tıklayın.

4a2ad1b2f10b4c86.png

  • Tüm sayfalara erişebildiğinizi doğrulayın.

481f63bf5e6f244.png

8. Bot Yönetimi için Cloud Armor güvenlik politikası kuralları oluşturma

Bu bölümde, reCAPTCHA puanına göre isteklere izin vermek, istekleri reddetmek ve yönlendirmek için Cloud Armor bot yönetim kurallarını kullanacaksınız. Oturum jetonu site anahtarını oluşturduğunuzda test puanını 0, 5 olarak belirlediğinizi unutmayın.

  1. Cloud Shell'in nasıl kullanılacağıyla ilgili talimatlar için Cloud Shell'de(Cloud Shell'in nasıl kullanılacağıyla ilgili talimatlar için "Kurulum ve Gereksinimler" bölümündeki "Cloud Shell'i Başlatma" bölümüne bakın) gcloud aracılığıyla güvenlik politikası oluşturun:
gcloud compute security-policies create recaptcha-policy \
    --description "policy for bot management"
  1. Gerçek kişiler ile otomatik istemcileri birbirinden ayırt etmek üzere reCAPTCHA Enterprise manuel sorgulamasını kullanmak istiyorsanız manuel sorgulama için oluşturduğumuz reCAPTCHA WAF meydan okuma site anahtarını güvenlik politikasıyla ilişkilendirin. "CHALLENGE-PAGE-KEY" ifadesini, oluşturduğumuz anahtarla değiştirin -
gcloud compute security-policies update recaptcha-policy \
   --recaptcha-redirect-site-key "CHALLENGE-PAGE-KEY"
  1. URL yolunun iyi-score.html ile eşleşmesi ve 0,4'ten yüksek bir puanı olması durumunda trafiğe izin vermek için bir bot yönetim kuralı ekleyin.
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
  1. URL yolu bad-score.html ile eşleşiyor ve 0,6'dan düşük bir puana sahipse trafiği reddetmek için bir bot yönetim kuralı ekleyin.
  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"
  1. URL yolu median-score.html ile eşleşiyorsa ve skoru 0,5 ise trafiği Google reCAPTCHA'ya yönlendirmek için bot yönetim kuralı ekleyin
  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
  1. Güvenlik politikasını arka uç hizmetine ekleyin http-backend:
gcloud compute backend-services update http-backend \
    --security-policy recaptcha-policy –-global
  1. Console'da Gezinme menüsü > Ağ Güvenliği > Cloud Armor'a gidin.
  2. reCAPTCHA politikasını tıklayın. Politikanız aşağıdakine benzer şekilde görünecektir:

74852618aaa96786.png

9. Cloud Armor ile Bot Yönetimini Doğrulama

  1. Bir tarayıcı açın ve http://[LB_IP_v4]/index.html URL'sini girin. "İzin ver bağlantısını ziyaret et"e gidin. -

edf3e6ca238d2ee7.png

  1. Yeni oturumumuz olduğundan emin olmak için Gizli modda yeni bir pencere açın. http://[LB_IP_v4]/index.html URL'sini girin ve "Engellenen bağlantıyı ziyaret et"e gidin. HTTP 403 hatası alırsınız.

ecef5655b291dbb0.png

  1. Yeni oturumumuz olduğundan emin olmak için Gizli modda yeni bir pencere açın. http://[LB_IP_v4]/index.html URL'sini girin ve "Ziyaret yönlendirme bağlantısını ziyaret et" bölümüne gidin. Google reCAPTCHA'ya ve manuel sorgulama sayfasına yönlendirme aşağıdaki gibi gösterilir:

53ed2b4067b55436.png

Cloud Armor günlüklerini doğrulayın

Bot yönetiminin beklendiği gibi çalıştığını doğrulamak için güvenlik politikası günlüklerini inceleyin.

  1. Console'da Gezinme menüsü > Ağ Güvenliği > Cloud Armor'a gidin.
  2. recaptcha-policy'i tıklayın.
  3. Logs'u (Günlükler) tıklayın.

46fd825d8506d355.png

  1. View policy logs'u (Politika günlüklerini görüntüle) tıklayın.
  2. Aşağıda MQL(izleme sorgu dili) sorgusunu kopyalayıp sorgu düzenleyiciye yapıştırabilirsiniz:
resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(recaptcha-policy)
  1. Şimdi Run Query'yi (Sorgu Çalıştır) tıklayın.
  2. Sorgu sonuçlarında, isteğin http://[LB_IP_v4]/good-score.html olduğu bir günlük girişi olup olmadığına bakın. jsonPayload.expand requiredSecurityPolicy'yi genişletin.

b7b1712642cf092b.png

  1. Aynı işlemi http://[LB_IP_v4]/bad-score.html ve http://[LB_IP_v4]/median-score.html için de tekrarlayın

c28f96d83056725a.png

8c4803d75a77142c.png

ConfigurationAction'ın recaptcha-policy adıyla ALLOW, DENY veya GOOGLE_RECAPTCHA olarak ayarlandığına dikkat edin.

Tebrikler! Cloud Armor ile Bot Yönetimi hakkındaki bu laboratuvarı tamamladınız

©2020 Google LLC Tüm hakları saklıdır. Google ve Google logosu, Google LLC şirketinin ticari markalarıdır. Diğer tüm şirket ve ürün adları ilişkili oldukları şirketlerin ticari markaları olabilir.

10. Laboratuvar Temizleme

  1. Network Security >> Cloud Armor >> %POLICY NAME% (Ağ Güvenliği >> Cloud Armor >> %POLICY NAME%) bölümüne gidin ve sil -

2646f9c1df093f90.png

  1. Ağ iletişimi >> Ağ hizmetleri >> Yük Dengeleme'ye gidin. Oluşturduğunuz yük dengeleyiciyi seçin ve Sil'i tıklayın.

8ad4f55dc06513f7.png

Silinecek ek kaynaklar olarak arka uç hizmetini ve durum denetimini seçin:

f6f02bb56add6420.png

  1. Gezinme menüsü ( mainmenu.png) > Compute Engine > Örnek Grupları'na gidin. Yönetilen örnek grubunu seçip Sil'i tıklayın:

2116b286954fd6.png

Metin kutusuna "delete" (sil) yazarak silme işlemini onaylayın.

Yönetilen örnek grubunun silinmesini bekleyin. Bu işlem, gruptaki örneği de siler. Şablonları yalnızca örnek grubu silindikten sonra silebilirsiniz.

  1. Sol taraftaki bölmeden Örnek şablonları'na gidin**.** Örnek şablonunu seçin ve Sil'i tıklayın.
  2. Gezinme menüsü (mainmenu.png) > VPC network (VPC ağı) > Firewall'a (Güvenlik duvarı) gidin. default-allow-health-check ve allow-ssh kurallarını seçip Sil'i tıklayın.
  3. Gezinme menüsü ( mainmenu.png) > Güvenlik > reCAPTCHA Enterprise'a gidin. Oluşturduğumuz anahtarları seçip silin. Metin kutusuna "DELETE" (SİL) yazarak silme işlemini onaylayın.

e71ecd11baf262ca.png

11. Tebrikler!

Cloud Armor'ı kullanarak bot yönetimini başarıyla uyguladınız. HTTP yük dengeleyiciyi yapılandırdınız. Ardından, reCAPTCHA oturum jetonu site anahtarını oluşturup bir web sayfasına uyguladınız. Ayrıca, meydan okuma sayfası site anahtarı oluşturmayı da öğrendiniz. Cloud Armor Bot yönetim politikasını ayarladınız ve isteklerin kurallara göre nasıl ele alındığını doğruladınız. Trafiğe neden izin verildiğini, engellendiğini veya yönlendirildiğini belirlemek için güvenlik politikası günlüklerini incelediniz.

İşlediklerimiz

  • Örnek şablonları ve yönetilen örnek grupları oluşturma
  • HTTP yük dengeleyici oluşturma
  • Cloud Armor bot yönetim politikası oluşturma
  • reCAPTCHA oturum jetonu site anahtarı oluşturma ve uygulama.
  • reCAPTCHA test sayfası site anahtarı oluşturma ve uygulama.
  • Bot Yönetimi Politikası'nın beklendiği gibi çalıştığını doğrulama.

Sonraki adımlar

  • reCAPTCHA işlem jetonları oluşturmayı deneyin.