{"id":42973,"date":"2026-07-01T14:01:10","date_gmt":"2026-07-01T11:01:10","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/"},"modified":"2026-07-01T14:01:40","modified_gmt":"2026-07-01T11:01:40","slug":"neden-ozel-droplet-ve-bastion-host-kullanmalisiniz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/","title":{"rendered":"Neden \u00d6zel Droplet ve Bastion Host Kullanmal\u0131s\u0131n\u0131z?"},"content":{"rendered":"<div class=\"article-title\">\u00d6zel Droplet ve Bastion Host Kurulumu: Bulut G\u00fcvenli\u011fini En \u00dcst D\u00fczeye \u00c7\u0131karma<\/div>\n<p>Bulut altyap\u0131n\u0131zda g\u00fcvenli\u011fi art\u0131rmak i\u00e7in \u00f6zel bir Droplet ve Bastion Host nas\u0131l kurulur? Bu rehber, bulut g\u00fcvenlik duvarlar\u0131 ile sa\u011flam ve eri\u015filebilir bir altyap\u0131 olu\u015fturman\u0131n ad\u0131m ad\u0131m yollar\u0131n\u0131 sunar.<\/p>\n<h2>Neden \u00d6zel Droplet ve Bastion Host Kullanmal\u0131s\u0131n\u0131z?<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, i\u015fletmelerin ve geli\u015ftiricilerin bulut tabanl\u0131 altyap\u0131lara olan ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 her ge\u00e7en g\u00fcn artmaktad\u0131r. Ancak bu kolayl\u0131k, beraberinde ciddi g\u00fcvenlik risklerini de getirmektedir. Bir sunucuyu do\u011frudan internete a\u00e7\u0131k b\u0131rakmak, siber sald\u0131rganlar i\u00e7in potansiyel bir hedef haline gelmek demektir. Botlar ve k\u00f6t\u00fc niyetli akt\u00f6rler s\u00fcrekli olarak zay\u0131f noktalar\u0131 tarar, varsay\u0131lan kimlik bilgilerini dener ve bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 istismar etmeye \u00e7al\u0131\u015f\u0131r. \u0130\u015fte tam da bu noktada, \u00f6zel Droplet&#8217;ler ve bir Bastion Host kullan\u0131m\u0131, bulut g\u00fcvenli\u011fini katmanl\u0131 bir yakla\u015f\u0131mla ele alarak kritik bir savunma hatt\u0131 olu\u015fturur.<\/p>\n<p>Bir\u00e7ok kurulu\u015f, hassas verilerini bar\u0131nd\u0131ran veya kritik uygulamalar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131ran sunucular\u0131n\u0131 do\u011frudan genel internete maruz b\u0131rakma hatas\u0131na d\u00fc\u015fer. Bu durum, SSH portunun (genellikle 22) t\u00fcm d\u00fcnyaya a\u00e7\u0131k olmas\u0131yla ba\u015flar ve di\u011fer uygulama portlar\u0131n\u0131n da benzer \u015fekilde korunmas\u0131z kalmas\u0131yla devam eder. Bu t\u00fcr bir yap\u0131land\u0131rma, sunucular\u0131n\u0131z\u0131n s\u00fcrekli bir sald\u0131r\u0131 y\u00fczeyine sahip olmas\u0131na neden olur. Bir Bastion Host, bu sald\u0131r\u0131 y\u00fczeyini \u00f6nemli \u00f6l\u00e7\u00fcde daraltan merkezi bir eri\u015fim noktas\u0131 g\u00f6revi g\u00f6r\u00fcr. T\u00fcm sunucular\u0131n\u0131za do\u011frudan eri\u015fimi engellerken, yaln\u0131zca Bastion Host \u00fczerinden ba\u011flant\u0131 kurulmas\u0131na izin verir. Bu sayede, di\u011fer sunucular\u0131n\u0131z\u0131n SSH portlar\u0131 ve di\u011fer uygulama portlar\u0131, yaln\u0131zca Bastion Host&#8217;un eri\u015febilece\u011fi \u00f6zel bir a\u011f i\u00e7inde kal\u0131r, b\u00f6ylece internetten do\u011frudan eri\u015filemez hale gelirler.<\/p>\n<p>Bu mimari, sadece yetkisiz eri\u015fimi engellemekle kalmaz, ayn\u0131 zamanda g\u00fcvenlik denetimini de kolayla\u015ft\u0131r\u0131r. T\u00fcm y\u00f6netim trafi\u011fi tek bir noktadan ge\u00e7ti\u011fi i\u00e7in, kimin ne zaman ve hangi sunucuya eri\u015fti\u011fini izlemek \u00e7ok daha basit hale gelir. Ayr\u0131ca, herhangi bir g\u00fcvenlik ihlali durumunda, sald\u0131rgan\u0131n ilk olarak Bastion Host&#8217;u ele ge\u00e7irmesi gerekir ki bu da ekstra bir g\u00fcvenlik katman\u0131 sa\u011flar. \u00d6zel Droplet&#8217;ler ise, genel internetten izole edilmi\u015f, kendi \u00f6zel IP adreslerine sahip sunuculard\u0131r. Bu sayede, hassas verilerinizin ve uygulamalar\u0131n\u0131z\u0131n internete do\u011frudan maruz kalmamas\u0131n\u0131 sa\u011flayarak ek bir koruma katman\u0131 sunarlar. Bu iki kavram\u0131n birle\u015fimi, bulut altyap\u0131n\u0131z i\u00e7in sa\u011flam, diren\u00e7li ve y\u00f6netilebilir bir g\u00fcvenlik duru\u015fu olu\u015fturman\u0131n temelini atar. Ger\u00e7ek d\u00fcnya senaryolar\u0131nda, \u00f6rne\u011fin finansal hizmetler sunan bir \u015firketin m\u00fc\u015fteri verilerini bar\u0131nd\u0131rd\u0131\u011f\u0131 veritaban\u0131 sunucular\u0131 veya sa\u011fl\u0131k sekt\u00f6r\u00fcndeki bir uygulaman\u0131n hasta bilgilerini i\u015fledi\u011fi backend sunucular\u0131 gibi durumlarda, bu t\u00fcr bir mimari vazge\u00e7ilmezdir. Bu sayede, hassas verilerinizi korurken, yetkili ki\u015filerin g\u00fcvenli bir \u015fekilde eri\u015fimini s\u00fcrd\u00fcrebilirsiniz.<\/p>\n<h3>Temel Kavramlar: Droplet, Bastion Host ve Bulut G\u00fcvenlik Duvar\u0131 Nedir?<\/h3>\n<p>Bu g\u00fcvenlik mimarisini kurmadan \u00f6nce, temel bile\u015fenleri anlamak b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r. Her bir kavram\u0131n ne anlama geldi\u011fini ve sistemdeki rol\u00fcn\u00fc netle\u015ftirmek, kurulum s\u00fcrecini daha bilin\u00e7li bir \u015fekilde ilerletmenizi sa\u011flayacakt\u0131r.<\/p>\n<p><strong>Droplet:<\/strong> DigitalOcean&#8217;\u0131n sanal \u00f6zel sunucu (VPS) hizmetine verdi\u011fi isimdir. Basit\u00e7e s\u00f6ylemek gerekirse, kendi i\u015fletim sisteminize sahip, CPU, RAM ve depolama alan\u0131 gibi kaynaklar\u0131 olan sanal bir bilgisayard\u0131r. Uygulamalar\u0131n\u0131z\u0131, web sitelerinizi veya veritabanlar\u0131n\u0131z\u0131 bar\u0131nd\u0131rmak i\u00e7in kullan\u0131l\u0131rlar. Droplet&#8217;ler, genel internete a\u00e7\u0131k bir IP adresine sahip olabilir veya yaln\u0131zca \u00f6zel bir a\u011f i\u00e7inde eri\u015filebilir olacak \u015fekilde yap\u0131land\u0131r\u0131labilir. Bu makalede, g\u00fcvenlik nedenleriyle Droplet&#8217;lerimizi \u00f6zel a\u011f i\u00e7inde tutmaya odaklanaca\u011f\u0131z.<\/p>\n<p><strong>Bastion Host (Jump Server):<\/strong> Bir &#8220;kale sunucusu&#8221; veya &#8220;atlama sunucusu&#8221; olarak da bilinen Bastion Host, g\u00fcvenli a\u011f\u0131n\u0131zdaki di\u011fer sunuculara eri\u015fim i\u00e7in tek, sertle\u015ftirilmi\u015f bir giri\u015f noktas\u0131 g\u00f6revi g\u00f6r\u00fcr. Temel amac\u0131, dahili sunucular\u0131n\u0131z\u0131n do\u011frudan internete a\u00e7\u0131k olmas\u0131n\u0131 engellemektir. T\u00fcm SSH ba\u011flant\u0131lar\u0131, \u00f6nce Bastion Host&#8217;a yap\u0131l\u0131r ve oradan \u00f6zel a\u011f \u00fczerinden hedef Droplet&#8217;e y\u00f6nlendirilir. Bu, sald\u0131r\u0131 y\u00fczeyini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde azalt\u0131r, \u00e7\u00fcnk\u00fc d\u0131\u015far\u0131dan yaln\u0131zca Bastion Host&#8217;un SSH portu g\u00f6r\u00fcn\u00fcr hale gelir. Bastion Host genellikle minimalist bir i\u015fletim sistemiyle (\u00f6rne\u011fin, Ubuntu Server veya Debian) kurulur ve \u00fczerinde yaln\u0131zca kesinlikle gerekli olan hizmetler \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. Ek g\u00fcvenlik \u00f6nlemleri olarak \u00e7ok fakt\u00f6rl\u00fc kimlik do\u011frulama (MFA) ve s\u0131k\u0131 eri\u015fim kontrolleri ile donat\u0131l\u0131r.<\/p>\n<p><strong>Bulut G\u00fcvenlik Duvar\u0131 (Cloud Firewall):<\/strong> Bulut sa\u011flay\u0131c\u0131lar\u0131 taraf\u0131ndan sunulan, a\u011f trafi\u011fini belirli kurallara g\u00f6re filtreleyen sanal g\u00fcvenlik duvarlar\u0131d\u0131r. Gelen (ingress) ve giden (egress) trafi\u011fi kontrol ederek, hangi portlar\u0131n hangi IP adreslerinden eri\u015filebilir oldu\u011funu veya hangi uygulamalar\u0131n d\u0131\u015far\u0131ya ba\u011flanabilece\u011fini belirlemenizi sa\u011flar. DigitalOcean Cloud Firewalls, Droplet&#8217;lerinize gelen ve giden trafi\u011fi y\u00f6netmek i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Bu g\u00fcvenlik duvarlar\u0131, Droplet seviyesinde uygulan\u0131r ve a\u011f katman\u0131nda \u00e7al\u0131\u015farak k\u00f6t\u00fc niyetli trafi\u011fi sunucular\u0131n\u0131za ula\u015fmadan engeller. \u00d6rne\u011fin, Bastion Host&#8217;unuza yaln\u0131zca belirli bir IP aral\u0131\u011f\u0131ndan SSH eri\u015fimine izin verebilir veya uygulama Droplet&#8217;inizin yaln\u0131zca Bastion Host&#8217;tan gelen SSH ba\u011flant\u0131lar\u0131n\u0131 kabul etmesini sa\u011flayabilirsiniz. Bu, geleneksel sunucu tabanl\u0131 g\u00fcvenlik duvarlar\u0131na (iptables, ufw) ek bir koruma katman\u0131 sunar ve daha merkezi bir y\u00f6netim sa\u011flar. Bu \u00fc\u00e7 bile\u015fenin birle\u015fimi, \u00f6zel Droplet&#8217;lerinizi d\u0131\u015f tehditlerden izole ederken, g\u00fcvenli ve denetlenebilir bir y\u00f6netim eri\u015fimi sa\u011flar.<\/p>\n<h2>DigitalOcean \u00dczerinde \u00d6zel A\u011f Yap\u0131s\u0131 Nas\u0131l Olu\u015fturulur?<\/h2>\n<p>G\u00fcvenli bir altyap\u0131 olu\u015fturman\u0131n ilk ad\u0131m\u0131, sunucular\u0131n\u0131z\u0131n birbirleriyle ve d\u0131\u015f d\u00fcnyayla nas\u0131l ileti\u015fim kuraca\u011f\u0131n\u0131 belirleyen sa\u011flam bir a\u011f yap\u0131s\u0131 kurmakt\u0131r. DigitalOcean, bu ihtiyac\u0131 kar\u015f\u0131lamak i\u00e7in Virtual Private Cloud (VPC) veya \u00f6zel a\u011f \u00f6zelliklerini sunar. VPC, bulut ortam\u0131n\u0131zda mant\u0131ksal olarak izole edilmi\u015f \u00f6zel bir a\u011f alan\u0131 olu\u015fturman\u0131za olanak tan\u0131r. Bu sayede, Droplet&#8217;leriniz genel internet yerine bu \u00f6zel a\u011f \u00fczerinden birbirleriyle g\u00fcvenli bir \u015fekilde ileti\u015fim kurabilir.<\/p>\n<p>\u00d6zel a\u011f yap\u0131s\u0131 olu\u015fturmak, Droplet&#8217;lerinizin yaln\u0131zca \u00f6zel IP adresleri \u00fczerinden eri\u015filebilir olmas\u0131n\u0131 sa\u011flayarak sald\u0131r\u0131 y\u00fczeyini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. \u00d6rne\u011fin, bir veritaban\u0131 sunucusu veya bir uygulama sunucusu, do\u011frudan internete a\u00e7\u0131k olmak yerine, yaln\u0131zca ayn\u0131 \u00f6zel a\u011fdaki di\u011fer Droplet&#8217;ler taraf\u0131ndan eri\u015filebilir hale gelir. Bu, \u00f6zellikle hassas verilerle \u00e7al\u0131\u015fan sistemler i\u00e7in kritik bir g\u00fcvenlik katman\u0131d\u0131r.<\/p>\n<p><strong>Ad\u0131m Ad\u0131m \u00d6zel A\u011f Olu\u015fturma:<\/strong><\/p>\n<p>1.  <strong>DigitalOcean Hesab\u0131n\u0131za Giri\u015f Yap\u0131n:<\/strong> \u0130lk olarak, DigitalOcean kontrol panelinize giri\u015f yap\u0131n.<br \/>\n2.  <strong>VPC Network Olu\u015fturun:<\/strong> Sol men\u00fcden &#8220;Networking&#8221; (A\u011f Olu\u015fturma) se\u00e7ene\u011fine t\u0131klay\u0131n, ard\u0131ndan &#8220;VPC Networks&#8221; (VPC A\u011flar\u0131) sekmesine gidin. Burada &#8220;Create VPC Network&#8221; (VPC A\u011f\u0131 Olu\u015ftur) d\u00fc\u011fmesine t\u0131klay\u0131n.<br \/>\n3.  <strong>A\u011f Detaylar\u0131n\u0131 Tan\u0131mlay\u0131n:<\/strong><br \/>\n    *   <strong>Name (\u0130sim):<\/strong> A\u011f\u0131n\u0131za a\u00e7\u0131klay\u0131c\u0131 bir isim verin (\u00f6rn: <code class=\"language-\">guvenli-ozel-ag<\/code>).<br \/>\n    *   <strong>Region (B\u00f6lge):<\/strong> Droplet&#8217;lerinizin bulunaca\u011f\u0131 b\u00f6lgeyi se\u00e7in. T\u00fcm Droplet&#8217;lerinizin ayn\u0131 VPC a\u011f\u0131nda olabilmesi i\u00e7in ayn\u0131 b\u00f6lgede olmas\u0131 gerekti\u011fini unutmay\u0131n.<br \/>\n    *   <strong>IP Range (IP Aral\u0131\u011f\u0131):<\/strong> DigitalOcean genellikle varsay\u0131lan bir IP aral\u0131\u011f\u0131 \u00f6nerir (\u00f6rn: <code class=\"language-\">10.10.0.0\/20<\/code>). Bu aral\u0131k, \u00f6zel a\u011f\u0131n\u0131zdaki Droplet&#8217;lere atanacak IP adreslerini belirler. Genellikle varsay\u0131lan\u0131 kullanmak yeterlidir, ancak a\u011f planlaman\u0131za uygun \u00f6zel bir aral\u0131k da belirleyebilirsiniz.<br \/>\n    *   <strong>Description (A\u00e7\u0131klama):<\/strong> \u0130ste\u011fe ba\u011fl\u0131 olarak a\u011f\u0131n\u0131z hakk\u0131nda k\u0131sa bir a\u00e7\u0131klama ekleyebilirsiniz.<br \/>\n4.  <strong>A\u011f\u0131 Olu\u015fturun:<\/strong> Gerekli bilgileri girdikten sonra &#8220;Create VPC Network&#8221; d\u00fc\u011fmesine t\u0131klayarak \u00f6zel a\u011f\u0131n\u0131z\u0131 olu\u015fturun.<\/p>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, art\u0131k Droplet&#8217;lerinizi olu\u015ftururken bu \u00f6zel a\u011f\u0131 se\u00e7me se\u00e7ene\u011fine sahip olacaks\u0131n\u0131z. Bir Droplet&#8217;i bu \u00f6zel a\u011fa ba\u011flad\u0131\u011f\u0131n\u0131zda, ona hem genel bir IP adresi (iste\u011fe ba\u011fl\u0131 ve genellikle Bastion Host i\u00e7in kullan\u0131l\u0131r) hem de \u00f6zel a\u011f i\u00e7inde ileti\u015fim kurmak i\u00e7in kullanaca\u011f\u0131 bir \u00f6zel IP adresi atanacakt\u0131r.<\/p>\n<p><strong>\u00d6zel IP Adreslerinin \u00d6nemi:<\/strong><br \/>\n\u00d6zel IP adresleri, internet \u00fczerinden do\u011frudan eri\u015filemez. Sadece ayn\u0131 VPC a\u011f\u0131 i\u00e7indeki Droplet&#8217;ler birbirlerinin \u00f6zel IP adreslerini kullanarak ileti\u015fim kurabilir. Bu, uygulama sunucular\u0131n\u0131z\u0131n veritaban\u0131 sunucular\u0131n\u0131zla veya di\u011fer mikro hizmetlerle g\u00fcvenli bir \u015fekilde konu\u015fmas\u0131n\u0131 sa\u011flar, ancak bu ileti\u015fim d\u0131\u015f d\u00fcnyaya kapal\u0131d\u0131r. \u00d6rne\u011fin, web sunucunuzun veritaban\u0131na ba\u011flanmas\u0131 gerekti\u011finde, veritaban\u0131 sunucusunun \u00f6zel IP adresini kullanacakt\u0131r. Bu, veritaban\u0131 sunucusunun genel internete a\u00e7\u0131k bir portu olmamas\u0131 gerekti\u011fi anlam\u0131na gelir, bu da onun sald\u0131r\u0131 y\u00fczeyini neredeyse s\u0131f\u0131ra indirir. Bu yap\u0131land\u0131rma, bulut altyap\u0131n\u0131z\u0131n temel g\u00fcvenlik katman\u0131n\u0131 olu\u015fturur ve sonraki ad\u0131mlarda Bastion Host ile bu g\u00fcvenli\u011fi daha da peki\u015ftirece\u011fiz.<\/p>\n<h2>Bastion Host Droplet&#8217;i Ad\u0131m Ad\u0131m Nas\u0131l Kurulur?<\/h2>\n<p>Bastion Host, g\u00fcvenli a\u011f\u0131n\u0131z\u0131n tek giri\u015f noktas\u0131 olaca\u011f\u0131 i\u00e7in kurulumu ve yap\u0131land\u0131rmas\u0131 b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r. Bu Droplet&#8217;i do\u011fru bir \u015fekilde kurmak, di\u011fer \u00f6zel Droplet&#8217;lerinize giden yolu g\u00fcvenli hale getirecektir.<\/p>\n<p><strong>1. Droplet Olu\u015fturma:<\/strong><\/p>\n<p>*   <strong>Kontrol Paneline Giri\u015f:<\/strong> DigitalOcean kontrol panelinize giri\u015f yap\u0131n ve &#8220;Create&#8221; (Olu\u015ftur) men\u00fcs\u00fcnden &#8220;Droplets&#8221; (Dropletler) se\u00e7ene\u011fini se\u00e7in.<br \/>\n*   <strong>B\u00f6lge Se\u00e7imi:<\/strong> \u00d6zel a\u011f\u0131n\u0131z\u0131 olu\u015fturdu\u011funuz ayn\u0131 b\u00f6lgeyi se\u00e7in. Bu kritik bir ad\u0131md\u0131r, aksi takdirde Droplet&#8217;iniz \u00f6zel a\u011f\u0131n\u0131za ba\u011flanamaz.<br \/>\n*   <strong>\u0130\u015fletim Sistemi (Image) Se\u00e7imi:<\/strong> G\u00fcvenlik ve performans a\u00e7\u0131s\u0131ndan minimalist bir Linux da\u011f\u0131t\u0131m\u0131 tercih edin. Ubuntu 22.04 LTS veya Debian 11\/12 genellikle iyi se\u00e7eneklerdir. Bunlar geni\u015f topluluk deste\u011fine sahip ve g\u00fcvenli bir \u015fekilde yap\u0131land\u0131r\u0131labilirler.<br \/>\n*   <strong>Droplet Plan\u0131:<\/strong> Bastion Host&#8217;un \u00e7ok fazla kaynak t\u00fcketmesi beklenmez. En k\u00fc\u00e7\u00fck veya bir sonraki boyut olan &#8220;Basic&#8221; planlardan birini se\u00e7mek genellikle yeterlidir (\u00f6rn: 1GB RAM, 1vCPU).<br \/>\n*   <strong>Depolama:<\/strong> Varsay\u0131lan depolama boyutu genellikle yeterlidir.<br \/>\n*   <strong>Kimlik Do\u011frulama (Authentication):<\/strong> <strong>Kesinlikle SSH anahtarlar\u0131n\u0131 kullan\u0131n.<\/strong> Parola tabanl\u0131 kimlik do\u011frulamay\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131n. Daha \u00f6nce bir SSH anahtar\u0131 olu\u015fturmad\u0131ysan\u0131z, &#8220;New SSH Key&#8221; (Yeni SSH Anahtar\u0131) se\u00e7ene\u011fini kullanarak yeni bir anahtar olu\u015fturabilir veya mevcut anahtar\u0131n\u0131z\u0131 y\u00fckleyebilirsiniz. Yerel bilgisayar\u0131n\u0131zda bir SSH anahtar\u0131 olu\u015fturmak i\u00e7in \u015fu komutu kullanabilirsiniz:<\/p>\n<pre><code>\n    ssh-keygen -t rsa -b 4096 -C \"your_email@example.com\"\n    <\/code><\/pre>\n<p>    Bu komut, <code class=\"language-\">~\/.ssh\/id_rsa<\/code> (\u00f6zel anahtar) ve <code class=\"language-\">~\/.ssh\/id_rsa.pub<\/code> (genel anahtar) dosyalar\u0131n\u0131 olu\u015fturacakt\u0131r. <code class=\"language-\">id_rsa.pub<\/code> dosyas\u0131n\u0131n i\u00e7eri\u011fini DigitalOcean&#8217;a kopyalaman\u0131z gerekecektir.<br \/>\n*   <strong>VPC Network (\u00d6zel A\u011f):<\/strong> Daha \u00f6nce olu\u015fturdu\u011funuz \u00f6zel a\u011f\u0131n\u0131z\u0131 se\u00e7in (\u00f6rn: <code class=\"language-\">guvenli-ozel-ag<\/code>). Bu, Droplet&#8217;inizin \u00f6zel IP adresi almas\u0131n\u0131 sa\u011flayacakt\u0131r.<br \/>\n*   <strong>Ek Se\u00e7enekler:<\/strong> &#8220;Monitoring&#8221; (\u0130zleme) ve &#8220;IPv6&#8221; gibi se\u00e7enekleri etkinle\u015ftirebilirsiniz, ancak &#8220;User data&#8221; (Kullan\u0131c\u0131 verisi) veya &#8220;Backup&#8221; (Yedekleme) \u015fimdilik gerekli de\u011fildir.<br \/>\n*   <strong>Hostname (Ana Bilgisayar Ad\u0131):<\/strong> Droplet&#8217;inize a\u00e7\u0131klay\u0131c\u0131 bir isim verin (\u00f6rn: <code class=\"language-\">bastion-host<\/code>).<br \/>\n*   <strong>Olu\u015ftur:<\/strong> &#8220;Create Droplet&#8221; (Droplet Olu\u015ftur) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/p>\n<p><strong>2. \u0130lk G\u00fcvenlik Sertle\u015ftirmeleri:<\/strong><br \/>\nDroplet&#8217;iniz olu\u015fturulduktan sonra, ilk SSH ba\u011flant\u0131n\u0131z\u0131 kurun ve baz\u0131 temel g\u00fcvenlik ad\u0131mlar\u0131n\u0131 uygulay\u0131n.<\/p>\n<p>*   <strong>SSH ile Ba\u011flanma:<\/strong> Bastion Host&#8217;unuzun genel IP adresini kullanarak SSH ile ba\u011flan\u0131n.<\/p>\n<pre><code>\n    ssh root@<BASTION_HOST_GENEL_IP>\n    <\/code><\/pre>\n<p>*   <strong>Yeni Bir Kullan\u0131c\u0131 Olu\u015fturma:<\/strong> <code class=\"language-\">root<\/code> kullan\u0131c\u0131s\u0131 yerine, ayr\u0131cal\u0131kl\u0131 ancak g\u00fcnl\u00fck kullan\u0131m i\u00e7in yetkisi k\u0131s\u0131tl\u0131 yeni bir kullan\u0131c\u0131 olu\u015fturun.<\/p>\n<pre><code>\n    adduser <kullanici_adi>\n    usermod -aG sudo <kullanici_adi>\n    <\/code><\/pre>\n<p>*   <strong>SSH Anahtar\u0131n\u0131 Yeni Kullan\u0131c\u0131ya Kopyalama:<\/strong> Yeni kullan\u0131c\u0131n\u0131z\u0131n da SSH anahtar\u0131 ile giri\u015f yapabilmesi i\u00e7in genel anahtar\u0131n\u0131z\u0131 kopyalay\u0131n.<\/p>\n<pre><code>\n    su - <kullanici_adi>\n    mkdir -p ~\/.ssh\n    chmod 700 ~\/.ssh\n    cp \/root\/.ssh\/authorized_keys ~\/.ssh\/\n    chmod 600 ~\/.ssh\/authorized_keys\n    exit\n    <\/code><\/pre>\n<p>*   <strong>SSH Servisini Yap\u0131land\u0131rma (<code class=\"language-\">sshd_config<\/code>):<\/strong> SSH daemon&#8217;\u0131n\u0131n g\u00fcvenli\u011fini art\u0131r\u0131n.<\/p>\n<pre><code>\n    sudo nano \/etc\/ssh\/sshd_config\n    <\/code><\/pre>\n<p>    A\u015fa\u011f\u0131daki sat\u0131rlar\u0131 bulun ve de\u011ferlerini de\u011fi\u015ftirin (veya ekleyin):<br \/>\n    *   <code class=\"language-\">PermitRootLogin no<\/code> (root ile do\u011frudan giri\u015fi devre d\u0131\u015f\u0131 b\u0131rak\u0131r)<br \/>\n    *   <code class=\"language-\">PasswordAuthentication no<\/code> (parola ile giri\u015fi devre d\u0131\u015f\u0131 b\u0131rak\u0131r)<br \/>\n    *   <code class=\"language-\">ChallengeResponseAuthentication no<\/code><br \/>\n    *   <code class=\"language-\">UsePAM no<\/code> (baz\u0131 durumlarda parola kimlik do\u011frulamas\u0131n\u0131 tetikleyebilir)<br \/>\n    *   <code class=\"language-\">AllowUsers <kullanici_adi><\/code> (yaln\u0131zca belirli kullan\u0131c\u0131lar\u0131n SSH ile ba\u011flanmas\u0131na izin verir)<br \/>\n    *   <code class=\"language-\">Port 22<\/code> (iste\u011fe ba\u011fl\u0131 olarak farkl\u0131 bir port numaras\u0131 kullanabilirsiniz, ancak bulut g\u00fcvenlik duvar\u0131 bu portu y\u00f6netece\u011finden 22 genellikle kabul edilebilir)<br \/>\n    De\u011fi\u015fiklikleri kaydedin ve SSH servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code>\n    sudo systemctl restart ssh\n    <\/code><\/pre>\n<p>*   <strong>Firewall Kurulumu (UFW):<\/strong> Sunucu \u00fczerinde yerel bir g\u00fcvenlik duvar\u0131 (UFW) kurmak, DigitalOcean Cloud Firewall&#8217;a ek bir koruma katman\u0131 sa\u011flar.<\/p>\n<pre><code>\n    sudo apt update\n    sudo apt install ufw\n    sudo ufw allow ssh comment 'Allow SSH from Cloud Firewall'\n    sudo ufw enable\n    <\/code><\/pre>\n<p>    <strong>D\u0130KKAT:<\/strong> UFW&#8217;yi etkinle\u015ftirmeden \u00f6nce SSH eri\u015fiminizin oldu\u011fundan emin olun, aksi takdirde kendinizi sunucudan kilitleyebilirsiniz. Cloud Firewall&#8217;lar daha genel a\u011f seviyesinde \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in, bu UFW kural\u0131 daha \u00e7ok sunucu i\u00e7inden gelebilecek tehditlere kar\u015f\u0131 koruma sa\u011flar.<\/p>\n<p>Art\u0131k Bastion Host&#8217;unuz temel olarak kurulmu\u015f ve sertle\u015ftirilmi\u015f durumda. Bundan sonraki ad\u0131mlarda, bu Bastion Host&#8217;u kullanarak di\u011fer \u00f6zel Droplet&#8217;lerinize g\u00fcvenli bir \u015fekilde eri\u015fece\u011fiz.<\/p>\n<h2>Uygulama Droplet&#8217;ini G\u00fcvenli Bir \u015eekilde Nas\u0131l Konfig\u00fcre Edebiliriz?<\/h2>\n<p>Uygulama Droplet&#8217;leri, web sunucunuzu, veritaban\u0131n\u0131z\u0131, API&#8217;lerinizi veya di\u011fer kritik hizmetlerinizi bar\u0131nd\u0131racak sunuculard\u0131r. Bu Droplet&#8217;lerin en y\u00fcksek g\u00fcvenlik seviyesinde yap\u0131land\u0131r\u0131lmas\u0131, genel sald\u0131r\u0131 y\u00fczeyini minimuma indirmek i\u00e7in hayati \u00f6nem ta\u015f\u0131r. Temel prensip, bu Droplet&#8217;lerin do\u011frudan internete a\u00e7\u0131k olmamas\u0131, yaln\u0131zca Bastion Host \u00fczerinden veya \u00f6zel a\u011f i\u00e7indeki di\u011fer yetkili Droplet&#8217;ler taraf\u0131ndan eri\u015filebilir olmas\u0131d\u0131r.<\/p>\n<p><strong>1. Uygulama Droplet&#8217;ini Olu\u015fturma:<\/strong><\/p>\n<p>*   <strong>Kontrol Paneline Giri\u015f:<\/strong> DigitalOcean kontrol panelinize gidin ve &#8220;Create&#8221; (Olu\u015ftur) men\u00fcs\u00fcnden &#8220;Droplets&#8221; (Dropletler) se\u00e7ene\u011fini se\u00e7in.<br \/>\n*   <strong>B\u00f6lge Se\u00e7imi:<\/strong> Bastion Host&#8217;unuzu ve \u00f6zel a\u011f\u0131n\u0131z\u0131 olu\u015fturdu\u011funuz ayn\u0131 b\u00f6lgeyi se\u00e7in. Bu, Droplet&#8217;inizin \u00f6zel a\u011fa ba\u011flanabilmesi i\u00e7in zorunludur.<br \/>\n*   <strong>\u0130\u015fletim Sistemi (Image) Se\u00e7imi:<\/strong> Uygulaman\u0131z\u0131n gereksinimlerine uygun bir i\u015fletim sistemi se\u00e7in (\u00f6rn: Ubuntu 22.04 LTS, CentOS Stream 9).<br \/>\n*   <strong>Droplet Plan\u0131:<\/strong> Uygulaman\u0131z\u0131n kaynak ihtiya\u00e7lar\u0131na g\u00f6re uygun bir plan se\u00e7in. Web sunucusu i\u00e7in daha b\u00fcy\u00fck bir plan, veritaban\u0131 i\u00e7in daha da b\u00fcy\u00fck bir plan gerekebilir.<br \/>\n*   <strong>Depolama:<\/strong> Uygulaman\u0131z\u0131n veri depolama gereksinimlerine g\u00f6re depolama boyutunu ayarlay\u0131n.<br \/>\n*   <strong>Kimlik Do\u011frulama (Authentication):<\/strong> <strong>Yine SSH anahtarlar\u0131n\u0131 kullan\u0131n.<\/strong> Bastion Host i\u00e7in kulland\u0131\u011f\u0131n\u0131z ayn\u0131 SSH anahtar\u0131n\u0131 veya farkl\u0131 bir anahtar \u00e7iftini buraya da ekleyin. G\u00fcvenlik en iyi uygulamas\u0131 olarak, her sunucu i\u00e7in ayr\u0131 bir SSH anahtar \u00e7ifti kullanmak daha iyidir, ancak bu makalenin kapsam\u0131 ve basitli\u011fi i\u00e7in ayn\u0131 anahtar\u0131 kullanabiliriz.<br \/>\n*   <strong>VPC Network (\u00d6zel A\u011f):<\/strong> <strong>Bu en kritik ad\u0131md\u0131r.<\/strong> Daha \u00f6nce olu\u015fturdu\u011funuz \u00f6zel a\u011f\u0131n\u0131z\u0131 se\u00e7in (\u00f6rn: <code class=\"language-\">guvenli-ozel-ag<\/code>). Bu sayede Droplet&#8217;iniz \u00f6zel bir IP adresi alacak ve genel internetten izole olacakt\u0131r.<br \/>\n*   <strong>Genel IP Adresi:<\/strong> Uygulama Droplet&#8217;inizin genel IP adresi olup olmayaca\u011f\u0131n\u0131 dikkatlice de\u011ferlendirin.<br \/>\n    *   <strong>Veritaban\u0131 sunucular\u0131 veya arka u\u00e7 API&#8217;leri gibi do\u011frudan internete maruz kalmamas\u0131 gereken sunucular i\u00e7in &#8220;Public network&#8221; (Genel a\u011f) se\u00e7ene\u011fini i\u015faretlemeyin.<\/strong> Bu, Droplet&#8217;inize genel bir IP adresi atanmayaca\u011f\u0131 ve sadece \u00f6zel a\u011f\u0131n\u0131zdan eri\u015filebilece\u011fi anlam\u0131na gelir. Bu, g\u00fcvenlik a\u00e7\u0131s\u0131ndan en ideal yakla\u015f\u0131md\u0131r.<br \/>\n    *   E\u011fer bir web sunucusu (Nginx, Apache) kuruyorsan\u0131z ve bu sunucunun do\u011frudan internetten eri\u015filmesi gerekiyorsa (\u00f6rne\u011fin, Bastion Host \u00fczerinden bir ters proxy kurmak yerine), genel IP adresi atayabilirsiniz. Ancak bu durumda, bulut g\u00fcvenlik duvarlar\u0131 ile bu Droplet&#8217;i \u00e7ok s\u0131k\u0131 bir \u015fekilde koruman\u0131z gerekecektir. <strong>G\u00fcvenlik en iyi uygulamas\u0131 olarak, uygulama Droplet&#8217;lerinize genel IP atamaktan ka\u00e7\u0131n\u0131n ve t\u00fcm d\u0131\u015f eri\u015fimi Bastion Host \u00fczerinden y\u00f6nlendirin.<\/strong><br \/>\n*   <strong>Hostname (Ana Bilgisayar Ad\u0131):<\/strong> Droplet&#8217;inize a\u00e7\u0131klay\u0131c\u0131 bir isim verin (\u00f6rn: <code class=\"language-\">web-app-server<\/code> veya <code class=\"language-\">database-server<\/code>).<br \/>\n*   <strong>Olu\u015ftur:<\/strong> &#8220;Create Droplet&#8221; (Droplet Olu\u015ftur) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/p>\n<p><strong>2. \u0130lk G\u00fcvenlik Sertle\u015ftirmeleri ve Yap\u0131land\u0131rma:<\/strong><br \/>\nUygulama Droplet&#8217;iniz olu\u015fturulduktan sonra, Bastion Host \u00fczerinden bu Droplet&#8217;e ba\u011flan\u0131n ve temel g\u00fcvenlik ad\u0131mlar\u0131n\u0131 uygulay\u0131n.<\/p>\n<p>*   <strong>Bastion Host \u00dczerinden Ba\u011flanma:<\/strong> Uygulama Droplet&#8217;inizin genel bir IP adresi yoksa, ona yaln\u0131zca Bastion Host \u00fczerinden eri\u015febilirsiniz. Bastion Host&#8217;a zaten ba\u011fl\u0131 oldu\u011funuzu varsayarak, uygulama Droplet&#8217;inizin \u00f6zel IP adresini kullanarak ba\u011flan\u0131n:<\/p>\n<pre><code>\n    ssh <kullanici_adi>@<UYGULAMA_DROPLET_OZEL_IP>\n    <\/code><\/pre>\n<p>    E\u011fer Bastion Host&#8217;a hen\u00fcz ba\u011fl\u0131 de\u011filseniz, \u00f6nce Bastion Host&#8217;a ba\u011flan\u0131n, ard\u0131ndan yukar\u0131daki komutu kullan\u0131n.<br \/>\n*   <strong>Yeni Bir Kullan\u0131c\u0131 Olu\u015fturma ve SSH Yap\u0131land\u0131rmas\u0131:<\/strong> Bastion Host&#8217;ta yapt\u0131\u011f\u0131n\u0131z gibi, <code class=\"language-\">root<\/code> kullan\u0131c\u0131s\u0131 yerine yeni bir kullan\u0131c\u0131 olu\u015fturun ve SSH anahtar\u0131n\u0131z\u0131 bu kullan\u0131c\u0131ya kopyalay\u0131n. <code class=\"language-\">sshd_config<\/code> dosyas\u0131nda <code class=\"language-\">PermitRootLogin no<\/code>, <code class=\"language-\">PasswordAuthentication no<\/code> gibi ayarlar\u0131 uygulay\u0131n.<\/p>\n<pre><code>\n    sudo adduser <kullanici_adi>\n    sudo usermod -aG sudo <kullanici_adi>\n    # Bastion Host'tan geldi\u011finiz i\u00e7in, SSH anahtar\u0131n\u0131z zaten Bastion Host'ta olmal\u0131.\n    # E\u011fer ayn\u0131 anahtar\u0131 kullan\u0131yorsan\u0131z, buraya da kopyalaman\u0131z gerekecek.\n    # Veya DigitalOcean'da Droplet'i olu\u015ftururken anahtar\u0131 zaten eklediniz.\n    sudo nano \/etc\/ssh\/sshd_config\n    # ... gerekli de\u011fi\u015fiklikleri yap\u0131n ...\n    sudo systemctl restart ssh\n    <\/code><\/pre>\n<p>*   <strong>UFW ile Yerel G\u00fcvenlik Duvar\u0131:<\/strong> Uygulama Droplet&#8217;inizde de UFW&#8217;yi etkinle\u015ftirin. Ancak bu sefer, SSH eri\u015fimine yaln\u0131zca \u00f6zel a\u011fdan (yani Bastion Host&#8217;tan) izin verin. Ayr\u0131ca, uygulaman\u0131z\u0131n ihtiya\u00e7 duydu\u011fu portlar\u0131 da yaln\u0131zca \u00f6zel a\u011fdan gelen trafi\u011fe a\u00e7\u0131n.<\/p>\n<pre><code>\n    sudo apt update\n    sudo apt install ufw\n    sudo ufw default deny incoming\n    sudo ufw default allow outgoing\n    # SSH eri\u015fimine yaln\u0131zca \u00f6zel a\u011f\u0131n\u0131zdan (\u00f6rne\u011fin 10.10.0.0\/20) izin verin\n    sudo ufw allow from <OZEL_AG_IP_ARALIGI> to any port 22 proto tcp comment 'Allow SSH from private network'\n    # Uygulama portunuza (\u00f6rn: 8080) yaln\u0131zca \u00f6zel a\u011fdan gelen trafi\u011fe izin verin\n    sudo ufw allow from <OZEL_AG_IP_ARALIGI> to any port 8080 proto tcp comment 'Allow app traffic from private network'\n    sudo ufw enable\n    <\/code><\/pre>\n<p>    <code class=\"language-\"><OZEL_AG_IP_ARALIGI><\/code> yerine, DigitalOcean VPC a\u011f\u0131n\u0131z\u0131 olu\u015ftururken belirledi\u011finiz IP aral\u0131\u011f\u0131n\u0131 (\u00f6rn: <code class=\"language-\">10.10.0.0\/20<\/code>) kullan\u0131n.<\/p>\n<p>Bu ad\u0131mlarla uygulama Droplet&#8217;iniz, genel internetten tamamen izole edilmi\u015f ve yaln\u0131zca \u00f6zel a\u011f\u0131n\u0131zdan, \u00f6zellikle de Bastion Host \u00fczerinden eri\u015filebilir hale gelmi\u015f olacakt\u0131r. Bu, altyap\u0131n\u0131z\u0131n g\u00fcvenlik duru\u015funu \u00f6nemli \u00f6l\u00e7\u00fcde g\u00fc\u00e7lendirir.<\/p>\n<h2>Bulut G\u00fcvenlik Duvarlar\u0131 ile Eri\u015fim Politikalar\u0131 Nas\u0131l Tan\u0131mlan\u0131r?<\/h2>\n<p>DigitalOcean Cloud Firewalls, Droplet&#8217;lerinizin gelen ve giden trafi\u011fini kontrol etmenizi sa\u011flayan g\u00fc\u00e7l\u00fc bir g\u00fcvenlik arac\u0131d\u0131r. Bu g\u00fcvenlik duvarlar\u0131, Droplet&#8217;lerinize ula\u015fan veya Droplet&#8217;lerinizden \u00e7\u0131kan trafi\u011fi, belirledi\u011finiz kurallara g\u00f6re filtreler. Bu sayede, Bastion Host&#8217;unuza sadece belirli IP adreslerinden eri\u015fim sa\u011flarken, uygulama Droplet&#8217;lerinizin sadece Bastion Host&#8217;tan veya \u00f6zel a\u011fdan eri\u015filebilir olmas\u0131n\u0131 garanti alt\u0131na alabilirsiniz.<\/p>\n<p><strong>1. G\u00fcvenlik Duvar\u0131 Olu\u015fturma:<\/strong><\/p>\n<p>*   <strong>Kontrol Paneline Giri\u015f:<\/strong> DigitalOcean kontrol panelinize giri\u015f yap\u0131n.<br \/>\n*   <strong>Networking (A\u011f Olu\u015fturma):<\/strong> Sol men\u00fcden &#8220;Networking&#8221; se\u00e7ene\u011fine t\u0131klay\u0131n.<br \/>\n*   <strong>Firewalls (G\u00fcvenlik Duvarlar\u0131):<\/strong> &#8220;Firewalls&#8221; sekmesine gidin ve &#8220;Create Firewall&#8221; (G\u00fcvenlik Duvar\u0131 Olu\u015ftur) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/p>\n<p><strong>2. Bastion Host \u0130\u00e7in G\u00fcvenlik Duvar\u0131 Kurallar\u0131:<\/strong><br \/>\nBastion Host, d\u0131\u015f d\u00fcnyadan eri\u015filebilir tek Droplet olaca\u011f\u0131 i\u00e7in, bu Droplet&#8217;e uygulayaca\u011f\u0131m\u0131z g\u00fcvenlik duvar\u0131 kurallar\u0131 son derece s\u0131k\u0131 olmal\u0131d\u0131r.<\/p>\n<p>*   <strong>\u0130sim:<\/strong> G\u00fcvenlik duvar\u0131n\u0131za a\u00e7\u0131klay\u0131c\u0131 bir isim verin (\u00f6rn: <code class=\"language-\">bastion-firewall<\/code>).<br \/>\n*   <strong>Gelen Kurallar (Inbound Rules):<\/strong><br \/>\n    *   <strong>SSH (Port 22):<\/strong> Bu en kritik kurald\u0131r. SSH portuna (22) yaln\u0131zca g\u00fcvendi\u011finiz IP adreslerinden (eviniz, ofisiniz veya VPN sunucunuzun statik IP adresi) eri\u015fime izin verin. &#8220;Source&#8221; (Kaynak) k\u0131sm\u0131na &#8220;Custom IP&#8221; (\u00d6zel IP) se\u00e7ene\u011fini belirleyerek kendi IP adresinizi veya bir IP aral\u0131\u011f\u0131n\u0131 (CIDR format\u0131nda, \u00f6rn: <code class=\"language-\">85.234.123.45\/32<\/code>) ekleyin. <strong>&#8220;All IPv4&#8221; veya &#8220;All IPv6&#8221; se\u00e7ene\u011fini ASLA kullanmay\u0131n.<\/strong><br \/>\n        *   Protokol: TCP<br \/>\n        *   Port Range: 22<br \/>\n        *   Source: Custom IP (kendi IP adresiniz)<br \/>\n    *   <strong>Ping (ICMP):<\/strong> \u0130ste\u011fe ba\u011fl\u0131 olarak, sunucunuzun eri\u015filebilirli\u011fini kontrol etmek i\u00e7in ICMP (ping) trafi\u011fine izin verebilirsiniz. Ancak g\u00fcvenlik a\u00e7\u0131s\u0131ndan bu da k\u0131s\u0131tlanabilir.<br \/>\n        *   Protokol: ICMP<br \/>\n        *   Source: Custom IP (kendi IP adresiniz) veya iste\u011fe ba\u011fl\u0131 olarak &#8220;All IPv4&#8221; (daha az g\u00fcvenli)<br \/>\n*   <strong>Giden Kurallar (Outbound Rules):<\/strong><br \/>\n    *   Bastion Host&#8217;un internete eri\u015fmesi gerekece\u011finden (paket g\u00fcncellemeleri, DNS sorgular\u0131 vb. i\u00e7in), genellikle t\u00fcm giden trafi\u011fe izin verilir.<br \/>\n        *   Protokol: All TCP, All UDP, All ICMP<br \/>\n        *   Destination: All IPv4, All IPv6<br \/>\n*   <strong>Droplet&#8217;lere Uygula:<\/strong> &#8220;Apply to Droplets&#8221; (Droplet&#8217;lere Uygula) b\u00f6l\u00fcm\u00fcnde, Bastion Host Droplet&#8217;inizi se\u00e7in.<\/p>\n<p><strong>3. Uygulama Droplet&#8217;leri \u0130\u00e7in G\u00fcvenlik Duvar\u0131 Kurallar\u0131:<\/strong><br \/>\nUygulama Droplet&#8217;leriniz, genel internetten tamamen izole edilmelidir. Eri\u015fim sadece \u00f6zel a\u011f \u00fczerinden veya Bastion Host taraf\u0131ndan sa\u011flanmal\u0131d\u0131r.<\/p>\n<p>*   <strong>\u0130sim:<\/strong> G\u00fcvenlik duvar\u0131n\u0131za a\u00e7\u0131klay\u0131c\u0131 bir isim verin (\u00f6rn: <code class=\"language-\">app-firewall<\/code>).<br \/>\n*   <strong>Gelen Kurallar (Inbound Rules):<\/strong><br \/>\n    *   <strong>SSH (Port 22):<\/strong> SSH eri\u015fimine yaln\u0131zca Bastion Host&#8217;unuzun \u00f6zel IP adresinden izin verin. Kaynak olarak &#8220;Droplet&#8221; se\u00e7ene\u011fini belirleyin ve Bastion Host Droplet&#8217;inizi se\u00e7in. Bu, DigitalOcean&#8217;\u0131n Bastion Host&#8217;unuzun \u00f6zel IP adresini otomatik olarak kaynak olarak kullanmas\u0131n\u0131 sa\u011flar.<br \/>\n        *   Protokol: TCP<br \/>\n        *   Port Range: 22<br \/>\n        *   Source: Droplet (Bastion Host&#8217;unuzu se\u00e7in)<br \/>\n    *   <strong>Uygulama Portlar\u0131:<\/strong> Uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 portlara (\u00f6rn: 80, 443, 8080, 3306) yaln\u0131zca \u00f6zel a\u011f\u0131n\u0131zdaki di\u011fer Droplet&#8217;lerden veya Bastion Host&#8217;tan eri\u015fime izin verin.<br \/>\n        *   <strong>Web Sunucusu (HTTP\/S &#8211; 80, 443):<\/strong> E\u011fer web sunucunuz (\u00f6rn: Nginx reverse proxy) internete a\u00e7\u0131k olacaksa, bu portlara &#8220;All IPv4&#8221; veya &#8220;Load Balancer&#8221; gibi kaynaklardan izin verebilirsiniz. Ancak bu, Droplet&#8217;inizin do\u011frudan internete a\u00e7\u0131k olaca\u011f\u0131 anlam\u0131na gelir. <strong>Daha g\u00fcvenli bir yakla\u015f\u0131m, bu portlara yaln\u0131zca \u00f6zel a\u011fdaki bir Load Balancer veya di\u011fer uygulama Droplet&#8217;lerinden izin vermektir.<\/strong><br \/>\n        *   <strong>Veritaban\u0131 (MySQL &#8211; 3306, PostgreSQL &#8211; 5432):<\/strong> Bu portlara yaln\u0131zca uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 Droplet&#8217;lerin \u00f6zel IP adreslerinden veya kaynak olarak &#8220;VPC Network&#8221; (VPC A\u011f\u0131) se\u00e7ene\u011fiyle \u00f6zel a\u011f\u0131n\u0131z\u0131n tamam\u0131ndan izin verin.<br \/>\n        *   Protokol: TCP<br \/>\n        *   Port Range: 3306 (veya uygulaman\u0131z\u0131n portu)<br \/>\n        *   Source: Droplet (uygulama sunucusu Droplet&#8217;inizi se\u00e7in) veya VPC Network (\u00f6zel a\u011f\u0131n\u0131z)<br \/>\n*   <strong>Giden Kurallar (Outbound Rules):<\/strong><br \/>\n    *   Uygulama Droplet&#8217;lerinizin d\u0131\u015far\u0131ya (internet) ba\u011flanmas\u0131 gerekip gerekmedi\u011fini de\u011ferlendirin. Genellikle, yaz\u0131l\u0131m g\u00fcncellemeleri, d\u0131\u015f API&#8217;lere eri\u015fim veya e-posta g\u00f6nderme gibi durumlar i\u00e7in giden trafi\u011fe izin verilir. Ancak, &#8220;Principle of Least Privilege&#8221; (En Az Ayr\u0131cal\u0131k Prensibi) gere\u011fi, yaln\u0131zca gerekli olan portlara ve hedeflere izin vermek en iyisidir.<br \/>\n        *   Protokol: All TCP, All UDP, All ICMP (genel olarak izin verilebilir, ancak k\u0131s\u0131tlanabilir)<br \/>\n        *   Destination: All IPv4, All IPv6<br \/>\n*   <strong>Droplet&#8217;lere Uygula:<\/strong> &#8220;Apply to Droplets&#8221; b\u00f6l\u00fcm\u00fcnde, ilgili uygulama Droplet&#8217;lerinizi se\u00e7in.<\/p>\n<p>Bu g\u00fcvenlik duvar\u0131 yap\u0131land\u0131rmalar\u0131, altyap\u0131n\u0131z\u0131n her katman\u0131nda s\u0131k\u0131 bir eri\u015fim kontrol\u00fc sa\u011flayarak, yetkisiz eri\u015fimi minimuma indirecek ve siber sald\u0131r\u0131lara kar\u015f\u0131 \u00f6nemli bir savunma hatt\u0131 olu\u015fturacakt\u0131r.<\/p>\n<h2>Bastion Host \u00dczerinden \u00d6zel Droplet&#8217;e Nas\u0131l Ba\u011flan\u0131l\u0131r?<\/h2>\n<p>Bastion Host&#8217;un temel amac\u0131, \u00f6zel a\u011f\u0131n\u0131zdaki di\u011fer Droplet&#8217;lere g\u00fcvenli ve dolayl\u0131 bir eri\u015fim sa\u011flamakt\u0131r. Do\u011frudan SSH ba\u011flant\u0131lar\u0131n\u0131 engelledi\u011fimiz i\u00e7in, Bastion Host \u00fczerinden bir &#8220;atlama&#8221; yaparak hedef Droplet&#8217;imize ula\u015fmam\u0131z gerekir. Bu i\u015flemi ger\u00e7ekle\u015ftirmenin birka\u00e7 yolu vard\u0131r, ancak en yayg\u0131n ve kullan\u0131\u015fl\u0131 y\u00f6ntem SSH ProxyCommand veya <code class=\"language-\">ProxyJump<\/code> \u00f6zelli\u011fini kullanmakt\u0131r.<\/p>\n<p><strong>1. SSH ProxyJump Kullan\u0131m\u0131 (\u00d6nerilen Y\u00f6ntem):<\/strong><br \/>\nOpenSSH 7.3 ve sonraki s\u00fcr\u00fcmleriyle birlikte gelen <code class=\"language-\">ProxyJump<\/code> (veya <code class=\"language-\">-J<\/code> bayra\u011f\u0131), Bastion Host \u00fczerinden atlama yapmay\u0131 olduk\u00e7a basitle\u015ftirir.<\/p>\n<p>*   <strong>Tek Seferlik Ba\u011flant\u0131:<\/strong><br \/>\n    Yerel makinenizden do\u011frudan uygulama Droplet&#8217;inize ba\u011flanmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>\n    ssh -J <bastion_kullanici>@<BASTION_HOST_GENEL_IP> <uygulama_kullanici>@<UYGULAMA_DROPLET_OZEL_IP>\n    <\/code><\/pre>\n<p>    \u00d6rnek:<\/p>\n<pre><code>\n    ssh -J myuser@192.0.2.10 appuser@10.10.0.5\n    <\/code><\/pre>\n<p>    Bu komut, \u00f6nce yerel makinenizden <code class=\"language-\">192.0.2.10<\/code> adresindeki Bastion Host&#8217;a <code class=\"language-\">myuser<\/code> olarak ba\u011flan\u0131r ve ard\u0131ndan bu ba\u011flant\u0131 \u00fczerinden <code class=\"language-\">10.10.0.5<\/code> adresindeki uygulama Droplet&#8217;ine <code class=\"language-\">appuser<\/code> olarak ba\u011flan\u0131r.<\/p>\n<p>*   <strong>SSH Yap\u0131land\u0131rma Dosyas\u0131 (<code class=\"language-\">~\/.ssh\/config<\/code>) ile Kal\u0131c\u0131 Ayar:<\/strong><br \/>\n    Her seferinde uzun komutlar yazmak yerine, SSH yap\u0131land\u0131rma dosyan\u0131z\u0131 kullanarak bu ba\u011flant\u0131y\u0131 basitle\u015ftirebilirsiniz. <code class=\"language-\">~\/.ssh\/config<\/code> dosyan\u0131z\u0131 a\u00e7\u0131n (veya olu\u015fturun) ve a\u015fa\u011f\u0131daki girdileri ekleyin:<\/p>\n<pre><code>\n    Host bastion\n        Hostname <BASTION_HOST_GENEL_IP>\n        User <bastion_kullanici>\n        IdentityFile ~\/.ssh\/id_rsa # Bastion Host'a ba\u011flanmak i\u00e7in kulland\u0131\u011f\u0131n\u0131z anahtar\n\n    Host app-server\n        Hostname <UYGULAMA_DROPLET_OZEL_IP>\n        User <uygulama_kullanici>\n        ProxyJump bastion\n        IdentityFile ~\/.ssh\/id_rsa # Uygulama Droplet'ine ba\u011flanmak i\u00e7in kulland\u0131\u011f\u0131n\u0131z anahtar\n    <\/code><\/pre>\n<p>    <code class=\"language-\"><BASTION_HOST_GENEL_IP><\/code>, <code class=\"language-\"><UYGULAMA_DROPLET_OZEL_IP><\/code>, <code class=\"language-\"><bastion_kullanici><\/code>, <code class=\"language-\"><uygulama_kullanici><\/code> ve <code class=\"language-\">~\/.ssh\/id_rsa<\/code> k\u0131s\u0131mlar\u0131n\u0131 kendi bilgilerinizle de\u011fi\u015ftirin. E\u011fer farkl\u0131 SSH anahtarlar\u0131 kullan\u0131yorsan\u0131z, <code class=\"language-\">IdentityFile<\/code> yollar\u0131n\u0131 g\u00fcncelleyin.<\/p>\n<p>    Bu yap\u0131land\u0131rmay\u0131 yapt\u0131ktan sonra, uygulama Droplet&#8217;inize ba\u011flanmak i\u00e7in tek yapman\u0131z gereken:<\/p>\n<pre><code>\n    ssh app-server\n    <\/code><\/pre>\n<p>    Bu, SSH istemcinizin otomatik olarak Bastion Host \u00fczerinden atlama yaparak hedef Droplet&#8217;e ba\u011flanmas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p>\n<p><strong>2. SSH Agent Forwarding (\u0130leri D\u00fczey Kullan\u0131m):<\/strong><br \/>\nE\u011fer Bastion Host&#8217;a ba\u011fland\u0131ktan sonra oradan ba\u015fka bir sunucuya daha ba\u011flanman\u0131z gerekiyorsa ve her seferinde anahtar\u0131n\u0131z\u0131 Bastion Host&#8217;a kopyalamak istemiyorsan\u0131z, SSH Agent Forwarding kullanabilirsiniz. Bu, yerel makinenizdeki SSH anahtar\u0131n\u0131n, Bastion Host \u00fczerinden hedef Droplet&#8217;e iletilmesini sa\u011flar.<\/p>\n<p>*   <strong><code class=\"language-\">~\/.ssh\/config<\/code> Dosyas\u0131nda:<\/strong><\/p>\n<pre><code>\n    Host bastion\n        Hostname <BASTION_HOST_GENEL_IP>\n        User <bastion_kullanici>\n        IdentityFile ~\/.ssh\/id_rsa\n        ForwardAgent yes # Bu sat\u0131r\u0131 ekleyin\n\n    Host app-server\n        Hostname <UYGULAMA_DROPLET_OZEL_IP>\n        User <uygulama_kullanici>\n        ProxyJump bastion\n        IdentityFile ~\/.ssh\/id_rsa\n    <\/code><\/pre>\n<p>*   <strong>Kullan\u0131m:<\/strong><br \/>\n    1.  Yerel makinenizde SSH agent&#8217;\u0131n\u0131z\u0131 ba\u015flat\u0131n ve anahtar\u0131n\u0131z\u0131 ekleyin:<\/p>\n<pre><code>\n        eval \"$(ssh-agent -s)\"\n        ssh-add ~\/.ssh\/id_rsa\n        <\/code><\/pre>\n<p>    2.  Ard\u0131ndan <code class=\"language-\">ssh app-server<\/code> komutuyla ba\u011flan\u0131n. Bastion Host \u00fczerinden ge\u00e7erken, yerel anahtar\u0131n\u0131z otomatik olarak kullan\u0131lacakt\u0131r.<br \/>\n    <strong>Dikkat:<\/strong> <code class=\"language-\">ForwardAgent<\/code> kullanmak, Bastion Host&#8217;un ele ge\u00e7irilmesi durumunda yerel anahtar\u0131n\u0131z\u0131n da risk alt\u0131na girebilece\u011fi anlam\u0131na gelir. Bu nedenle, Bastion Host&#8217;un g\u00fcvenli\u011fine azami \u00f6zen g\u00f6sterilmelidir. Yaln\u0131zca kesinlikle gerekti\u011finde kullan\u0131n.<\/p>\n<p>Bu ba\u011flant\u0131 y\u00f6ntemleri, \u00f6zel Droplet&#8217;lerinize g\u00fcvenli ve denetlenebilir bir \u015fekilde eri\u015fim sa\u011flaman\u0131n temelini olu\u015fturur. Bu sayede, sunucular\u0131n\u0131z\u0131n do\u011frudan internete maruz kalmas\u0131n\u0131 engellerken, y\u00f6netim ve bak\u0131m i\u015flemlerinizi kolayca ger\u00e7ekle\u015ftirebilirsiniz.<\/p>\n<h2>Geli\u015fmi\u015f G\u00fcvenlik \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar<\/h2>\n<p>Temel Bastion Host ve \u00f6zel Droplet kurulumu, bulut g\u00fcvenli\u011finiz i\u00e7in harika bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Ancak siber g\u00fcvenlik s\u00fcrekli geli\u015fen bir alan oldu\u011fundan, altyap\u0131n\u0131z\u0131 daha da g\u00fc\u00e7lendirmek i\u00e7in ileri d\u00fczey ipu\u00e7lar\u0131n\u0131 ve en iyi uygulamalar\u0131 benimsemek kritik \u00f6neme sahiptir.<\/p>\n<p>*   <strong>Ephemeral (Ge\u00e7ici) Bastion Host&#8217;lar:<\/strong><br \/>\n    G\u00fcvenli\u011fi daha da art\u0131rmak i\u00e7in, Bastion Host&#8217;unuzu yaln\u0131zca gerekti\u011finde ba\u015flat\u0131p i\u015finiz bitti\u011finde kapatmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz. Bu, sald\u0131r\u0131 y\u00fczeyini daha da azalt\u0131r, \u00e7\u00fcnk\u00fc Bastion Host aktif olmad\u0131\u011f\u0131nda internetten eri\u015filemez. DigitalOcean API&#8217;leri veya otomasyon ara\u00e7lar\u0131 (Terraform, Ansible) ile bu s\u00fcreci otomatik hale getirebilirsiniz. \u00d6rne\u011fin, y\u00f6netim i\u015flemleri i\u00e7in bir script \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda Bastion Host&#8217;u ba\u015flatan, i\u015finiz bitince kapatan bir mekanizma kurabilirsiniz.<\/p>\n<pre><code>\n    # DigitalOcean CLI ile Droplet'i ba\u015flatma\n    doctl compute droplet power-on <BASTION_HOST_ID_VEYA_ADI>\n\n    # \u0130\u015fler bitince Droplet'i kapatma\n    doctl compute droplet power-off <BASTION_HOST_ID_VEYA_ADI>\n    <\/code><\/pre>\n<p>    Bu yakla\u015f\u0131m, maliyetleri de d\u00fc\u015f\u00fcrebilir, \u00e7\u00fcnk\u00fc Droplet yaln\u0131zca kullan\u0131mda oldu\u011funda \u00fccretlendirilir.<\/p>\n<p>*   <strong>\u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA):<\/strong><br \/>\n    Bastion Host&#8217;unuza SSH ile ba\u011flan\u0131rken MFA kullanmak, kimlik bilgileri \u00e7al\u0131nsa bile yetkisiz eri\u015fimi engellemenin en etkili yollar\u0131ndan biridir. Google Authenticator veya benzeri TOTP (Time-based One-Time Password) uygulamalar\u0131 ile SSH ba\u011flant\u0131lar\u0131n\u0131za ikinci bir g\u00fcvenlik katman\u0131 ekleyebilirsiniz. Bu, genellikle PAM (Pluggable Authentication Modules) mod\u00fclleri arac\u0131l\u0131\u011f\u0131yla yap\u0131land\u0131r\u0131l\u0131r.<\/p>\n<pre><code>\n    # Ubuntu'da Google Authenticator kurulumu\n    sudo apt install libpam-google-authenticator\n    google-authenticator # Kurulum sihirbaz\u0131n\u0131 ba\u015flat\u0131r\n    <\/code><\/pre>\n<p>    Ard\u0131ndan <code class=\"language-\">sshd_config<\/code> dosyas\u0131nda <code class=\"language-\">ChallengeResponseAuthentication yes<\/code> ve <code class=\"language-\">\/etc\/pam.d\/sshd<\/code> dosyas\u0131nda <code class=\"language-\">auth required pam_google_authenticator.so<\/code> gibi d\u00fczenlemeler yapman\u0131z gerekebilir.<\/p>\n<p>*   <strong>Audit Logging ve \u0130zleme:<\/strong><br \/>\n    T\u00fcm sunucular\u0131n\u0131zda (\u00f6zellikle Bastion Host&#8217;ta) kapsaml\u0131 denetim kay\u0131tlar\u0131 tutun. Kimin ne zaman ba\u011fland\u0131\u011f\u0131n\u0131, hangi komutlar\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131 ve hangi dosyalara eri\u015fti\u011fini izleyin. Syslog, ELK Stack (Elasticsearch, Logstash, Kibana) veya di\u011fer merkezi loglama \u00e7\u00f6z\u00fcmlerini kullanarak bu loglar\u0131 toplay\u0131n ve analiz edin. Anormal aktiviteler i\u00e7in uyar\u0131lar ayarlay\u0131n. DigitalOcean Monitoring de Droplet&#8217;lerinizin kaynak kullan\u0131m\u0131n\u0131 izlemek i\u00e7in faydal\u0131d\u0131r.<\/p>\n<p>*   <strong>D\u00fczenli G\u00fcvenlik G\u00fcncellemeleri:<\/strong><br \/>\n    T\u00fcm Droplet&#8217;lerinizdeki i\u015fletim sistemlerini ve y\u00fckl\u00fc yaz\u0131l\u0131mlar\u0131 d\u00fczenli olarak g\u00fcncel tutun. G\u00fcvenlik yamalar\u0131n\u0131 zaman\u0131nda uygulamak, bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n istismar edilmesini \u00f6nler. Otomatik g\u00fcncelleme ara\u00e7lar\u0131 (\u00f6rn: <code class=\"language-\">unattended-upgrades<\/code> Ubuntu&#8217;da) kullanmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz, ancak kritik sistemlerde dikkatli olun ve g\u00fcncellemeleri test etmeden uygulamay\u0131n.<\/p>\n<pre><code>\n    sudo apt update && sudo apt upgrade -y\n    <\/code><\/pre>\n<p>*   <strong>En Az Ayr\u0131cal\u0131k Prensibi (Principle of Least Privilege):<\/strong><br \/>\n    Kullan\u0131c\u0131lara ve hizmetlere yaln\u0131zca i\u015flerini yapmak i\u00e7in kesinlikle gerekli olan en d\u00fc\u015f\u00fck ayr\u0131cal\u0131klar\u0131 verin. <code class=\"language-\">root<\/code> kullan\u0131c\u0131s\u0131n\u0131n do\u011frudan kullan\u0131m\u0131n\u0131 k\u0131s\u0131tlay\u0131n. <code class=\"language-\">sudo<\/code> yetkilerini yaln\u0131zca belirli komutlar veya uygulamalar i\u00e7in yap\u0131land\u0131r\u0131n. Uygulamalar\u0131n\u0131z\u0131, \u00f6zel bir kullan\u0131c\u0131 alt\u0131nda ve yaln\u0131zca ihtiya\u00e7 duyduklar\u0131 kaynaklara eri\u015febilecek \u015fekilde \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n<p>*   <strong>G\u00fcvenlik Taramalar\u0131 ve Penetrasyon Testleri:<\/strong><br \/>\n    Altyap\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00fcvenlik taramalar\u0131ndan ge\u00e7irin ve hatta profesyonel penetrasyon testleri yapt\u0131r\u0131n. Bu, kendi g\u00f6zden ka\u00e7\u0131rd\u0131\u011f\u0131n\u0131z g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 veya yanl\u0131\u015f yap\u0131land\u0131rmalar\u0131 tespit etmenize yard\u0131mc\u0131 olabilir.<\/p>\n<p>*   <strong>Yedeklemeler:<\/strong><br \/>\n    Herhangi bir g\u00fcvenlik ihlali veya sistem ar\u0131zas\u0131 durumunda verilerinizi kurtarabilmek i\u00e7in d\u00fczenli yedeklemeler al\u0131n. DigitalOcean&#8217;\u0131n kendi yedekleme hizmetlerini kullanabilir veya Droplet anl\u0131k g\u00f6r\u00fcnt\u00fcleri (snapshots) olu\u015fturabilirsiniz.<\/p>\n<p>Bu geli\u015fmi\u015f ipu\u00e7lar\u0131 ve en iyi uygulamalar, bulut altyap\u0131n\u0131z\u0131n genel g\u00fcvenlik duru\u015funu \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131racak ve olas\u0131 tehditlere kar\u015f\u0131 daha diren\u00e7li hale getirecektir. G\u00fcvenlik, tek seferlik bir kurulum de\u011fil, s\u00fcrekli bir s\u00fcre\u00e7tir ve bu prensipleri benimsemek uzun vadede size b\u00fcy\u00fck faydalar sa\u011flayacakt\u0131r.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Bu makalede, DigitalOcean platformunda \u00f6zel Droplet&#8217;ler ve bir Bastion Host kullanarak bulut altyap\u0131n\u0131z\u0131 nas\u0131l daha g\u00fcvenli hale getirebilece\u011finizi ad\u0131m ad\u0131m inceledik. Temel kavramlardan ba\u015flayarak, \u00f6zel a\u011f yap\u0131land\u0131rmas\u0131, Bastion Host ve uygulama Droplet&#8217;lerinin kurulumu, bulut g\u00fcvenlik duvarlar\u0131n\u0131n etkin kullan\u0131m\u0131 ve son olarak Bastion Host \u00fczerinden g\u00fcvenli eri\u015fim y\u00f6ntemlerini detayland\u0131rd\u0131k. Bu mimari, sunucular\u0131n\u0131z\u0131n do\u011frudan internete maruz kalmas\u0131n\u0131 engelleyerek sald\u0131r\u0131 y\u00fczeyini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r ve yetkisiz eri\u015fime kar\u015f\u0131 g\u00fc\u00e7l\u00fc bir savunma hatt\u0131 olu\u015fturur.<\/p>\n<p>\u00d6zel a\u011flar, Bastion Host&#8217;lar ve bulut g\u00fcvenlik duvarlar\u0131 gibi katmanl\u0131 g\u00fcvenlik yakla\u015f\u0131mlar\u0131n\u0131 benimsemek, g\u00fcn\u00fcm\u00fcz\u00fcn siber tehdit ortam\u0131nda kritik \u00f6neme sahiptir. Bu sadece veri ihlallerini \u00f6nlemekle kalmaz, ayn\u0131 zamanda mevzuat uyumlulu\u011funu sa\u011flaman\u0131za ve i\u015fletmenizin itibar\u0131n\u0131 koruman\u0131za da yard\u0131mc\u0131 olur. Unutmay\u0131n ki g\u00fcvenlik, s\u00fcrekli bir \u00e7aba gerektiren dinamik bir s\u00fcre\u00e7tir. Kurulumdan sonra bile d\u00fczenli g\u00fcncellemeler, izleme ve en iyi uygulamalar\u0131n takibi, altyap\u0131n\u0131z\u0131n uzun vadeli g\u00fcvenli\u011fini sa\u011flamak i\u00e7in vazge\u00e7ilmezdir. Bu rehber, g\u00fcvenli bulut yolculu\u011funuzda size sa\u011flam bir ba\u015flang\u0131\u00e7 noktas\u0131 sunmay\u0131 ama\u00e7lam\u0131\u015ft\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li>\n<h4>Bastion Host kullanmak performans\u0131m\u0131 etkiler mi?<\/h4>\n<p>Genellikle hay\u0131r. SSH ba\u011flant\u0131lar\u0131 hafif oldu\u011fu i\u00e7in Bastion Host \u00fczerinden yap\u0131lan ba\u011flant\u0131lar performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde etkilemez. Ancak, \u00e7ok say\u0131da e\u015fzamanl\u0131 ba\u011flant\u0131 veya y\u00fcksek bant geni\u015fli\u011fi gerektiren i\u015flemler i\u00e7in Bastion Host&#8217;un kaynaklar\u0131n\u0131 (CPU, RAM) g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z gerekebilir. \u00c7o\u011fu y\u00f6netim senaryosu i\u00e7in en k\u00fc\u00e7\u00fck Droplet plan\u0131 yeterlidir.<\/p>\n<\/li>\n<li>\n<h4>Bastion Host&#8217;um ele ge\u00e7irilirse ne olur?<\/h4>\n<p>Bastion Host&#8217;unuz ele ge\u00e7irilirse, sald\u0131rgan \u00f6zel a\u011f\u0131n\u0131za eri\u015fim kazanabilir. Bu nedenle Bastion Host&#8217;un g\u00fcvenli\u011fi hayati \u00f6nem ta\u015f\u0131r. S\u0131k\u0131 g\u00fcvenlik duvar\u0131 kurallar\u0131, SSH anahtar tabanl\u0131 kimlik do\u011frulama, MFA, root eri\u015fimini devre d\u0131\u015f\u0131 b\u0131rakma ve d\u00fczenli g\u00fcncellemeler gibi \u00f6nlemlerle Bastion Host&#8217;u m\u00fcmk\u00fcn oldu\u011funca sertle\u015ftirmeniz gerekir. Ayr\u0131ca, loglama ve izleme ile \u015f\u00fcpheli aktiviteleri h\u0131zl\u0131ca tespit edip m\u00fcdahale edebilmelisiniz.<\/p>\n<\/li>\n<li>\n<h4>Uygulama Droplet&#8217;ime genel IP adresi atarsam ne olur?<\/h4>\n<p>Uygulama Droplet&#8217;inize genel IP adresi atamak, onu do\u011frudan internete maruz b\u0131rak\u0131r. Bu durumda, DigitalOcean Cloud Firewalls ile \u00e7ok s\u0131k\u0131 kurallar uygulayarak sadece belirli portlara (\u00f6rn: 80 ve 443 web trafi\u011fi i\u00e7in) ve belirli kaynaklara (\u00f6rn: DigitalOcean Load Balancer veya CDN) eri\u015fime izin vermeniz gerekir. Ancak, veritaban\u0131 sunucular\u0131 veya arka u\u00e7 API&#8217;leri gibi kritik hizmetler i\u00e7in genel IP adresi atamaktan kesinlikle ka\u00e7\u0131n\u0131lmal\u0131d\u0131r. En g\u00fcvenli yakla\u015f\u0131m, uygulama Droplet&#8217;lerinizi genel IP&#8217;siz tutmakt\u0131r.<\/p>\n<\/li>\n<li>\n<h4>Birden fazla Bastion Host kurmal\u0131 m\u0131y\u0131m?<\/h4>\n<p>Tek bir Bastion Host genellikle yeterlidir. Ancak y\u00fcksek eri\u015filebilirlik (HA) veya felaket kurtarma (DR) senaryolar\u0131 i\u00e7in birden fazla Bastion Host kurmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz. Bu durumda, Bastion Host&#8217;lar aras\u0131nda bir y\u00fck dengeleyici (Load Balancer) kullanmak veya farkl\u0131 b\u00f6lgelerde yedekli Bastion Host&#8217;lar bulundurmak se\u00e7enekler aras\u0131ndad\u0131r. Bu, daha karma\u015f\u0131k bir yap\u0131land\u0131rma gerektirir.<\/p>\n<\/li>\n<li>\n<h4>SSH anahtarlar\u0131m\u0131 nas\u0131l g\u00fcvende tutar\u0131m?<\/h4>\n<p>SSH \u00f6zel anahtarlar\u0131n\u0131z, sunucular\u0131n\u0131za eri\u015fiminizin anahtar\u0131d\u0131r ve son derece gizli tutulmal\u0131d\u0131r. \u00d6zel anahtar dosyan\u0131z\u0131 (\u00f6rn: <code class=\"language-\">id_rsa<\/code>) kesinlikle kimseyle payla\u015fmay\u0131n. Dosya izinlerinin <code class=\"language-\">chmod 400 ~\/.ssh\/id_rsa<\/code> oldu\u011fundan emin olun. Anahtar\u0131n\u0131za g\u00fc\u00e7l\u00fc bir parola (passphrase) atay\u0131n. Ayr\u0131ca, anahtar\u0131n\u0131z\u0131 bir donan\u0131m g\u00fcvenlik anahtar\u0131nda (\u00f6rn: YubiKey) saklamak, ek bir g\u00fcvenlik katman\u0131 sa\u011flar.<\/p>\n<\/li>\n<\/ul>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/bastion-host-private-server-access\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/bastion-host-private-server-access<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"\u00d6zel Droplet ve Bastion Host Kurulumu: Bulut G\u00fcvenli\u011fini En \u00dcst D\u00fczeye \u00c7\u0131karma Bulut altyap\u0131n\u0131zda g\u00fcvenli\u011fi art\u0131rmak i\u00e7in \u00f6zel&hellip;","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":[1],"tags":[],"class_list":{"0":"post-42973","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>Neden \u00d6zel Droplet ve Bastion Host Kullanmal\u0131s\u0131n\u0131z?<\/title>\n<meta name=\"description\" content=\"ssh-keygen -t rsa -b 4096 -C &quot;your_email@example. com&quot; Bu komut, ~\/.\" \/>\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\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Neden \u00d6zel Droplet ve Bastion Host Kullanmal\u0131s\u0131n\u0131z?\" \/>\n<meta property=\"og:description\" content=\"ssh-keygen -t rsa -b 4096 -C &quot;your_email@example. com&quot; Bu komut, ~\/.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-01T11:01:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-01T11:01:40+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=\"29 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Neden \u00d6zel Droplet ve Bastion Host Kullanmal\u0131s\u0131n\u0131z?\",\"datePublished\":\"2026-07-01T11:01:10+00:00\",\"dateModified\":\"2026-07-01T11:01:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/\"},\"wordCount\":5541,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/\",\"name\":\"Neden \u00d6zel Droplet ve Bastion Host Kullanmal\u0131s\u0131n\u0131z?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-07-01T11:01:10+00:00\",\"dateModified\":\"2026-07-01T11:01:40+00:00\",\"description\":\"ssh-keygen -t rsa -b 4096 -C \\\"your_email@example. com\\\" Bu komut, ~\/.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Neden \u00d6zel Droplet ve Bastion Host Kullanmal\u0131s\u0131n\u0131z?\"}]},{\"@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":"Neden \u00d6zel Droplet ve Bastion Host Kullanmal\u0131s\u0131n\u0131z?","description":"ssh-keygen -t rsa -b 4096 -C \"your_email@example. com\" Bu komut, ~\/.","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\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/","og_locale":"tr_TR","og_type":"article","og_title":"Neden \u00d6zel Droplet ve Bastion Host Kullanmal\u0131s\u0131n\u0131z?","og_description":"ssh-keygen -t rsa -b 4096 -C \"your_email@example. com\" Bu komut, ~\/.","og_url":"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-07-01T11:01:10+00:00","article_modified_time":"2026-07-01T11:01:40+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"29 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Neden \u00d6zel Droplet ve Bastion Host Kullanmal\u0131s\u0131n\u0131z?","datePublished":"2026-07-01T11:01:10+00:00","dateModified":"2026-07-01T11:01:40+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/"},"wordCount":5541,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/","url":"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/","name":"Neden \u00d6zel Droplet ve Bastion Host Kullanmal\u0131s\u0131n\u0131z?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-07-01T11:01:10+00:00","dateModified":"2026-07-01T11:01:40+00:00","description":"ssh-keygen -t rsa -b 4096 -C \"your_email@example. com\" Bu komut, ~\/.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/neden-ozel-droplet-ve-bastion-host-kullanmalisiniz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Neden \u00d6zel Droplet ve Bastion Host Kullanmal\u0131s\u0131n\u0131z?"}]},{"@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\/42973","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=42973"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/42973\/revisions"}],"predecessor-version":[{"id":42974,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/42973\/revisions\/42974"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=42973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=42973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=42973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}