Google Cloud'da güvenlik duvarı kuralları oluşturma

Doğru önlemleri almazsanız sistemlerinizi yeni güvenlik açıklarına maruz bırakma riskiyle karşı karşıya kalırsınız. Bu nedenle, güvenlik duvarı kuralları oluşturarak Google Cloud'daki örneklerinizde gelen ve giden trafiği kontrol etmek çok önemlidir. Bu codelab'de, Google Cloud'daki güvenlik duvarı kurallarını ve bu kuralları Compute Engine sanal makine örneklerine nasıl uygulayacağınızı öğreneceksiniz.

Güvenlik duvarı kuralları nedir?

Google Cloud'daki güvenlik duvarı kuralları, belirttiğiniz bir yapılandırmaya göre sanal makine örneklerinize giden ve sanal makine örneklerinizden gelen trafiğe izin vermenizi veya reddetmenizi sağlar. Etkinleştirilen güvenlik duvarı kuralları her zaman uygulanır ve yapılandırmalarından ve işletim sistemlerinden bağımsız olarak, başlatılıp başlatılmadıklarına bakılmaksızın örneklerinizi korur.

Her VPC ağı, dağıtılmış bir güvenlik duvarı olarak çalışır. Güvenlik duvarı kuralları ağ düzeyinde tanımlansa da bağlantılara örnek olarak izin verilir veya reddedilir. Güvenlik duvarı kurallarını yalnızca örnekleriniz ve diğer ağlar arasında değil, aynı ağdaki tek tek örnekler arasında mevcut olarak düşünebilirsiniz.

Geliştireceğiniz uygulama

  • Farklı alt ağlarda iki Compute Engine örneği
  • Ağ ping testi
  • Örnek etiketlerini kullanan güvenlik duvarı kuralları
  • Aşağıdaki mimariler:

Neler öğreneceksiniz?

  • Güvenlik duvarı kurallarının özellikleri
  • Örnek etiketlerini kullanarak güvenlik duvarı kurallarını örneklere uygulama
  • Güvenlik duvarı kuralları için en iyi uygulamalar

Gerekenler

  • Bir Google Hesabı
  • İki Compute Engine örneği

Bağımsız tempolu ortam kurulumu

Google Hesabınız yoksa bir hesap oluşturmanız gerekir. Google Cloud Console'da oturum açın ve yeni bir proje oluşturun:

Proje kimliğini (tüm Google Cloud projeleri genelinde benzersiz bir ad) unutmayın. Bu codelab'lerde PROJECT_ID olarak adlandırılacaktır.

Ardından, Google Cloud kaynaklarını kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir.

Bu codelab'in çalıştırılması için harcadığınız süre birkaç saati aşmamalıdır. Ancak daha fazla kaynak kullanmaya karar verirseniz veya bu kaynakları çalışır durumda bırakırsanız (bu codelab'in sonundaki temizleme bölümüne bakın.) Yeni Google Cloud kullanıcıları 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.

Proje ortamınızı ilk kullanıma hazırlama

Compute > Compute Engine > VM Örnekleri'ne gidin.

Compute Engine API'yi etkinleştirdikten sonra işin büyük bir kısmını Cloud Shell ile gerçekleştirirsiniz. Bu sayede, altyapınızı ve uygulamalarınızı herhangi bir tarayıcıda komut satırından yönetebilirsiniz. Debian tabanlı sanal makine, ihtiyacınız olan tüm geliştirme araçlarıyla yüklenir (gcloud komut satırı aracı, Git ve diğerleri) ve 5 GB kalıcı ana dizin sunar. Ekranın sağ üst kısmındaki simgeyi tıklayarak Cloud Shell'i açın.

Farklı bölgeler de seçebilirsiniz. Daha fazla bilgi için Bölgeler ve bölgeler bölümüne bakın.

Ağ iletişimi > VPC ağı > Güvenlik duvarı kuralları bölümüne giderek mevcut güvenlik duvarı kurallarını görüntüleyin.

Yalnızca varsayılan ağ için güvenlik duvarı kuralları oluşturulduğunu unutmayın.

custom-network1 oluştururken güvenlik duvarı kuralı belirtmediğiniz sürece ssh'yi kullanmak için mevcut Compute Engine örnekleriniz için güvenlik duvarı kuralları oluşturmanız gerekir.

Ardından, etiketlenen örneklere ssh erişimi için bir güvenlik duvarı kuralı oluşturun.

Güvenlik duvarı kuralları sayfasında kalın. Güvenlik Duvarı Kuralı Oluştur'u tıklayın.

Aşağıdaki teknik özellikleri ekleyin:

  • Ad: allow-ssh
  • Ağ: custom-network1
  • Trafik yönü: Giriş
  • Eşleşmede işlem: İzin ver
  • Hedefler: Belirtilen hedef etiketler
  • Hedef etiketler: iperf erişimi
  • Kaynak IP aralıkları: 0.0.0.0/0
  • Protokoller ve bağlantı noktaları: Belirtilen protokoller ve bağlantı noktaları: tcp: 22

Etiketleri mevcut iki örneğinize uygulayın.

Compute > Compute Engine > VM örnekleri'ne giderek Compute Engine örneği sayfasına gidin.

Örnek-1'i tıklayıp sanal makine örneği ayrıntılarını görüntüleyin. Düzenle'yi tıklayın.

Ağ etiketleri bölümüne ilerleyin ve buna iperf erişimi adı verilen bir etiket verin.

Alt taraftaki Kaydet'i tıklayın. Sanal makine örnekleri sayfasına dönün ve Düzenle'yi tıklayıp tekrar örnek etiketi olarak iperf-access öğesini ekleyerek örnek-2 için tekrarlayın.

iPerf

iPerf, TCP/UDP veri akışları oluşturabilen ve bunları taşıyan ağın işleme hızını ölçebilen yaygın olarak kullanılan bir ağ test aracıdır. custom-network1 içindeki farklı alt ağlarda örnekleriniz arasında hızlı bir test yapmak için bunu kullanırsınız.

iPerf'i yükleyin

Compute Engine örneği sayfasına gidin.

Her code girişinin yanındaki ssh düğmesini tıklayarak son codelab'de oluşturduğunuz iki sanal makineye ssh uygulayın.

İki ssh penceresi açılır. Aşağıdaki komuttan biriyle iPerf dosyasını yükleyin:

sudo apt-get install iperf

iPerf testi çalıştırma

instance-2 içinde, example-2 ssh terminaline aşağıdaki ifadeyi girerek iPerf sunucusunun olduğunu belirtin:

iperf -s

example-1 ssh penceresinde, instance-2 dahili IP'sini de içeren aşağıdaki komutu girin:

iperf -c [INSTANCE-2 INTERNAL IP]

instance-1 ile instance-2 arasında iletişim kurulmasına olanak tanımak için başka bir güvenlik duvarı kuralı uygulamadığınız için bu işlem takıldı. Control+Z (Macintosh'ta Command+Z) girerek komutu sonlandırın.

Bu kez, Cloud Shell ile güvenlik duvarı kuralını oluşturacaksınız.

Örnek ssh oturumlarınızda değil, Cloud Shell'de olduğunuzdan emin olun. Aşağıdakileri girerek bir güvenlik duvarı kuralı oluşturun:

gcloud compute firewall-rules create iperf-access --allow tcp:5001 \
      --source-ranges 0.0.0.0/0 \
      --network custom-network1 \
      --target-tags=iperf-access

Oluşturulmasını aşağıdaki bilgilerle onaylayın:

gcloud compute firewall-rules list

NAME                         NETWORK          DIRECTION  PRIORITY  ALLOW                         DENY  DISABLED
allow-ssh                    custom-network1  INGRESS    1000      tcp:22                              False
default-allow-icmp           default          INGRESS    65534     icmp                                False
default-allow-internal       default          INGRESS    65534     tcp:0-65535,udp:0-65535,icmp        False
default-allow-rdp            default          INGRESS    65534     tcp:3389                            False
default-allow-ssh            default          INGRESS    65534     tcp:22                              False
iperf-access                 custom-network1  INGRESS    1000      tcp:5001                            False

instance-2 için SSH pencerenize geri dönün. Iperf oturumunuz hâlâ etkin olmalıdır. Çalışmıyorsa aşağıdaki komutu tekrar çalıştırın.

iperf -s

instance-1 ssh penceresine instance-2 dahili IP'sini de içeren aşağıdaki komutu girin:

iperf -c [INSTANCE-2 INTERNAL IP]

iPerf'in instance-2 ile bağlantı kurduğunu ve instance-1 ile instance-2 arasında bir dahili ağ performansı çıkışı döndürmesi gerekir.

Artık Google Cloud'da güvenlik duvarı kuralları oluşturmayla ilgili temel bilgileri biliyorsunuz.

Ele aldığınız konular

  • Örnekler, güvenlik duvarı kurallarından nasıl etkilenir?
  • Cloud Console ve Cloud Shell üzerinden güvenlik duvarı kuralı oluşturma
  • Etiketleri güvenlik duvarı kurallarına ve örneklere uygulama
  • Örnekler arasında iPerf testi çalıştırma

Sonraki adımlar

Cloud Shell'de aşağıdaki komutları kullanarak Compute Engine örneklerini silin:

gcloud compute instances delete instance-1 --zone us-central1-a

The following instances will be deleted. Any attached disks configured
 to be auto-deleted will be deleted unless they are attached to any
other instances or the `--keep-disks` flag is given and specifies them
 for keeping. Deleting a disk is irreversible and any data on the disk
 will be lost.
 - [instance-1] in [us-central1-a]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/ypc-demo/zones/us-central1-a/instances/instance-1].
gcloud compute instances delete instance-2 --zone europe-west1-d

The following instances will be deleted. Any attached disks configured
 to be auto-deleted will be deleted unless they are attached to any
other instances or the `--keep-disks` flag is given and specifies them
 for keeping. Deleting a disk is irreversible and any data on the disk
 will be lost.
 - [instance-2] in [europe-west1-d]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/ypc-demo/zones/europe-west1-d/instances/instance-2].

Aşağıdaki komutları içeren güvenlik duvarı kurallarını silin:

gcloud compute firewall-rules delete allow-ssh

The following firewalls will be deleted:
 - [allow-ssh]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/firewalls/allow-ssh].
gcloud compute firewall-rules delete iperf-access

The following firewalls will be deleted:
 - [iperf-access]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/firewalls/iperf-access].

Aşağıdaki komutları içeren alt ağları silin:

gcloud compute networks subnets delete subnet-us-central-192 --region us-central1

The following subnetworks will be deleted:
 - [subnet-us-central-192] in [us-central1]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/regions/us-central1/subnetworks/subnet-us-central-192].
gcloud compute networks subnets delete subnet-europe-west-192 --region europe-west1

The following subnetworks will be deleted:
 - [subnet-europe-west-192] in [europe-west1]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/regions/europe-west1/subnetworks/subnet-europe-west-192].

Özel VPC'yi aşağıdaki komutla silin:

gcloud compute networks delete custom-network1

The following networks will be deleted:
 - [custom-network1]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/networks/custom-network1].