{"id":32140,"date":"2025-10-18T06:40:58","date_gmt":"2025-10-18T03:40:58","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=32140"},"modified":"2025-10-18T06:40:58","modified_gmt":"2025-10-18T03:40:58","slug":"digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/","title":{"rendered":"DigitalOcean ve AWS VPC&#8217;leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile)"},"content":{"rendered":"<p><body><\/p>\n<h2>DigitalOcean ve AWS VPC&#8217;leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile)<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla geli\u015fen bulut bili\u015fim d\u00fcnyas\u0131nda, \u015firketler genellikle tek bir bulut sa\u011flay\u0131c\u0131s\u0131na ba\u011fl\u0131 kalmak yerine, i\u015f y\u00fcklerini farkl\u0131 platformlara da\u011f\u0131tarak esneklik, maliyet optimizasyonu ve felaket kurtarma yeteneklerini art\u0131rmay\u0131 hedefler. Bu &#8220;multi-cloud&#8221; stratejisi, farkl\u0131 bulut ortamlar\u0131 aras\u0131nda g\u00fcvenli ve kesintisiz ileti\u015fim kurma ihtiyac\u0131n\u0131 do\u011furur. \u00d6zellikle, sanal \u00f6zel bulutlar (VPC&#8217;ler) aras\u0131nda veri aktar\u0131m\u0131 ve hizmet eri\u015fimi gerekti\u011finde, IPSec VPN t\u00fcnelleri en yayg\u0131n ve g\u00fcvenilir \u00e7\u00f6z\u00fcmlerden biri olarak \u00f6ne \u00e7\u0131kar. Bu makale, Amazon Web Services (AWS) ve DigitalOcean VPC&#8217;leri aras\u0131nda IPSec VPN ba\u011flant\u0131s\u0131n\u0131 Terraform kullanarak nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klamaktad\u0131r. Terraform&#8217;un altyap\u0131y\u0131 kod olarak (Infrastructure as Code &#8211; IaC) y\u00f6netme yetene\u011fi sayesinde, bu karma\u015f\u0131k yap\u0131land\u0131rma s\u00fcreci otomatikle\u015ftirilecek, tekrarlanabilir ve hataya daha az a\u00e7\u0131k hale getirilecektir.<\/p>\n<h3>Temel Kavramlar<\/h3>\n<p>Bu makalede ele al\u0131nan \u00e7\u00f6z\u00fcm\u00fcn temelini olu\u015fturan baz\u0131 \u00f6nemli kavramlar\u0131 anlamak, yap\u0131land\u0131rma s\u00fcrecini kavramak i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<h4>IPSec VPN Nedir?<\/h4>\n<p>IPSec (Internet Protocol Security), IP ileti\u015fimleri i\u00e7in bir g\u00fcvenlik protokolleri paketidir. Temel olarak, IP paketlerinin b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc, kimlik do\u011frulamas\u0131n\u0131 ve gizlili\u011fini sa\u011flamak amac\u0131yla kullan\u0131l\u0131r. Bir IPSec VPN t\u00fcneli, iki a\u011f aras\u0131nda \u015fifrelenmi\u015f ve kimli\u011fi do\u011frulanm\u0131\u015f bir ba\u011flant\u0131 kurarak, genel internet \u00fczerinden \u00f6zel ve g\u00fcvenli bir ileti\u015fim kanal\u0131 olu\u015fturur. IPSec, iki ana protokolden olu\u015fur:<br \/>\n*   <strong>Authentication Header (AH):<\/strong> Veri b\u00fct\u00fcnl\u00fc\u011f\u00fc ve kimlik do\u011frulama sa\u011flar.<br \/>\n*   <strong>Encapsulating Security Payload (ESP):<\/strong> Gizlilik (\u015fifreleme), veri b\u00fct\u00fcnl\u00fc\u011f\u00fc ve kimlik do\u011frulama sa\u011flar. Genellikle VPN t\u00fcnellerinde ESP kullan\u0131l\u0131r.<\/p>\n<p>IPSec VPN&#8217;ler, IKE (Internet Key Exchange) protokol\u00fc \u00fczerinden iki a\u015famal\u0131 bir el s\u0131k\u0131\u015fma s\u00fcreciyle kurulur:<br \/>\n*   <strong>Faz 1 (Main Mode veya Aggressive Mode):<\/strong> G\u00fcvenli bir kanal olu\u015fturulur ve anahtarlar de\u011fi\u015f toku\u015f edilir. Bu a\u015famada kimlik do\u011frulama (\u00f6nceden payla\u015f\u0131lan anahtar &#8211; PSK veya sertifikalar) ger\u00e7ekle\u015fir.<br \/>\n*   <strong>Faz 2 (Quick Mode):<\/strong> Faz 1&#8217;de kurulan g\u00fcvenli kanal \u00fczerinden, ger\u00e7ek veri trafi\u011fi i\u00e7in IPSec g\u00fcvenlik ili\u015fkileri (Security Associations &#8211; SA&#8217;lar) olu\u015fturulur. Bu SA&#8217;lar, kullan\u0131lacak \u015fifreleme algoritmalar\u0131n\u0131, karma algoritmalar\u0131n\u0131 ve anahtarlar\u0131 tan\u0131mlar.<\/p>\n<h4>VPC (Virtual Private Cloud)<\/h4>\n<p>VPC, bulut sa\u011flay\u0131c\u0131s\u0131 i\u00e7inde size \u00f6zel, mant\u0131ksal olarak izole edilmi\u015f bir a\u011f b\u00f6l\u00fcm\u00fcd\u00fcr. Kendi IP adres aral\u0131\u011f\u0131n\u0131z\u0131, alt a\u011flar\u0131n\u0131z\u0131, y\u00f6nlendirme tablolar\u0131n\u0131z\u0131 ve a\u011f ge\u00e7itlerinizi tan\u0131mlayabilirsiniz.<br \/>\n*   <strong>AWS VPC:<\/strong> Amazon&#8217;un sundu\u011fu sanal a\u011f hizmetidir. EC2 instance&#8217;lar\u0131, veritabanlar\u0131 ve di\u011fer AWS kaynaklar\u0131 bu VPC i\u00e7inde bar\u0131nd\u0131r\u0131l\u0131r.<br \/>\n*   <strong>DigitalOcean VPC:<\/strong> DigitalOcean&#8217;\u0131n sa\u011flad\u0131\u011f\u0131 benzer bir hizmettir. Droplet&#8217;ler, veritabanlar\u0131 ve di\u011fer DigitalOcean kaynaklar\u0131 bu VPC i\u00e7inde konumland\u0131r\u0131l\u0131r.<\/p>\n<h4>Terraform<\/h4>\n<p>Terraform, HashiCorp taraf\u0131ndan geli\u015ftirilen, altyap\u0131y\u0131 kod olarak (Infrastructure as Code &#8211; IaC) tan\u0131mlamak ve sa\u011flamak i\u00e7in kullan\u0131lan a\u00e7\u0131k kaynakl\u0131 bir ara\u00e7t\u0131r. Terraform ile, bulut kaynaklar\u0131n\u0131z\u0131 (VPC&#8217;ler, sanal makineler, veritabanlar\u0131 vb.) insan taraf\u0131ndan okunabilir yap\u0131land\u0131rma dosyalar\u0131 kullanarak tan\u0131mlayabilir, ard\u0131ndan bu tan\u0131mlar\u0131 kullanarak altyap\u0131n\u0131z\u0131 otomatik olarak olu\u015fturabilir, de\u011fi\u015ftirebilir ve silebilirsiniz. Terraform&#8217;un temel faydalar\u0131 \u015funlard\u0131r:<br \/>\n*   <strong>Otomasyon:<\/strong> Altyap\u0131 kurulumunu otomatikle\u015ftirir.<br \/>\n*   <strong>Versiyon Kontrol\u00fc:<\/strong> Kod olarak tan\u0131mland\u0131\u011f\u0131 i\u00e7in altyap\u0131 de\u011fi\u015fiklikleri versiyonlanabilir.<br \/>\n*   <strong>Tekrarlanabilirlik:<\/strong> Ayn\u0131 yap\u0131land\u0131rma dosyas\u0131yla birden fazla ortam\u0131 tutarl\u0131 bir \u015fekilde olu\u015fturabilir.<br \/>\n*   <strong>Multi-Cloud Deste\u011fi:<\/strong> AWS, Azure, Google Cloud, DigitalOcean gibi bir\u00e7ok bulut sa\u011flay\u0131c\u0131s\u0131n\u0131 destekler.<\/p>\n<h3>Mimari Tasar\u0131m<\/h3>\n<p>Bu b\u00f6l\u00fcmde, DigitalOcean ve AWS aras\u0131nda kuraca\u011f\u0131m\u0131z IPSec VPN ba\u011flant\u0131s\u0131n\u0131n genel mimarisini ve kullan\u0131lacak bile\u015fenleri a\u00e7\u0131klayaca\u011f\u0131z.<\/p>\n<h4>Ba\u011flant\u0131 \u015eemas\u0131<\/h4>\n<p>Temel olarak, iki ayr\u0131 bulut sa\u011flay\u0131c\u0131s\u0131nda (AWS ve DigitalOcean) birer VPC&#8217;miz olacak. Her iki VPC&#8217;nin de kendi \u00f6zel IP adres aral\u0131klar\u0131 bulunacak ve bu aral\u0131klar \u00e7ak\u0131\u015fmayacak.<br \/>\n*   <strong>AWS Taraf\u0131:<\/strong> Bir Virtual Private Gateway (VPG) ve bir Customer Gateway (CGW) kullanaca\u011f\u0131z. VPG, AWS VPC&#8217;mizin VPN ba\u011flant\u0131s\u0131n\u0131 sonland\u0131ran taraf olacak. CGW ise DigitalOcean taraf\u0131ndaki VPN sunucumuzun genel IP adresini temsil edecek. AWS Site-to-Site VPN hizmeti bu iki bile\u015fen aras\u0131nda bir VPN t\u00fcneli kuracak. AWS VPC&#8217;mizdeki y\u00f6nlendirme tablolar\u0131, DigitalOcean VPC&#8217;sine gitmesi gereken trafi\u011fi VPG \u00fczerinden y\u00f6nlendirecek \u015fekilde yap\u0131land\u0131r\u0131lacak.<br \/>\n*   <strong>DigitalOcean Taraf\u0131:<\/strong> Bir Droplet&#8217;i (sanal sunucu) VPN sunucusu olarak kullanaca\u011f\u0131z. Bu Droplet \u00fczerine a\u00e7\u0131k kaynakl\u0131 <code>strongSwan<\/code> yaz\u0131l\u0131m\u0131n\u0131 kuraca\u011f\u0131z. Droplet&#8217;e bir Floating IP (genel statik IP) atayarak, AWS taraf\u0131ndaki Customer Gateway&#8217;in hedefi olmas\u0131n\u0131 sa\u011flayaca\u011f\u0131z. DigitalOcean VPC&#8217;mizdeki y\u00f6nlendirme tablolar\u0131, AWS VPC&#8217;sine gitmesi gereken trafi\u011fi VPN Droplet&#8217;i \u00fczerinden y\u00f6nlendirecek \u015fekilde ayarlanacak.<\/p>\n<h4>Gereksinimler<\/h4>\n<p>*   Her iki VPC i\u00e7in \u00e7ak\u0131\u015fmayan IP adres aral\u0131klar\u0131.<br \/>\n*   DigitalOcean VPN Droplet&#8217;i i\u00e7in bir Floating IP.<br \/>\n*   G\u00fcvenlik gruplar\u0131 ve firewall kurallar\u0131 ile VPN trafi\u011fine (UDP 500 ve UDP 4500) izin verilmesi.<br \/>\n*   Y\u00f6nlendirme tablolar\u0131n\u0131n do\u011fru \u015fekilde yap\u0131land\u0131r\u0131lmas\u0131.<\/p>\n<h4>Kullan\u0131lacak Bile\u015fenler<\/h4>\n<p>*   <strong>AWS:<\/strong><br \/>\n    *   <strong>VPC:<\/strong> Sanal \u00f6zel bulut ortam\u0131m\u0131z.<br \/>\n    *   <strong>Subnet:<\/strong> VPC i\u00e7indeki IP adres aral\u0131\u011f\u0131.<br \/>\n    *   <strong>Internet Gateway (IGW):<\/strong> VPC&#8217;nin internete \u00e7\u0131k\u0131\u015f\u0131n\u0131 sa\u011flar.<br \/>\n    *   <strong>Customer Gateway (CGW):<\/strong> DigitalOcean VPN sunucusunun genel IP adresini temsil eder.<br \/>\n    *   <strong>Virtual Private Gateway (VPG):<\/strong> AWS VPC&#8217;sinin VPN ba\u011flant\u0131s\u0131n\u0131 sonland\u0131ran taraf.<br \/>\n    *   <strong>VPN Connection:<\/strong> CGW ile VPG aras\u0131nda IPSec t\u00fcnelini kuran ana kaynak.<br \/>\n    *   <strong>Route Tables:<\/strong> Trafi\u011fin nas\u0131l y\u00f6nlendirilece\u011fini belirler.<br \/>\n    *   <strong>Security Groups:<\/strong> Instance&#8217;lara gelen ve giden trafi\u011fi kontrol eder.<br \/>\n*   <strong>DigitalOcean:<\/strong><br \/>\n    *   <strong>VPC:<\/strong> Sanal \u00f6zel bulut ortam\u0131m\u0131z.<br \/>\n    *   <strong>Droplet:<\/strong> VPN sunucusu olarak g\u00f6rev yapacak sanal makine (Ubuntu \u00fczerinde strongSwan).<br \/>\n    *   <strong>Floating IP:<\/strong> Droplet&#8217;e atanm\u0131\u015f statik genel IP adresi.<br \/>\n    *   <strong>Firewall:<\/strong> Droplet&#8217;e gelen ve giden trafi\u011fi kontrol eder.<br \/>\n    *   <strong>SSH Key:<\/strong> Droplet&#8217;e g\u00fcvenli eri\u015fim i\u00e7in.<br \/>\n*   <strong>VPN Yaz\u0131l\u0131m\u0131:<\/strong> strongSwan (DigitalOcean Droplet \u00fczerinde).<\/p>\n<h3>\u00d6n Ko\u015fullar ve Haz\u0131rl\u0131k<\/h3>\n<p>Ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 tamamlaman\u0131z gerekmektedir:<\/p>\n<p>1.  <strong>AWS Hesab\u0131 ve Kimlik Bilgileri:<\/strong> Bir AWS hesab\u0131n\u0131z olmal\u0131 ve Terraform&#8217;un AWS kaynaklar\u0131n\u0131 y\u00f6netebilmesi i\u00e7in yeterli izinlere sahip bir IAM kullan\u0131c\u0131 (eri\u015fim anahtar\u0131 ve gizli anahtar) olu\u015fturmu\u015f olmal\u0131s\u0131n\u0131z.<br \/>\n2.  <strong>DigitalOcean Hesab\u0131 ve API Token:<\/strong> Bir DigitalOcean hesab\u0131n\u0131z olmal\u0131 ve Terraform&#8217;un DigitalOcean kaynaklar\u0131n\u0131 y\u00f6netebilmesi i\u00e7in bir Personal Access Token (API Token) olu\u015fturmu\u015f olmal\u0131s\u0131n\u0131z. Token&#8217;a <code>read<\/code> ve <code>write<\/code> izinleri verilmelidir.<br \/>\n3.  <strong>Terraform Kurulumu:<\/strong> Yerel makinenize Terraform CLI&#8217;y\u0131 kurmu\u015f olmal\u0131s\u0131n\u0131z. Terraform&#8217;un resmi web sitesinden kurulum talimatlar\u0131na ula\u015fabilirsiniz.<br \/>\n4.  <strong>SSH Anahtar \u00c7ifti Olu\u015fturma:<\/strong> DigitalOcean Droplet&#8217;ine eri\u015fmek i\u00e7in bir SSH anahtar \u00e7ifti olu\u015fturman\u0131z gerekecektir (\u00f6rne\u011fin, <code>ssh-keygen -t rsa -b 4096 -f ~\/.ssh\/do_vpn_key<\/code>). Genel anahtar\u0131 (<code>.pub<\/code> uzant\u0131l\u0131 olan\u0131) Terraform arac\u0131l\u0131\u011f\u0131yla DigitalOcean&#8217;a y\u00fckleyece\u011fiz.<\/p>\n<h3>Terraform ile Altyap\u0131 Olu\u015fturma<\/h3>\n<p>Terraform yap\u0131land\u0131rmam\u0131z\u0131 d\u00fczenli tutmak i\u00e7in genellikle birden fazla <code>.tf<\/code> dosyas\u0131 kullan\u0131r\u0131z. \u00d6rnek bir yap\u0131land\u0131rma i\u00e7in <code>main.tf<\/code>, <code>variables.tf<\/code>, <code>outputs.tf<\/code> ve <code>providers.tf<\/code> dosyalar\u0131n\u0131 kullanaca\u011f\u0131z.<\/p>\n<pre><code class=\"language-hcl\">\/\/ providers.tf\nterraform {\n  required_providers {\n    aws = {\n      source  = \"hashicorp\/aws\"\n      version = \"~> 5.0\"\n    }\n    digitalocean = {\n      source  = \"digitalocean\/digitalocean\"\n      version = \"~> 2.0\"\n    }\n  }\n}\n\nprovider \"aws\" {\n  region = var.aws_region\n}\n\nprovider \"digitalocean\" {\n  token = var.do_token\n}<\/code><\/pre>\n<pre><code class=\"language-hcl\">\/\/ variables.tf\nvariable \"aws_region\" {\n  description = \"AWS b\u00f6lgesi\"\n  type        = string\n  default     = \"eu-central-1\" # Frankfurt\n}\n\nvariable \"do_region\" {\n  description = \"DigitalOcean b\u00f6lgesi\"\n  type        = string\n  default     = \"fra1\" # Frankfurt\n}\n\nvariable \"aws_vpc_cidr\" {\n  description = \"AWS VPC CIDR blo\u011fu\"\n  type        = string\n  default     = \"10.0.0.0\/16\"\n}\n\nvariable \"do_vpc_cidr\" {\n  description = \"DigitalOcean VPC CIDR blo\u011fu\"\n  type        = string\n  default     = \"10.1.0.0\/16\"\n}\n\nvariable \"do_token\" {\n  description = \"DigitalOcean API token\"\n  type        = string\n  sensitive   = true\n}\n\nvariable \"ssh_public_key_path\" {\n  description = \"SSH genel anahtar\u0131n\u0131n yolu\"\n  type        = string\n  default     = \"~\/.ssh\/do_vpn_key.pub\"\n}<\/code><\/pre>\n<pre><code class=\"language-hcl\">\/\/ outputs.tf\noutput \"aws_vpc_id\" {\n  description = \"Olu\u015fturulan AWS VPC ID\"\n  value       = aws_vpc.main.id\n}\n\noutput \"do_vpc_id\" {\n  description = \"Olu\u015fturulan DigitalOcean VPC ID\"\n  value       = digitalocean_vpc.main.id\n}\n\noutput \"do_vpn_droplet_ip\" {\n  description = \"DigitalOcean VPN Droplet'inin genel IP adresi\"\n  value       = digitalocean_floating_ip.vpn_ip.ip_address\n}\n\noutput \"aws_vpn_connection_tunnel_info\" {\n  description = \"AWS VPN Ba\u011flant\u0131 T\u00fcnel Bilgileri\"\n  value       = aws_vpn_connection.do_vpn_connection.tunnel1_ip_address\n}<\/code><\/pre>\n<p>#### AWS Kaynaklar\u0131<\/p>\n<pre><code class=\"language-hcl\">\/\/ main.tf (AWS B\u00f6l\u00fcm\u00fc)\n\n<h2>AWS VPC<\/h2>\nresource \"aws_vpc\" \"main\" {\n  cidr_block           = var.aws_vpc_cidr\n  enable_dns_hostnames = true\n  tags = {\n    Name = \"aws-do-vpn-vpc\"\n  }\n}\n\n<h2>AWS Subnet<\/h2>\nresource \"aws_subnet\" \"public\" {\n  vpc_id                  = aws_vpc.main.id\n  cidr_block              = cidrsubnet(aws_vpc.main.cidr_block, 8, 0) # 10.0.0.0\/24\n  availability_zone       = \"${var.aws_region}a\"\n  map_public_ip_on_launch = true\n  tags = {\n    Name = \"aws-do-vpn-public-subnet\"\n  }\n}\n\n<h2>AWS Internet Gateway (IGW)<\/h2>\nresource \"aws_internet_gateway\" \"main\" {\n  vpc_id = aws_vpc.main.id\n  tags = {\n    Name = \"aws-do-vpn-igw\"\n  }\n}\n\n<h2>AWS Virtual Private Gateway (VPG)<\/h2>\nresource \"aws_vpn_gateway\" \"main\" {\n  vpc_id = aws_vpc.main.id\n  tags = {\n    Name = \"aws-do-vpn-vpg\"\n  }\n}\n\n<h2>AWS Customer Gateway (CGW) - DigitalOcean VPN Droplet'inin Floating IP'si<\/h2>\nresource \"aws_customer_gateway\" \"do_vpn_cgw\" {\n  bgp_asn    = 65000 # \u00d6rnek ASN\n  ip_address = digitalocean_floating_ip.vpn_ip.ip_address # DigitalOcean Droplet'inin Floating IP'si\n  type       = \"ipsec.1\"\n  tags = {\n    Name = \"do-vpn-cgw\"\n  }\n}\n\n<h2>AWS VPN Connection<\/h2>\nresource \"aws_vpn_connection\" \"do_vpn_connection\" {\n  vpn_gateway_id      = aws_vpn_gateway.main.id\n  customer_gateway_id = aws_customer_gateway.do_vpn_cgw.id\n  type                = \"ipsec.1\"\n  static_routes_only  = true # strongSwan statik y\u00f6nlendirme kullanacak\n  static_routes {\n    cidr_block = var.do_vpc_cidr\n  }\n  tags = {\n    Name = \"aws-to-do-vpn\"\n  }\n}\n\n<h2>AWS Route Table g\u00fcncellemesi<\/h2>\nresource \"aws_route_table\" \"main\" {\n  vpc_id = aws_vpc.main.id\n  tags = {\n    Name = \"aws-do-vpn-route-table\"\n  }\n}\n\nresource \"aws_route\" \"do_vpn_route\" {\n  route_table_id         = aws_route_table.main.id\n  destination_cidr_block = var.do_vpc_cidr\n  vpn_gateway_id         = aws_vpn_gateway.main.id\n}\n\nresource \"aws_route\" \"internet_route\" {\n  route_table_id         = aws_route_table.main.id\n  destination_cidr_block = \"0.0.0.0\/0\"\n  gateway_id             = aws_internet_gateway.main.id\n}\n\nresource \"aws_route_table_association\" \"public\" {\n  subnet_id      = aws_subnet.public.id\n  route_table_id = aws_route_table.main.id\n}\n\n<h2>AWS Security Group (VPN trafi\u011fi i\u00e7in)<\/h2>\nresource \"aws_security_group\" \"vpn_sg\" {\n  vpc_id = aws_vpc.main.id\n  name   = \"vpn-sg\"\n  description = \"Allow VPN traffic\"\n\n  ingress {\n    from_port   = 500\n    to_port     = 500\n    protocol    = \"udp\"\n    cidr_blocks = [\"0.0.0.0\/0\"] # Sadece DigitalOcean Droplet IP'si ile k\u0131s\u0131tlanabilir\n  }\n  ingress {\n    from_port   = 4500\n    to_port     = 4500\n    protocol    = \"udp\"\n    cidr_blocks = [\"0.0.0.0\/0\"] # Sadece DigitalOcean Droplet IP'si ile k\u0131s\u0131tlanabilir\n  }\n  # Test i\u00e7in ICMP izni\n  ingress {\n    from_port   = -1\n    to_port     = -1\n    protocol    = \"icmp\"\n    cidr_blocks = [var.do_vpc_cidr]\n  }\n  # Di\u011fer VPC'den gelen trafi\u011fe izin\n  ingress {\n    from_port   = 0\n    to_port     = 0\n    protocol    = \"-1\"\n    cidr_blocks = [var.do_vpc_cidr]\n  }\n\n  egress {\n    from_port   = 0\n    to_port     = 0\n    protocol    = \"-1\"\n    cidr_blocks = [\"0.0.0.0\/0\"]\n  }\n  tags = {\n    Name = \"aws-do-vpn-sg\"\n  }\n}\n\n<h2>\u00d6rnek bir EC2 instance'\u0131 (VPN ba\u011flant\u0131s\u0131n\u0131 test etmek i\u00e7in)<\/h2>\nresource \"aws_instance\" \"test_instance\" {\n  ami           = \"ami-0c55b15934aed3ad8\" # Ubuntu 22.04 LTS (\u00f6rnek AMI, b\u00f6lgenize g\u00f6re de\u011fi\u015febilir)\n  instance_type = \"t2.micro\"\n  subnet_id     = aws_subnet.public.id\n  security_groups = [aws_security_group.vpn_sg.id]\n  key_name      = \"your-aws-key-pair\" # Kendi AWS anahtar \u00e7iftinizi buraya ekleyin\n  associate_public_ip_address = true\n  tags = {\n    Name = \"aws-vpn-test-instance\"\n  }\n}<\/code><\/pre>\n<p>#### DigitalOcean Kaynaklar\u0131<\/p>\n<pre><code class=\"language-hcl\">\/\/ main.tf (DigitalOcean B\u00f6l\u00fcm\u00fc)\n\n<h2>DigitalOcean VPC<\/h2>\nresource \"digitalocean_vpc\" \"main\" {\n  name      = \"do-vpn-vpc\"\n  region    = var.do_region\n  ip_range  = var.do_vpc_cidr\n}\n\n<h2>DigitalOcean SSH Key<\/h2>\nresource \"digitalocean_ssh_key\" \"vpn_key\" {\n  name       = \"do-vpn-ssh-key\"\n  public_key = file(var.ssh_public_key_path)\n}\n\n<h2>DigitalOcean Floating IP<\/h2>\nresource \"digitalocean_floating_ip\" \"vpn_ip\" {\n  region = var.do_region\n}\n\n<h2>DigitalOcean Droplet (VPN Sunucusu)<\/h2>\nresource \"digitalocean_droplet\" \"vpn_server\" {\n  name              = \"do-vpn-server\"\n  size              = \"s-1vcpu-1gb\" # Minimum gereksinimler i\u00e7in yeterli\n  image             = \"ubuntu-22-04-x64\"\n  region            = var.do_region\n  vpc_uuid          = digitalocean_vpc.main.id\n  ssh_keys          = [digitalocean_ssh_key.vpn_key.id]\n  private_networking = true # VPC i\u00e7indeki \u00f6zel a\u011f\n  user_data         = templatefile(\"${path.module}\/strongswan_setup.sh\", {\n    aws_vpc_cidr             = var.aws_vpc_cidr\n    do_vpc_cidr              = var.do_vpc_cidr\n    aws_vpn_tunnel1_ip       = aws_vpn_connection.do_vpn_connection.tunnel1_ip_address\n    aws_vpn_tunnel1_psk      = aws_vpn_connection.do_vpn_connection.tunnel1_pre_shared_key\n    do_vpn_floating_ip       = digitalocean_floating_ip.vpn_ip.ip_address\n  })\n  tags = [\"vpn-server\"]\n}\n\n<h2>Floating IP'yi Droplet'e ata<\/h2>\nresource \"digitalocean_floating_ip_assignment\" \"vpn_ip_assignment\" {\n  ip_address = digitalocean_floating_ip.vpn_ip.ip_address\n  droplet_id = digitalocean_droplet.vpn_server.id\n}\n\n<h2>DigitalOcean Firewall (VPN trafi\u011fi i\u00e7in)<\/h2>\nresource \"digitalocean_firewall\" \"vpn_firewall\" {\n  name = \"do-vpn-firewall\"\n  droplet_ids = [digitalocean_droplet.vpn_server.id]\n\n  inbound_rule {\n    protocol   = \"udp\"\n    port_range = \"500\"\n    source_addresses = [\"0.0.0.0\/0\"] # Sadece AWS VPN Gateway IP'si ile k\u0131s\u0131tlanabilir\n  }\n  inbound_rule {\n    protocol   = \"udp\"\n    port_range = \"4500\"\n    source_addresses = [\"0.0.0.0\/0\"] # Sadece AWS VPN Gateway IP'si ile k\u0131s\u0131tlanabilir\n  }\n  # Test i\u00e7in SSH ve ICMP\n  inbound_rule {\n    protocol   = \"tcp\"\n    port_range = \"22\"\n    source_addresses = [\"0.0.0.0\/0\"] # Kendi IP adresinizle k\u0131s\u0131tlay\u0131n\n  }\n  inbound_rule {\n    protocol   = \"icmp\"\n    source_addresses = [var.aws_vpc_cidr]\n  }\n  inbound_rule { # AWS VPC'den gelen t\u00fcm trafi\u011fe izin (\u00f6zel a\u011f)\n    protocol   = \"tcp\"\n    port_range = \"1-65535\"\n    source_addresses = [var.aws_vpc_cidr]\n  }\n  inbound_rule {\n    protocol   = \"udp\"\n    port_range = \"1-65535\"\n    source_addresses = [var.aws_vpc_cidr]\n  }\n\n  outbound_rule {\n    protocol   = \"any\"\n    port_range = \"all\"\n    destination_addresses = [\"0.0.0.0\/0\"]\n  }\n}<\/code><\/pre>\n<p>### strongSwan Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/p>\n<p>DigitalOcean Droplet&#8217;inin <code>user_data<\/code> beti\u011fi, strongSwan&#8217;\u0131 kuracak ve yap\u0131land\u0131racakt\u0131r. Bu betik, AWS VPN ba\u011flant\u0131s\u0131ndan al\u0131nan t\u00fcnel bilgilerini (uzak IP, PSK) kullanarak <code>ipsec.conf<\/code> ve <code>ipsec.secrets<\/code> dosyalar\u0131n\u0131 olu\u015fturacakt\u0131r.<\/p>\n<pre><code class=\"language-bash\"># strongswan_setup.sh (ayr\u0131 bir dosya olarak kaydedin)\n#!\/bin\/bash\nset -eux\n\n<h2>Kernel IP y\u00f6nlendirmeyi etkinle\u015ftir<\/h2>\necho \"net.ipv4.ip_forward = 1\" >> \/etc\/sysctl.conf\necho \"net.ipv4.conf.all.accept_redirects = 0\" >> \/etc\/sysctl.conf\necho \"net.ipv4.conf.all.send_redirects = 0\" >> \/etc\/sysctl.conf\nsysctl -p\n\n<h2>strongSwan ve gerekli paketleri kur<\/h2>\napt update -y\napt install -y strongswan strongswan-pki iptables-persistent\n\n<h2>AWS VPN ba\u011flant\u0131 bilgilerini al<\/h2>\nAWS_VPN_TUNNEL1_IP=\"${aws_vpn_tunnel1_ip}\"\nAWS_VPN_TUNNEL1_PSK=\"${aws_vpn_tunnel1_psk}\"\nDO_VPN_FLOATING_IP=\"${do_vpn_floating_ip}\"\n\n<h2>CIDR bloklar\u0131<\/h2>\nAWS_VPC_CIDR=\"${aws_vpc_cidr}\"\nDO_VPC_CIDR=\"${do_vpc_cidr}\"\n\n<h2>ipsec.conf dosyas\u0131n\u0131 olu\u015ftur<\/h2>\ncat <<EOF > \/etc\/ipsec.conf\nconfig setup\n  charondebug=\"ike 2, knl 2, cfg 2\"\n  strictcrlpolicy=no\n  uniqueids=no\n\nconn aws-do-vpn\n  authby=secret\n  left=%any\n  leftid=${DO_VPN_FLOATING_IP}\n  leftsubnet=${DO_VPC_CIDR}\n  right=${AWS_VPN_TUNNEL1_IP}\n  rightsubnet=${AWS_VPC_CIDR}\n  ike=aes256-sha2-modp2048!\n  esp=aes256-sha2-modp2048!\n  keyexchange=ikev2\n  ikelifetime=28800s\n  keylife=3600s\n  rekeymargin=540s\n  compress=no\n  type=tunnel\n  dpddelay=10s\n  dpdtimeout=30s\n  dpdaction=restart\n  auto=start\nEOF\n\n<h2>ipsec.secrets dosyas\u0131n\u0131 olu\u015ftur<\/h2>\necho \"${DO_VPN_FLOATING_IP} ${AWS_VPN_TUNNEL1_IP} : PSK \\\"${AWS_VPN_TUNNEL1_PSK}\\\"\" > \/etc\/ipsec.secrets\n\n<h2>NAT ve VPN trafi\u011fi i\u00e7in iptables kurallar\u0131<\/h2>\n<h2>VPN trafi\u011fi i\u00e7in MASQUERADE<\/h2>\niptables -t nat -A POSTROUTING -s ${DO_VPC_CIDR} -d ${AWS_VPC_CIDR} -j MASQUERADE\niptables -t nat -A POSTROUTING -s ${AWS_VPC_CIDR} -d ${DO_VPC_CIDR} -j MASQUERADE # Gerekirse\n\n<h2>\u0130ki VPC aras\u0131ndaki trafi\u011fe izin ver<\/h2>\niptables -A FORWARD -s ${DO_VPC_CIDR} -d ${AWS_VPC_CIDR} -j ACCEPT\niptables -A FORWARD -d ${DO_VPC_CIDR} -s ${AWS_VPC_CIDR} -j ACCEPT\n\n<h2>VPN trafi\u011fi i\u00e7in INPUT kurallar\u0131<\/h2>\niptables -A INPUT -p udp --dport 500 -j ACCEPT\niptables -A INPUT -p udp --dport 4500 -j ACCEPT\n\n<h2>Mevcut iptables kurallar\u0131n\u0131 kal\u0131c\u0131 hale getir<\/h2>\nnetfilter-persistent save\n\n<h2>strongSwan servisini yeniden ba\u015flat<\/h2>\nsystemctl restart strongswan\nsystemctl enable strongswan<\/code><\/pre>\n<p><strong>\u00d6nemli Notlar:<\/strong><br \/>\n*   <code>ipsec.conf<\/code> dosyas\u0131ndaki <code>ike<\/code> ve <code>esp<\/code> parametreleri, AWS VPN ba\u011flant\u0131s\u0131n\u0131n t\u00fcnel detaylar\u0131ndan al\u0131nmal\u0131d\u0131r. AWS genellikle IKEv2 kullan\u0131r ve belirli \u015fifreleme\/karma\/DH grubu kombinasyonlar\u0131 \u00f6nerir. Bu \u00f6rnekte genel bir kombinasyon verilmi\u015ftir. AWS konsolundan VPN ba\u011flant\u0131n\u0131z\u0131n &#8220;Tunnel Details&#8221; k\u0131sm\u0131n\u0131 kontrol ederek do\u011fru de\u011ferleri almal\u0131s\u0131n\u0131z.<br \/>\n*   <code>left=%any<\/code> yerine Droplet&#8217;in \u00f6zel IP adresi de kullan\u0131labilir, ancak Floating IP ile <code>leftid<\/code> kullan\u0131m\u0131 daha yayg\u0131nd\u0131r.<br \/>\n*   <code>iptables<\/code> kurallar\u0131, Droplet&#8217;in VPN trafi\u011fini do\u011fru \u015fekilde y\u00f6nlendirmesini ve NAT yapmas\u0131n\u0131 sa\u011flar. \u00d6zellikle <code>MASQUERADE<\/code> kural\u0131, Droplet&#8217;in kendi \u00f6zel IP&#8217;si \u00fczerinden \u00e7\u0131kan trafi\u011fin Floating IP&#8217;si \u00fczerinden AWS&#8217;ye ula\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>### Ba\u011flant\u0131n\u0131n Do\u011frulanmas\u0131 ve Test Edilmesi<\/p>\n<p>Terraform <code>apply<\/code> i\u015flemi tamamland\u0131ktan sonra, VPN t\u00fcnelinin ba\u015far\u0131l\u0131 bir \u015fekilde kurulup kurulmad\u0131\u011f\u0131n\u0131 ve iki VPC aras\u0131nda ileti\u015fimin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 do\u011frulamam\u0131z gerekir.<\/p>\n<p>1.  <strong>strongSwan Durumunu Kontrol Etme:<\/strong><br \/>\n    DigitalOcean Droplet&#8217;inize SSH ile ba\u011flan\u0131n ve a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo ipsec status<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131da <code>aws-do-vpn<\/code> ba\u011flant\u0131s\u0131n\u0131n <code>ESTABLISHED<\/code> durumunda oldu\u011funu g\u00f6rmelisiniz. Bu, IPSec t\u00fcnelinin ba\u015far\u0131l\u0131 bir \u015fekilde kuruldu\u011funu g\u00f6sterir. E\u011fer <code>CONNECTING<\/code> veya ba\u015fka bir durum g\u00f6r\u00fcyorsan\u0131z, <code>sudo journalctl -u strongswan<\/code> komutuyla loglar\u0131 kontrol edin.<\/p>\n<p>2.  <strong>Ping ile \u0130leti\u015fim Testi:<\/strong><br \/>\n    *   <strong>AWS Taraf\u0131ndan DigitalOcean&#8217;a:<\/strong> AWS VPC&#8217;nizdeki bir EC2 instance&#8217;\u0131na ba\u011flan\u0131n (\u00f6rne\u011fin, <code>aws_instance.test_instance<\/code>) ve DigitalOcean VPC&#8217;nizdeki VPN Droplet&#8217;inin \u00f6zel IP adresine veya Droplet&#8217;in arkas\u0131ndaki ba\u015fka bir kayna\u011f\u0131n \u00f6zel IP&#8217;sine ping at\u0131n.<\/p>\n<pre><code class=\"language-bash\">ping <DigitalOcean_Droplet_Private_IP><\/code><\/pre>\n<p>    *   <strong>DigitalOcean Taraf\u0131ndan AWS&#8217;ye:<\/strong> DigitalOcean VPN Droplet&#8217;ine ba\u011flan\u0131n ve AWS VPC&#8217;nizdeki bir EC2 instance&#8217;\u0131n\u0131n \u00f6zel IP adresine ping at\u0131n.<\/p>\n<pre><code class=\"language-bash\">ping <AWS_EC2_Private_IP><\/code><\/pre>\n<p>    Ping ba\u015far\u0131l\u0131 olursa, temel IP ba\u011flant\u0131s\u0131 kurulmu\u015f demektir.<\/p>\n<p>3.  <strong>Y\u00f6nlendirme Tablolar\u0131n\u0131 Kontrol Etme:<\/strong><br \/>\n    *   <strong>AWS Konsolu:<\/strong> AWS VPC&#8217;nizin y\u00f6nlendirme tablolar\u0131n\u0131 kontrol edin. DigitalOcean VPC CIDR blo\u011funa (<code>10.1.0.0\/16<\/code>) giden trafi\u011fin Virtual Private Gateway (<code>vpg-xxxx<\/code>) \u00fczerinden y\u00f6nlendirildi\u011finden emin olun.<br \/>\n    *   <strong>DigitalOcean Droplet:<\/strong> Droplet&#8217;te <code>ip route<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak y\u00f6nlendirme tablosunu kontrol edin. AWS VPC CIDR blo\u011funa (<code>10.0.0.0\/16<\/code>) giden trafi\u011fin VPN t\u00fcneli \u00fczerinden y\u00f6nlendirildi\u011finden emin olun. strongSwan genellikle t\u00fcnel kuruldu\u011funda bu y\u00f6nlendirmeleri otomatik olarak ekler.<\/p>\n<p>4.  <strong>G\u00fcvenlik Gruplar\u0131 ve Firewall Kontrol\u00fc:<\/strong><br \/>\n    Her iki taraftaki g\u00fcvenlik gruplar\u0131 ve firewall kurallar\u0131n\u0131n, ilgili IP adres aral\u0131klar\u0131ndan (kar\u015f\u0131 VPC CIDR blo\u011fu) gelen ve giden trafi\u011fe izin verdi\u011finden emin olun. \u00d6zellikle ICMP (ping) ve di\u011fer servisler i\u00e7in kurallar\u0131n do\u011fru ayarland\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>1.  <strong>VPN T\u00fcneli Kurulmuyor (strongSwan <code>ESTABLISHED<\/code> de\u011fil):<\/strong><br \/>\n    *   <strong>Loglar\u0131 Kontrol Edin:<\/strong> DigitalOcean Droplet&#8217;inde <code>sudo journalctl -u strongswan<\/code> veya <code>\/var\/log\/syslog<\/code> dosyalar\u0131n\u0131 kontrol edin. Hata mesajlar\u0131, genellikle sorunun k\u00f6kenini g\u00f6sterir (\u00f6rne\u011fin, kimlik do\u011frulama hatas\u0131, \u015fifreleme uyu\u015fmazl\u0131\u011f\u0131).<br \/>\n    *   <strong>PSK Uyu\u015fmazl\u0131\u011f\u0131:<\/strong> <code>ipsec.secrets<\/code> dosyas\u0131ndaki \u00f6nceden payla\u015f\u0131lan anahtar\u0131n (PSK) AWS VPN Connection t\u00fcnel detaylar\u0131ndaki ile tamamen ayn\u0131 oldu\u011fundan emin olun.<br \/>\n    *   <strong>\u015eifreleme\/Karma Algoritmas\u0131 Uyu\u015fmazl\u0131\u011f\u0131:<\/strong> <code>ipsec.conf<\/code> dosyas\u0131ndaki <code>ike<\/code> ve <code>esp<\/code> parametrelerinin (\u015fifreleme, karma, DH grubu) AWS VPN Connection t\u00fcnel detaylar\u0131ndaki ile e\u015fle\u015fti\u011finden emin olun. AWS konsolunda bu bilgileri bulabilirsiniz.<br \/>\n    *   <strong>IP Adresi Yanl\u0131\u015fl\u0131\u011f\u0131:<\/strong> AWS Customer Gateway&#8217;deki IP adresinin DigitalOcean Floating IP&#8217;si ile, strongSwan yap\u0131land\u0131rmas\u0131ndaki uzak IP&#8217;nin ise AWS VPN Gateway t\u00fcnel IP&#8217;si ile do\u011fru oldu\u011fundan emin olun.<br \/>\n    *   <strong>Firewall\/G\u00fcvenlik Grubu Engeli:<\/strong> UDP 500 (IKE) ve UDP 4500 (NAT Traversal) portlar\u0131n\u0131n her iki tarafta da a\u00e7\u0131k oldu\u011fundan emin olun.<\/p>\n<p>2.  <strong>Trafik Ak\u0131\u015f\u0131 Yok (Ping \u00e7al\u0131\u015fm\u0131yor):<\/strong><br \/>\n    *   <strong>Y\u00f6nlendirme Tablolar\u0131:<\/strong> Her iki VPC&#8217;deki y\u00f6nlendirme tablolar\u0131n\u0131n, kar\u015f\u0131 VPC&#8217;nin CIDR blo\u011funa giden trafi\u011fi VPN t\u00fcneli \u00fczerinden y\u00f6nlendirdi\u011finden emin olun.<br \/>\n    *   <strong>G\u00fcvenlik Gruplar\u0131\/Firewall:<\/strong> Her iki taraftaki g\u00fcvenlik kurallar\u0131n\u0131n, kar\u015f\u0131 VPC&#8217;nin CIDR blo\u011fundan gelen ve giden t\u00fcm trafi\u011fe izin verdi\u011finden emin olun. ICMP trafi\u011fi i\u00e7in \u00f6zel bir kural gerekebilir.<br \/>\n    *   <strong><code>iptables<\/code> Kurallar\u0131 (DigitalOcean):<\/strong> strongSwan Droplet&#8217;indeki <code>iptables<\/code> kurallar\u0131n\u0131n do\u011fru oldu\u011fundan emin olun. \u00d6zellikle <code>ip_forward<\/code>&#8216;\u0131n etkinle\u015ftirildi\u011finden ve <code>MASQUERADE<\/code> kural\u0131n\u0131n VPN trafi\u011fi i\u00e7in ge\u00e7erli oldu\u011fundan emin olun.<br \/>\n    *   <strong>CIDR \u00c7ak\u0131\u015fmalar\u0131:<\/strong> Her iki VPC&#8217;nin CIDR bloklar\u0131n\u0131n kesinlikle \u00e7ak\u0131\u015fmad\u0131\u011f\u0131ndan emin olun.<\/p>\n<p>3.  <strong>DigitalOcean Droplet&#8217;ine SSH Eri\u015fimi Yok:<\/strong><br \/>\n    *   Firewall&#8217;da SSH (TCP 22) portunun a\u00e7\u0131k oldu\u011fundan ve kaynak IP adresinin do\u011fru oldu\u011fundan emin olun.<br \/>\n    *   SSH anahtar\u0131n\u0131n do\u011fru y\u00fcklendi\u011finden ve <code>ssh -i ~\/.ssh\/do_vpn_key root@<floating_ip><\/code> komutuyla do\u011fru anahtar\u0131 kulland\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<h3>Maliyet ve G\u00fcvenlik Hususlar\u0131<\/h3>\n<h4>Maliyet<\/h4>\n<p>*   <strong>DigitalOcean Droplet:<\/strong> VPN sunucusu olarak kullan\u0131lan Droplet&#8217;in maliyeti (boyuta ve \u00e7al\u0131\u015fma s\u00fcresine g\u00f6re).<br \/>\n*   <strong>DigitalOcean Floating IP:<\/strong> Genellikle k\u00fc\u00e7\u00fck bir ayl\u0131k \u00fccreti vard\u0131r.<br \/>\n*   <strong>AWS VPN Connection:<\/strong> AWS Site-to-Site VPN hizmetinin saatlik \u00fccreti vard\u0131r.<br \/>\n*   <strong>Veri Transferi:<\/strong> Bulut sa\u011flay\u0131c\u0131lar\u0131 aras\u0131nda veri transferi genellikle maliyetlidir. Bu, iki VPC aras\u0131nda aktar\u0131lan veri miktar\u0131na g\u00f6re de\u011fi\u015fecektir.<\/p>\n<h4>G\u00fcvenlik<\/h4>\n<p>*   <strong>strongSwan G\u00fcncellemeleri:<\/strong> DigitalOcean Droplet&#8217;indeki strongSwan yaz\u0131l\u0131m\u0131n\u0131 d\u00fczenli olarak g\u00fcncel tutmak, bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapatmak i\u00e7in kritiktir.<br \/>\n*   <strong>G\u00fcvenlik Gruplar\u0131\/Firewall Kurallar\u0131:<\/strong> En az ayr\u0131cal\u0131k prensibiyle \u00e7al\u0131\u015f\u0131n. Sadece VPN t\u00fcneli i\u00e7in gerekli olan portlar\u0131 (UDP 500, UDP 4500) ve kaynak IP adreslerini (kar\u015f\u0131 taraf\u0131n VPN Gateway\/Floating IP&#8217;si) a\u00e7\u0131k tutun. Test i\u00e7in geni\u015f b\u0131rak\u0131lan <code>0.0.0.0\/0<\/code> kurallar\u0131n\u0131 \u00fcretim ortam\u0131nda k\u0131s\u0131tlay\u0131n.<br \/>\n*   <strong>IAM \u0130zinleri:<\/strong> Terraform&#8217;un AWS ve DigitalOcean kaynaklar\u0131n\u0131 y\u00f6netmek i\u00e7in kulland\u0131\u011f\u0131 kimlik bilgilerinin (IAM kullan\u0131c\u0131s\u0131, API token) en az ayr\u0131cal\u0131k ilkesine uygun olarak sadece gerekli izinlere sahip oldu\u011fundan emin olun.<br \/>\n*   <strong>Anahtar Y\u00f6netimi:<\/strong> PSK&#8217;lar\u0131 g\u00fcvenli bir \u015fekilde saklay\u0131n ve y\u00f6netin. Terraform&#8217;da <code>sensitive = true<\/code> kullanmak, \u00e7\u0131kt\u0131lar\u0131n konsolda g\u00f6r\u00fcnmesini engeller ancak <code>.tfstate<\/code> dosyas\u0131nda yine de bulunur. Daha hassas senaryolar i\u00e7in Terraform Cloud, Vault veya di\u011fer s\u0131r y\u00f6netim \u00e7\u00f6z\u00fcmleri kullan\u0131labilir.<br \/>\n*   <strong>A\u011f Segmentasyonu:<\/strong> \u0130ki VPC aras\u0131ndaki trafi\u011fi daha da izole etmek i\u00e7in alt a\u011flar\u0131 ve g\u00fcvenlik gruplar\u0131n\u0131 dikkatli bir \u015fekilde yap\u0131land\u0131r\u0131n.<\/p>\n<h3>Alternatif Yakla\u015f\u0131mlar<\/h3>\n<p>Bu makalede manuel bir strongSwan kurulumu ile AWS Site-to-Site VPN ba\u011flant\u0131s\u0131 kurulmu\u015ftur. Ancak ba\u015fka alternatifler de mevcuttur:<\/p>\n<p>*   <strong>Y\u00f6netilen VPN Hizmetleri:<\/strong> DigitalOcean&#8217;da do\u011frudan y\u00f6netilen bir VPN Gateway hizmeti olmasa da, AWS Site-to-Site VPN&#8217;e benzer \u015fekilde, bir\u00e7ok bulut sa\u011flay\u0131c\u0131s\u0131 kendi y\u00f6netilen VPN \u00e7\u00f6z\u00fcmlerini sunar (\u00f6rne\u011fin, Google Cloud VPN, Azure VPN Gateway). DigitalOcean taraf\u0131nda, \u00fc\u00e7\u00fcnc\u00fc parti bir sanal g\u00fcvenlik duvar\u0131\/VPN cihaz\u0131 (\u00f6rne\u011fin, pfSense, OpenVPN Access Server) kullanmak ve bunu y\u00f6netmek de bir se\u00e7enektir.<br \/>\n*   <strong>Direct Connect\/Interconnect:<\/strong> Y\u00fcksek bant geni\u015fli\u011fi ve d\u00fc\u015f\u00fck gecikme s\u00fcresi gerektiren durumlarda, do\u011frudan fiziksel ba\u011flant\u0131lar (AWS Direct Connect, Google Cloud Interconnect) tercih edilebilir. Ancak bu \u00e7\u00f6z\u00fcmler daha maliyetli ve karma\u015f\u0131kt\u0131r.<br \/>\n*   <strong>SD-WAN \u00c7\u00f6z\u00fcmleri:<\/strong> \u00c7oklu bulut ortamlar\u0131nda karma\u015f\u0131k a\u011f topolojilerini y\u00f6netmek i\u00e7in yaz\u0131l\u0131m tan\u0131ml\u0131 geni\u015f alan a\u011f\u0131 (SD-WAN) \u00e7\u00f6z\u00fcmleri kullan\u0131labilir.<br \/>\n*   <strong>Terraform Mod\u00fclleri:<\/strong> Daha karma\u015f\u0131k senaryolar veya daha h\u0131zl\u0131 da\u011f\u0131t\u0131m i\u00e7in topluluk taraf\u0131ndan geli\u015ftirilmi\u015f veya resmi Terraform mod\u00fclleri kullan\u0131labilir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makale, DigitalOcean ve AWS VPC&#8217;leri aras\u0131nda g\u00fcvenli bir IPSec VPN t\u00fcneli olu\u015fturmak i\u00e7in Terraform&#8217;un nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 ayr\u0131nt\u0131l\u0131 olarak a\u00e7\u0131klam\u0131\u015ft\u0131r. strongSwan&#8217;\u0131n DigitalOcean taraf\u0131nda VPN sunucusu olarak g\u00f6rev yapmas\u0131 ve AWS Site-to-Site VPN hizmeti ile entegrasyonu sayesinde, iki farkl\u0131 bulut ortam\u0131 aras\u0131nda g\u00fcvenli ve \u00f6zel bir ileti\u015fim kanal\u0131 kurulmu\u015ftur. Terraform, bu karma\u015f\u0131k altyap\u0131n\u0131n kod olarak tan\u0131mlanmas\u0131n\u0131 ve otomatik olarak da\u011f\u0131t\u0131lmas\u0131n\u0131 sa\u011flayarak, s\u00fcre\u00e7leri basitle\u015ftirmi\u015f ve tekrarlanabilir hale getirmi\u015ftir.<\/p>\n<p>Multi-cloud stratejileri benimseyen kurulu\u015flar i\u00e7in bu t\u00fcr VPN ba\u011flant\u0131lar\u0131 hayati \u00f6neme sahiptir. Felaket kurtarma senaryolar\u0131ndan, da\u011f\u0131t\u0131k uygulamalar\u0131n performans\u0131n\u0131 art\u0131rmaya kadar bir\u00e7ok kullan\u0131m durumu i\u00e7in bu y\u00f6ntem uygulanabilir. Unutulmamal\u0131d\u0131r ki, bu t\u00fcr bir altyap\u0131n\u0131n kurulumu sadece ba\u015flang\u0131\u00e7t\u0131r; d\u00fczenli bak\u0131m, g\u00fcvenlik g\u00fcncellemeleri ve performans izleme, ba\u011flant\u0131n\u0131n s\u00fcrekli ve g\u00fcvenli kalmas\u0131 i\u00e7in kritik \u00f6neme sahiptir. Bu makaledeki ad\u0131mlar\u0131 takip ederek, kendi multi-cloud VPN altyap\u0131n\u0131z\u0131 g\u00fcvenle kurabilir ve y\u00f6netebilirsiniz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"DigitalOcean ve AWS VPC&#8217;leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile)\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla geli\u015fen bulut bili\u015fim d\u00fcnyas\u0131nda","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1406],"tags":[],"class_list":{"0":"post-32140","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-aws","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>DigitalOcean ve AWS VPC&#039;leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DigitalOcean ve AWS VPC&#039;leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile)\" \/>\n<meta property=\"og:description\" content=\"DigitalOcean ve AWS VPC&#039;leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile) Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla geli\u015fen bulut bili\u015fim d\u00fcnyas\u0131nda\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-18T03:40:58+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"DigitalOcean ve AWS VPC&#8217;leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile)\",\"datePublished\":\"2025-10-18T03:40:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/\"},\"wordCount\":2680,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"AWS\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/\",\"name\":\"DigitalOcean ve AWS VPC'leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-18T03:40:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DigitalOcean ve AWS VPC&#8217;leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"DigitalOcean ve AWS VPC'leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/","og_locale":"tr_TR","og_type":"article","og_title":"DigitalOcean ve AWS VPC'leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile)","og_description":"DigitalOcean ve AWS VPC'leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile) Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla geli\u015fen bulut bili\u015fim d\u00fcnyas\u0131nda","og_url":"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-18T03:40:58+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"DigitalOcean ve AWS VPC&#8217;leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile)","datePublished":"2025-10-18T03:40:58+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/"},"wordCount":2680,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["AWS"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/","url":"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/","name":"DigitalOcean ve AWS VPC'leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-18T03:40:58+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-ve-aws-vpcleri-arasinda-ipsec-vpn-baglantisi-kurma-terraform-ile\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"DigitalOcean ve AWS VPC&#8217;leri Aras\u0131nda IPSec VPN Ba\u011flant\u0131s\u0131 Kurma (Terraform ile)"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=32140"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32140\/revisions"}],"predecessor-version":[{"id":32141,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32140\/revisions\/32141"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}