Terraform ile Firewall Obje Oluşturma

Firewall kuralları yazarken ihtiyacımız olacak olan şey kaynak ve hedef ip'leri ve ilgili port bilgileri olacak. Öreğin x ip adresinden y ip adresine 3306 nolu mysql port'una erişim verilmesi gerekecektir veya sistem admin'inlerin sunuculara yönetim için RDP veya SSH yapması gerekecektir. 

VMware Cloud Director üzerinde NAT, Firewall kuralları yazmadan önce ilgili obje tanımları yapılmalıdır, kaynak ip ve/veya network'ü ve/ya erişecek ip adres veya aralığını, hedef port veya port aralığını belirtmelisiniz.

Öncelikle ipset-sc-customApp.tf  adında bir dosya oluşturun ve içersine aşağıdaki kod parçacağını ekleyin. Burada sırasıyla sunuculara bağlanmalarına izin vereceğiniz admin kişilere ait statik ip adresilerini içeren WebAdmis adında bir ip set tanımı yapılmış durumda, WebRoutedServerNetwork adlı routed network'e bağlı tüm sanal sunucuları kapsayacak bir security group tanımlamış durumda ek olarak bir Plesk kurulu sunucunuzun olduğu ve 8443 numaralı bir port'un yine firewall kuralları tanımlarken kullanacağımız ve varsayılı olarak gelen uygulama ve port bilgilerinde olmadığını göz önüne alarak oluşturuyoruz.

# https://registry.terraform.io/providers/vmware/vcd/latest/docs/resources/nsxt_ip_set

resource "vcd_nsxt_ip_set" "WebAdmins" {

  edge_gateway_id = data.vcd_nsxt_edgegateway.varolan.id

  name        = "WebAdmins"
  description = "Web Server Yöneticilerin Statik IP leri"

  ip_addresses = [
    "12.12.12.1",
    "192.168.1.0/24",
    "13.11.11.1-13.11.11.5",
  ]

}

# https://registry.terraform.io/providers/vmware/vcd/latest/docs/resources/nsxt_security_group

resource "vcd_nsxt_security_group" "WebSunuculari" {


  # Referring to a data source for existing NSX-T Edge Gateway
  edge_gateway_id = data.vcd_nsxt_edgegateway.varolan.id

  name        = "WebSunuculari"
  description = "WebSunucularini tanımlayan Security Group"

  member_org_network_ids = [vcd_network_routed_v2.WebRoutedServerNetwork.id]
}

# https://registry.terraform.io/providers/vmware/vcd/latest/docs/resources/nsxt_app_port_profile

resource "vcd_nsxt_app_port_profile" "custom-app" {

  name        = "Plesk Management Port"
  description = "Plesk Management Port 8443"

  scope = "TENANT"

  app_port {
    protocol = "TCP"
    port = ["8443"]
    #port     = ["2000", "2010-2020", "12345", "65000"]
  }

}


Not : Örnek olarak verilen kod parçacıkları, değişkenler, UI üzerinde görülen isimler ve dosya isimleri çeşitli makalelerde değişiklik gösterebilir, tüm kod parçacıklarının son hali için github adresine bakabilirsiniz.

Geri bildirim

Bu makaleyle ilgili bir sorun bulursanız ve/veya hizmetlerimizden herhangi birini nasıl iyileştirebileceğimize dair bir fikriniz varsa, info@doruk.net adresine bir e-posta gönderin.

 

Bu cevap yeterince yardımcı oldu mu? 0 Bu dökümanı faydalı bulan kullanıcılar: (0 Oy)