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
- Güvenlik duvarı kurallarına genel bakış bölümünden güvenlik duvarı kuralları hakkında daha fazla bilgi edinebilirsiniz.
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].