Blog

Sanal Sunucu (VPS) Yönetimi İçin Temel Rehber

Sanal Sunucu (VPS) Yönetimi İçin Temel Rehber

VPS yönetimi, kiraladığınız sanal sunucunun kurulumundan güvenliğine, yedeklemesinden performans ayarlarına kadar tüm sorumluluğu üstlenmeniz anlamına gelir. Paylaşımlı hostingte sizin adınıza yapılan işleri burada siz yaparsınız; karşılığında tam yetki, tahsis edilmiş kaynak ve çok daha esnek bir ortam elde edersiniz. Bu rehberde sanal sunucunuzu ilk dakikadan itibaren güvenli, düzenli ve izlenebilir biçimde yönetmek için izlemeniz gereken adımları sırasıyla bulacaksınız.

VPS Yönetimi Tam Olarak Neyi Kapsar?

Sanal sunucu size bir işletim sistemi, bir IP adresi ve belirli miktarda RAM, işlemci çekirdeği ve disk alanı verir. Geri kalan her şey sizin kontrolünüzdedir:

  • İşletim sistemi kurulumu ve güncellemeleri: Genellikle Ubuntu, Debian, AlmaLinux veya Rocky Linux gibi dağıtımlardan biri tercih edilir.
  • Erişim güvenliği: SSH anahtarları, kullanıcı yetkileri, güvenlik duvarı kuralları.
  • Servis yönetimi: Web sunucusu, veritabanı, PHP sürümleri, arka plan işleri.
  • Yedekleme ve geri dönüş: Hem anlık görüntü (snapshot) hem de dosya düzeyinde yedek.
  • İzleme: Kaynak kullanımı, disk doluluğu, servis kesintileri.

Bu sorumluluk listesi kulağa ağır gelebilir, ancak çoğu iş tek seferlik kurulumdur. Bir kez doğru yapılandırdığınızda haftada birkaç dakikalık bakımla sunucunuz yıllarca sorunsuz çalışır. Sanal sunucunun paylaşımlı barındırmadan farkını daha ayrıntılı görmek isterseniz cloud hosting ile VPS arasındaki temel farklar yazısı iyi bir başlangıç noktasıdır.

İlk 30 Dakika: Kurulum Kontrol Listesi

Sunucu açıldıktan sonra atacağınız ilk adımlar, sonraki tüm sorunların önüne geçer. Sağlayıcınızın verdiği geçici root parolasıyla bağlanıp şu sırayı izleyin:

1. Sistemi güncelleyin. `apt update && apt upgrade -y` veya `dnf upgrade -y` komutuyla tüm paketleri en son sürüme çekin.
2. Yeni bir kullanıcı oluşturun. `adduser yonetici` ardından `usermod -aG sudo yonetici` (Red Hat tabanlı sistemlerde `wheel` grubu) ile yönetici yetkisi verin.
3. SSH anahtarı ekleyin. Yerel bilgisayarınızda `ssh-keygen -t ed25519` ile anahtar üretin ve `ssh-copy-id yonetici@sunucu-ip` ile sunucuya aktarın.
4. Root girişini ve parola girişini kapatın. `/etc/ssh/sshd_config` dosyasında `PermitRootLogin no` ve `PasswordAuthentication no` satırlarını düzenleyip servisi yeniden başlatın.
5. Güvenlik duvarını açın. Yalnızca gerçekten ihtiyaç duyduğunuz portları bırakın.
6. Saat dilimini ve sunucu adını ayarlayın. `timedatectl set-timezone Europe/Istanbul` ve `hostnamectl set-hostname sunucu-01`.
7. Otomatik güvenlik güncellemelerini açın. Ubuntu’da `unattended-upgrades` paketi bu işi görür.

Bu yedi adım, internete açık bir sunucunun uğradığı otomatik taramaların büyük kısmını ilk günden etkisiz hale getirir.

SSH Erişimini Güvenli Hale Getirme

SSH, sunucunuzun ana kapısıdır; bu yüzden en çok özen gösterilmesi gereken yer burasıdır.

  • Anahtar tabanlı giriş kullanın. Parola tahmin saldırılarına karşı en etkili önlemdir.
  • Varsayılan portu değiştirmek tek başına güvenlik sağlamaz, yalnızca günlük kayıtlarınızdaki gürültüyü azaltır. Asıl koruma anahtar ve kullanıcı yetkilerindedir.
  • Bağlantıyı sınırlayın. Güvenlik duvarında SSH portuna yalnızca kendi sabit IP adresinizden izin vermek, mümkünse en güçlü önlemdir.
  • Başarısız denemeleri sınırlayın. `fail2ban` gibi bir araç, belirli sayıda hatalı girişten sonra IP adresini geçici olarak engeller.
  • Erişim anahtarlarını düzenli olarak gözden geçirin. Ayrılan çalışanların veya eski cihazların anahtarlarını `~/.ssh/authorized_keys` dosyasından kaldırın.

Bir istemciye uzaktan hizmet verecekseniz, sunucu üzerinde çalışan servisleri dışarıya açmadan önce yapay zeka ajanlarına erişim politikaları rehberi gibi kaynaklardaki en az yetki ilkesini hatırlamakta fayda var: bir servis çalışması için gereken en dar izinle başlamalı, ihtiyaç doğdukça genişletmelisiniz.

Güvenlik Duvarı ve Port Yönetimi

Güvenlik duvarı için en yaygın yaklaşım, “hepsini kapat, gerekeni aç” politikasıdır. Ubuntu’da UFW ile tipik bir web sunucusu yapılandırması şöyle görünür:

“`
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
“`

Dikkat edilmesi gereken noktalar:

  • Veritabanı portlarını (MySQL, PostgreSQL, Redis) dış dünyaya açmayın; uygulama aynı sunucudaysa `localhost` üzerinden bağlanması yeterlidir.
  • Yönetim panelleri ve phpMyAdmin gibi araçları ya tamamen kaldırın ya da yalnızca kendi IP’nizden erişilebilir hale getirin.
  • Bulut sağlayıcınızın ayrıca bir güvenlik grubu (security group) katmanı varsa, iki katmanı birlikte ve tutarlı yönetin; birinde açık kalan port diğerinde kapalı olsa bile erişim mümkün olur.

Güncelleme, Servis ve Kaynak İzleme

Sunucu bakımının büyük kısmı üç komut etrafında döner:

  • `apt list –upgradable` veya `dnf check-update`: bekleyen güncellemeleri görürsünüz. Güvenlik yamalarını haftalık, çekirdek yamalarını aylık uygulamak makul bir ritimdir.
  • `systemctl status servisadi` ve `journalctl -u servisadi -n 100`: bir servis çalışmıyorsa ilk bakılacak yer burasıdır.
  • `htop`, `df -h`, `free -m`: anlık işlemci, disk ve bellek durumunu gösterir.

Sunucunuz yavaşladığında ya da disk uyarısı aldığınızda önce şu üç soruyu sorun: Disk gerçekten doldu mu, yoksa silinmiş ama açık tutulan dosyalar mı var? Belleği tüketen süreç hangisi? Günlük dosyaları sınırsız mı büyüyor? Günlük döndürme (log rotation) ayarları çoğu dağıtımda hazır gelir, ancak uygulama günlüklerini kendi belirlediğiniz bir dizine yazıyorsanız onlar için ayrı bir kural eklemeniz gerekir.

Yedekleme Stratejisi: 3-2-1 Kuralı

Yedek, VPS yönetiminin en çok ertelenen ama en kritik parçasıdır. Basit ve sağlam bir yaklaşım:

1. Anlık görüntü (snapshot): Sağlayıcı düzeyinde alınan görüntüler, büyük değişikliklerden (sürüm yükseltmesi, çekirdek güncellemesi) önce hızlı geri dönüş sağlar. Ancak tek başına yeterli değildir; aynı platformda tutulduğu için platform sorunlarından etkilenebilir.
2. Dosya ve veritabanı yedeği: `mysqldump` veya `pg_dump` ile veritabanını, `tar` ile dosyaları sıkıştırıp sunucu dışına aktarın. `rsync` veya nesne depolama tabanlı bir aktarım bunun için uygundur.
3. Farklı konum: Kuralın özü, en az bir kopyanın sunucudan ve tercihen farklı bir sağlayıcıdan bağımsız bir yerde durmasıdır.

Yedeklerinizi cron ile otomatikleştirin ve geri yükleme testini ihmal etmeyin. Hiç açılmamış bir yedek, yedek sayılmaz.

İzleme ve Uyarı Sistemi Kurma

Sorunları kullanıcılarınızdan önce öğrenmek istiyorsanız en az üç şeyi izleyin:

  • Erişilebilirlik: HTTP yanıt kodu ve yanıt süresi. Ücretsiz dış izleme servisleri bu iş için yeterlidir.
  • Disk doluluğu: %80’i geçtiğinde uyarı alın. Disk dolduğunda veritabanı sessizce yazmayı durdurabilir.
  • Kaynak eğilimi: CPU ve bellek kullanımının haftalık ortalaması. Sürekli %85 üzerinde seyreden bellek, yakın zamanda paket yükseltmesi gerektiğinin işaretidir.

Sunucu üzerinde kendi uygulamanızı barındırıyorsanız, sağlık kontrolü için ayrı bir uç nokta (örneğin `/saglik`) tanımlamak, izlemeyi çok daha güvenilir hale getirir.

Yaygın Sorunlar ve Hızlı Müdahale

  • Site açılmıyor: Sırasıyla güvenlik duvarı kurallarını, web sunucusu servis durumunu ve uygulama günlüklerini kontrol edin. `curl -I http://localhost` komutu sorunun sunucuda mı yoksa dışarıda mı olduğunu gösterir.
  • 502/504 hataları: Genellikle uygulama sunucusu (PHP-FPM, Node, Python) çökmüştür veya zaman aşımına uğramıştır. Servis günlüğü nedeni söyler.
  • Disk dolu: `du -sh /var/* | sort -h` ile en büyük dizinleri bulun. Günlük dosyaları ve eski yedekler ilk şüphelilerdir.
  • Yüksek CPU: `top` çıktısında hangi sürecin tükettiğine bakın; çoğu zaman bir arama botu ya da kötü yazılmış bir eklenti sorumludur.
  • Yanlış yapılandırma sonrası kilitlenme: Sağlayıcı konsolundan (VNC/serial) erişim yollarını önceden öğrenin ve not edin.

Kendi uygulamanızı barındırıyorsanız, bağımlılıkları tek tek elle kurmak yerine Docker gibi kapsayıcı tabanlı bir yaklaşım, taşınabilirlik ve geri alma kolaylığı sağlar. Veritabanı ve kimlik doğrulama gibi ek servisleri aynı sunucuda çalıştırıyorsanız VPS'inizde Supabase barındırırken dikkat edilmesi gerekenler yazısı kaynak planlaması açısından yol gösterici olur. Benzer şekilde, sunucunuzda harici araçlara açık bir servis çalıştıracaksanız VPS üzerinde uzak MCP sunucusu barındırma rehberindeki izolasyon ve yetkilendirme yaklaşımı işinize yarar.

Hangi Paket Size Uygun?

Doğru paketi seçmenin anahtarı, tahmin etmek değil ölçmektir. Küçük bir kişisel blog veya portföy sitesi için 1-2 GB bellek ve tek çekirdek çoğu zaman yeterlidir. Orta trafikli bir WordPress sitesi ya da birkaç küçük uygulamayı birlikte çalıştıran bir kurulum için 4 GB bellek ve 2 çekirdek daha gerçekçi bir başlangıçtır. Veritabanı, önbellek ve uygulama sunucusunu aynı makinede topluyorsanız bellek ihtiyacı hızla artar; bu durumda 8 GB ve üzeri paketleri değerlendirmek gerekir.

İki pratik kural: Yönetim işlerini kendiniz üstleniyorsanız yönetilmeyen (unmanaged) bir VPS hosting hizmeti en iyi fiyat/performans dengesini sunar. Trafik artışı öngörülemiyorsa, kaynakları anlık olarak büyütüp küçültebildiğiniz esnek yapılar tercih edilmelidir. Tek bir sanal sunucunun sınırlarına yaklaştığınızda ise tüm fiziksel kaynakları tek kiracıya ayıran dedicated sunucu seçenekleri gündeme gelir. Sunucu yönetimini tamamen devretmek istiyorsanız, yönetilen VPS paketlerinin sunduğu destek kapsamını satın almadan önce netleştirin.

Sıkça Sorulan Sorular

VPS’e hangi işletim sistemini kurmalıyım?
Uzun süreli destek (LTS) sürümleri olan Ubuntu veya Debian çoğu uygulama için en geniş uyumluluğu sunar. Kurumsal ortamlarda AlmaLinux veya Rocky Linux tercih edilebilir. Seçiminizi uygulamanızın resmi desteklediği dağıtımlara göre yapın.

Sunucu yönetimini bilmiyorsam VPS mantıklı mı?
Yönetilen VPS paketleri bu boşluğu kapatır. Ancak temel komut satırı bilgisi olmadan tam yönetimli olmayan bir sunucu almak, sorun anında sizi zor durumda bırakabilir. Paylaşımlı hosting ile başlayıp ihtiyaç doğduğunda geçiş yapmak daha güvenli bir yoldur.

Kaç tane siteyi tek VPS’te barındırabilirim?
Sayı değil, kaynak tüketimi belirleyicidir. Aynı sunucuda 20 düşük trafikli site rahat çalışabilirken, tek bir yoğun mağaza tüm belleği tüketebilir. Gerçek ölçüm için bir haftalık izleme verisi toplayın.

Otomatik güncellemeler riskli mi?
Güvenlik yamaları için düşük risklidir ve açık bırakılması önerilir. Çekirdek ve ana servis sürüm yükseltmelerini ise kontrollü yapın; öncesinde anlık görüntü alın.

Yedekleri nereye saklamalıyım?
Sunucunuzun dışında, tercihen farklı bir sağlayıcıda ve şifrelenmiş olarak. Aynı hesap altındaki bir anlık görüntü, hesap düzeyinde yaşanan bir sorunda işe yaramaz.

Sunucum ele geçirildiğini nasıl anlarım?
Beklenmeyen dışa giden trafik, tanımadığınız kullanıcılar veya cron görevleri, açıklanamayan CPU artışı ve yetkisiz SSH girişleri başlıca işaretlerdir. Böyle bir durumda sunucuyu ağdan izole edin, günlükleri saklayın ve temiz bir kurulumla yeniden başlayın; şüpheli bir sistemi temizlemek yerine yeniden kurmak genellikle daha güvenlidir.

İlgili içerikler: 2026'da Startup'lar İçin Hosting Seçim Rehberi • 2026 İçin WordPress Hosting Seçim Rehberi

Hangi Paket Size Uygun?

İhtiyacınıza göre doğru hizmeti seçmenize yardımcı olalım:

Doğru pakete karar veremiyorsanız destek ekibimizle iletişime geçerek ücretsiz danışmanlık alabilirsiniz.