VPS hosting güvenli mi? Güvenliği kim kontrol eder?
VPS hosting, hypervisor katmanında müşterileri ayırır. Asıl risk; açık servisler, yeniden kullanılan anahtarlar, güncellenmemiş paketler ve sızan gizli bilgilerdir.
VPS hosting güvenli mi? Kısa yanıt
Evet. VPS hosting, çoğu kişinin satın alma amacı olan işler için güvenlidir ve shared hosting'e göre gerçek bir iyileşme sağlar. VPS (virtual private server), kendi kernel'ına, kendi belleğine, kendi diskine ve kendi kullanıcı hesaplarına sahip bir sanal makinedir. Bu makineyi çalıştıran hypervisor, diğer müşterilerin bu dört kaynağa erişmesini engeller. Aynı fiziksel makinede sizin sunucunuzun yanında kiralama yapan kişi dosyalarınızı okuyamaz, süreçlerinizi listeleyemez, sunucunuza giriş yapamaz veya network trafiğinizi göremez.
Dürüst yanıt iki bölümden oluşur. Donanımın ve hypervisor'ın sahibi sağlayıcıdır. Sanal makinenizin içindeki her şeyden siz sorumlusunuz ve gerçek olayların neredeyse tamamı burada başlar. Sunucular açık bir port, zayıf bir SSH parolası, güncellenmemiş bir paket veya yayımlanan bir dosyadaki gizli bilgi üzerinden ihlal edilir. Hypervisor üzerinden ihlal edilmeleri ise çok nadirdir.
Hiper yöneticinin gerçekten ayırdığı şey
Hiper yönetici, sanal makineleri tek bir fiziksel ana bilgisayar üzerinde çalıştıran yazılımdır. KVM VPS üzerinde (KVM, kernel based virtual machine ifadesinin kısaltmasıdır ve Linux ana bilgisayarlarında standarttır) sunucunuz tam bir sanal makinedir. Kendi kernel’ını başlatır. Ana bilgisayar, sunucuya fiziksel belleğin sabit bir bölümünü tahsis eder. İşlemcinin memory management unit bileşeni bu bölümün dışındaki erişimleri reddeder. Bu nedenle başka bir guest üzerinde çalışan kod RAM adreslerinize hiçbir şekilde erişemez. Ortak filesystem ve ortak kullanıcı tablosu yoktur. Bu nedenle komşu sunucudaki dosya izinlerinin sizin sunucunuz üzerinde bir etkisi olmaz.
Shared hosting farklı çalışır. Birçok site, tek bir işletim sistemi içinde, tek bir web server ve tek bir PHP kurulumu altında normal kullanıcı hesapları olarak çalışır. Tek sınır dosya izinleridir. Bu nedenle bir izin hatası veya çok fazla dosyayı okuyabilen bir kullanıcı hesabı altında çalışan güvenlik açığı bulunan bir plugin, başka bir hesabın dosyalarına erişebilir. shared hosting’den VPS’e geçiş bu açığı kapatır.
Ne satın aldığınızı kontrol edin. VPS olarak satılan her plan sanal makine değildir. Container tabanlı planlar (OpenVZ, LXC, Virtuozzo), ana bilgisayarın kernel’ını paylaşır. Müşteriler hardware virtualization yerine namespaces ve cgroups ile birbirinden ayrılır. Bu sınır daha zayıftır. Çünkü ana bilgisayardaki bir kernel hatası, sizin sunucunuzda da kernel hatası anlamına gelir. Ayrıca bu planlarda kernel modules yüklenemez. Bu durum bazı yazılımların kullanılmasını engeller. KVM daha güvenli varsayılandır. Ödeme yapmadan önce hangi teknolojiyi alacağınızı sorun.
Gürültücü komşu size ne yapabilir
Fiziksel bir ana bilgisayarı paylaşmanın size maliyeti hız kaybıdır; bunun dışında başka bir maliyeti yoktur. Aynı makinedeki konuklar fiziksel CPU'yu ve diskleri paylaşır. CPU başka bir konuk tarafından meşgulken sanal CPU'nuz bekler. Linux bu beklemeyi steal time olarak bildirir: %st içindeki top ve vmstat alanlarında gösterilir. Steal time değerinin saatler boyunca birkaç yüzde puanının üzerinde kalması, ana bilgisayarın kapasitesinin üzerinde kullanıldığını gösterir. Bu durum, herhangi birinin verilerinizi okuduğu anlamına gelmez. Çözüm farklı bir plan veya farklı bir sağlayıcı kullanmaktır. Karar vermeden önce size gerçekten sağlanan CPU ve disk kapasitesini ölçebilirsiniz.
Müşteriler arasında oluşabilecek etkilerden birini bilmek gerekir; bu bir güvenlik açığı değildir. VPS'nizden e-posta gönderiyorsanız IP adresiniz, diğer müşterilerin de kullandığı bir aralıkta yer alır. Bir komşu spam gönderirse bu aralığın bir bölümü blocklist'e alınabilir. Bu nedenle, sizin neden olmadığınız bir durum yüzünden e-postalarınız spam klasörlerine düşebilir. Kötüye kullanımı denetleyen sağlayıcılar daha temiz IP aralıkları bulundurur. E-posta sizin için önemliyse bunu sağlayıcıya sorun.
Kötü niyetli bir komşunun yapamayacağı şeyler ve bunu yapabildiği nadir durum
Aynı host üzerindeki bir müşterinin dosyalarınıza erişebileceği bir yol yoktur. Süreçlerinizi göremez, diskinizi mount edemez veya sunucunuzda bir shell açamaz. Çünkü bunların hiçbiri kendi virtual machine ortamının içinde bulunmaz. Belirtilmesi gereken bir istisna vardır: provider private network ortamlarını yabancılarla paylaşılan bir ağ olarak kabul edin. Bu ağ üzerinden geçen verileri görünmez olduklarını varsaymak yerine şifreleyin.
Hypervisor escape saldırıları gerçektir. Virtualization layer içindeki bir hata, bir guest içindeki kodun host'a ulaşmasına ve host üzerinden aynı host üzerindeki tüm guest'lere erişmesine izin verebilir. Bu hatalar bulunur, bir CVE (common vulnerabilities and exposures) identifier ile yayımlanır ve yamalanır. Hosting provider'lar tüm işlerini bu layer üzerine kurduğu için bu yamaları hızlı şekilde uygular. Böyle bir saldırı için belirli bir hypervisor version'ına yönelik çalışan bir exploit gerekir. Küçük bir hosting account için kullanılacak pahalı bir araçtır.
Guest'ler arasındaki side-channel saldırıları da gerçektir. Bunlar Spectre ve Meltdown ailesindendir. Paylaşılan processor cache'lerini kullanarak bir sınırın ötesindeki küçük miktarlarda veriyi çıkarsamaya çalışırlar. Microcode ve kernel update'leri bu saldırıların etkisini azaltır. Yayımlanmış çalışmalardaki sızıntı hızları da çok düşüktür. Yayımlanmış vakalar, geniş çaplı saldırılardan çok araştırma amaçlı gösterimlerdir. Risk sıfır değildir. Ancak size zarar verebilecek tehditler listesinde üst sıralara yakın değildir.
Sağlayıcının sorumluluğunun bittiği ve sizin sorumluluğunuzun başladığı yer
Sağlayıcı; binadan, fiziksel sunucu donanımından, hypervisor ve host kernel'dan, fiziksel ağdan ve sunucunuzu başlatabilen, durdurabilen, yeniden oluşturabilen ve snapshot alabilen control panel'den sorumludur. Bunlardan herhangi biri çalışmazsa sorunu çözmek sağlayıcının sorumluluğundadır.
İşletim sisteminizden sonraki her şeyden siz sorumlusunuz. Buna yüklediğiniz paketler, açık bıraktığınız portlar, oturum açabilen hesaplar ve cryptographic key'ler, uyguladığınız güncellemeler, yedekleriniz ve kendi uygulama kodunuz dahildir. VPS planlarının çoğu unmanaged yapıdadır. Bu, sunucunuza kimsenin sizin adınıza patch uygulamadığı ve hiçbir support ticket'ın bunu sizin yerinize yapmayacağı anlamına gelir. Managed ve unmanaged ayrımı, satın almadan önce okunmalıdır. Çünkü bu ayrım, listedeki sorumlulukların ne kadarının size ait olacağını belirler.
Sizin sorumluluk alanınızın kolayca gözden kaçan bir bölümü daha vardır: hosting control panel'in kendisi. Bu hesaba ait oturum açma bilgilerine sahip olan kişi, sunucunun içindeki herhangi bir password'ü bilmeden sunucunuzu yeniden oluşturabilir veya diskinizi bir rescue system'e bağlayabilir. Hosting hesabında two factor authentication (2FA) etkinleştirilmeli ve bu password başka hiçbir yerde yeniden kullanılmamalıdır.
Hosting sağlayıcınız verilerinizi görebilir mi?
Evet, ilke olarak görebilir. Bu, bir VPS'nin size sunduğu korumanın dürüstçe kabul edilmesi gereken sınırıdır. Disk imajınız sağlayıcının depolama alanında bulunur. Sağlayıcının konsolu, sanal makinenize ekran düzeyinde erişim sağlar. Rescue mode, diskiniz bağlı durumdayken farklı bir sistemi boot edebilir. VPS, sizi diğer müşterilerden korur. Sağlayıcı ise bu taahhüdün kapsamı dışında kalır.
Barındırma sağlayıcısının okuyamaması gereken veriler tutuyorsanız verileri yazılmadan önce uygulamanızda şifreleyin. Guest içindeki full disk encryption, kullanılmayan durumdaki kopyalanmış bir imaja karşı koruma sağlar. Ancak sunucu çalışırken anahtarın bellekte bulunması gerekir. Bu nedenle sağlayıcıyı güven denkleminden çıkarmaz. Aynı güven ilişkisi tek başınıza kiraladığınız dedicated server için de geçerlidir. Bu seçenekte yalnızca bir paylaşılan katman daha azdır.
Bir VPS'i gerçekte ne tehlikeye atar
Her arayüzde dinleyen bir servis. Veritabanları, cache sistemleri, mesaj kuyrukları ve yönetim panelleri genellikle varsayılan olarak 0.0.0.0 adresine bind olur. Bu, public arayüz dahil tüm network arayüzleri anlamına gelir. Internet genelindeki taramalar sürekli ve otomatiktir. Bu nedenle yeni bir IP adresi online olduktan birkaç dakika içinde ilk istenmeyen probe'u alır. Parolasız Redis, kimlik doğrulaması yapılmamış bir Elasticsearch node'u, 2375 portunda açık bir Docker API'si ve varsayılan giriş bilgilerini hâlâ kullanan bir yönetim paneli bu şekilde bulunur. Tarayıcı sizin kim olduğunuzu bilmez. Yalnızca yerel makinenin erişmesi gereken bir servisi 127.0.0.1 adresine bind edin. Diğer erişimleri firewall üzerinde engelleyin.
Docker'ın firewall'u devre dışı bırakması. Bir container portunu publish etmek, uncomplicated firewall (ufw) kurallarından önce değerlendirilen network address translation (NAT) kuralları yazar. Bu nedenle ufw status ilgili portun engellendiğini belirtse bile container internetten erişilebilir olabilir. Diğer her şeyi doğru yapan kullanıcılar bu durumla karşılaşabilir. Bir container portunu publish etmeden önce Docker portunun ufw kurallarını neden yok saydığı konusunu okuyun.
Parola kullanan SSH. Public bir sunucuda /var/log/auth.log çıktısını okuyun. Gece gündüz binlerce Failed password for root from 203.0.113.10 port 54312 ssh2 satırı görürsünüz. Botlar yaygın kullanıcı adlarını ve parolaları dener. Parola ile girişin açık olması ve login kabul eden bir root hesabının bulunması saldırgan için yeterlidir. Yalnızca key kullanılması ve root login'in kapatılması, bu trafiği yok sayabileceğiniz bir gürültüye dönüştürür.
Her yerde kullanılan tek bir private key. Aynı key'in her laptop'a ve her sunucuya kopyalanması, tek bir çalınmış laptop'un her şeyin kilidini açması anlamına gelir. SSH key'lerinin son kullanma tarihi yoktur. Bu nedenle iki yıl önce bir contractor'a verilen key bugün hâlâ çalışır. Her kişi ve her makine için bir key kullanmak hiçbir maliyet oluşturmaz ve tek bir çalınmış key'in erişebileceği alanı sınırlar.
Güncellenmeyen paketler. Web sunucunuz veya uygulama framework'ünüz için yayımlanan bir CVE, herkese açık bir talimat setidir. Tarayıcılar birkaç gün içinde bu zafiyeti test etmeye başlar. Security update'leri kullanılabilecek en düşük maliyetli savunmadır ve otomatik çalıştırılabilir. Bunun için Ubuntu üzerinde otomatik security update'leri konusuna bakın.
Sızdırılmış bir secret. Veritabanı parolaları ve API key'leri .env dosyalarında bulunur. Bu dosyalar public bir repository'ye commit edilebilir veya yanlış dizini gösteren bir web server tarafından sunulabilir. Bir AI coding agent'ın context'ine yapıştırılan her içerik bir log'a da yazılabilir. Bu ayrı bir konudur: secret'ları bir agent'ın erişim alanı dışında tutma.
Her şeyin root olarak çalışması. Uygulamanız root olarak çalışıyorsa uygulamadaki tek bir bug tüm makine üzerinde yetki sahibi olur. Çünkü sunucu içinde bu bug'ın yayılmasını durduracak bir sınır kalmaz.
İşin sizin tarafınızdaki bölüm
Aşağıdakilerin hiçbiri hypervisor işlemi değildir. Bunların tamamı sizin sorumluluğunuzdadır. VPS güvenliğinin sağlanıp sağlanmayacağını da bu taraf belirler.
- İlk saati doğru değerlendirin: yeni bir VPS üzerinde ilk on dakika, root olmayan bir kullanıcı oluşturma ve firewall yapılandırmasını kapsar.
- Uzaktan erişimi güvenli hale getirin: bir VPS üzerinde SSH hardening.
- Kullanmadığınız portları kapatın: ufw firewall temelleri.
- Her servise yalnızca ihtiyaç duyduğu erişimi verin: bir VPS üzerinde en az ayrıcalıklı kullanıcılar.
- Brute force oturum açma denemelerini yavaşlatın: Ubuntu 24.04 üzerinde fail2ban.
- En az bir kez geri yüklediğiniz bir yedek bulundurun: bir VPS için restic yedekleri.
Sunucunuz boot ettiğinde provider tarafındaki işlemler zaten tamamlanmış olur. Sizin tarafınızdaki işlemler ilk gün yaklaşık bir saat, sonrasında ise ayda birkaç dakika sürer. Hâlâ seçenekleri karşılaştırıyorsanız VPS aslında nedir, bunların temelindeki yapıyı açıklar.
FAQ
Aynı fiziksel sunucudaki başka bir müşteri dosyalarımı okuyabilir mi?
Hayır, KVM VPS üzerinde okuyamaz. Sunucunuz kendi kernel'ına, kendi sanal diskine ve host tarafından atanan fiziksel bellek bölgesine sahip bir sanal makinedir. İşlemci, bu bölgenin dışındaki belleğe erişimi engeller. Guest'ler arasında paylaşılan bir dosya sistemi yoktur. Bu nedenle komşu sunucudaki dosya izinlerinin sizin sunucunuzda bir anlamı yoktur. OpenVZ ve LXC gibi container tabanlı planlar host kernel'ını paylaşır ve daha zayıf bir izolasyon sınırı sağlar. Satın aldığınız hizmetin türünü kontrol edin.
VPS, shared hosting'den daha güvenli midir?
İzolasyon açısından evet. Shared hosting ortamında birçok site tek bir işletim sistemi içinde çalışır. Tek sınır dosya izinleridir. Bu nedenle başka bir hesaptaki hata bazen dosyaların açığa çıkmasına neden olabilir. VPS'de sınır sanal makinedir. Bunun karşılığında shared hosting güncellemeleri host tarafından uygulanır. Unmanaged VPS'de ise güncellemeleri sizin uygulamanız gerekir. VPS yalnızca güncellemeleri gerçekten uygular ve kullanılmayan portları kapatırsanız daha güvenlidir.
Hosting sağlayıcım verilerimi okuyabilir mi?
İlke olarak evet. Hiçbir VPS ürünü bu durumu değiştirmez. Disk imajı sağlayıcının donanımında saklanır. Konsol, çalışan makineye ekran düzeyinde erişim sağlar. Rescue mode, diskiniz bağlıyken farklı bir sistemi boot edebilir. Bazı verilerin host tarafından okunamaması gerekiyorsa bu verileri yazmadan önce uygulamanız içinde şifreleyin. Guest içindeki disk şifrelemesi, sunucu çalışırken anahtarı bellekte tutmaya devam eder. Bu nedenle sağlayıcıyı güven modelinden çıkarmaz.
Bir VPS'nin breached olmasının en yaygın yolu nedir?
Açıkta bırakılmış bir servis veya zayıf bir SSH girişi, açık ara en yaygın nedendir. Automated scanner'lar tüm public IP adreslerini sürekli tarar. Bu nedenle parolası olmayan ve 0.0.0.0 adresine bağlı bir veritabanı ya da varsayılan kimlik bilgileriyle bırakılmış bir admin paneli aylar içinde değil, dakikalar içinde bulunur. /var/log/auth.log herhangi bir public sunucuda SSH tarafını gösterir: dünyanın farklı yerlerindeki adreslerden gelen tekrarlanan Failed password for root satırları. Hypervisor escape saldırıları vardır. Ancak bunlar yüksek değerli hedeflere yönelik, araştırma düzeyinde çalışmalardır. Olağan breaches olaylarının nedeni bunlar değildir.