Teknoloji

Yeni VPS’te İlk 24 Saat: Güncelleme, Güvenlik Duvarı ve Kullanıcı Hesapları

Yeni Aldığınız VPS’te İlk 24 Saat Neden Bu Kadar Önemli?

Yeni bir VPS satın aldığınız anda aslında iki sayaç birlikte çalışmaya başlar: Birincisi, projeyi ne kadar hızlı yayına alacağınızın süresi; ikincisi ise henüz hiçbir sertleştirme yapılmamış, varsayılan ayarlarla çalışan bir sunucunun ne kadar süre açıkta kalacağı. DCHost olarak sahada en çok gördüğümüz sorunlardan biri, “nasılsa sonra bakarım” denilen ilk 24 saatin, aylar sonra ortaya çıkan güvenlik ve performans problemlerinin temel sebebi olması. Varsayılan şifreyle açıkta kalan SSH, kapatılmamış gereksiz portlar, yapılmamış paket güncellemeleri ve tek bir root hesabına bağlı tüm erişim, küçük projelerde bile ciddi risk oluşturabiliyor.

Bu yazıda, yeni aldığınız bir VPS’te ilk 24 saat içinde adım adım neler yapmanız gerektiğini, pratik komutlarla ve gerçekçi bir sıralamayla ele alacağız. Odak noktamız üç temel başlık olacak: sistem güncellemeleri, güvenlik duvarı (firewall) kurulumu ve kullanıcı/SSH erişim mimarisi. Böylece sunucunuz daha ilk günden, ileride üzerine güvenle uygulama inşa edebileceğiniz sağlam bir temele sahip olacak.

0–2 Saat: İlk Erişim, Kimlik Doğrulama ve Hızlı Kontroller

Sunucu Bilgilerini Netleştirmek

Yeni bir DCHost VPS hizmeti açtığınızda, müşteri panelinizde aşağıdaki temel bilgileri görürsünüz:

  • Sunucu IP adresi
  • Kullanıcı adı (genelde root veya seçtiğiniz yönetici hesap)
  • Geçici veya ilk SSH parolası
  • İşletim sistemi ve sürümü (Ubuntu, Debian, AlmaLinux, Rocky Linux vb.)

İlk iş olarak bu bilgileri güvenli bir şifre kasasında (password manager) saklayın. Geçici parolaları kopyala-yapıştır ile oradan kullanmak hem hata payını azaltır hem de daha sonra yapacağınız parola değişikliklerinin takibini kolaylaştırır.

SSH ile İlk Bağlantı ve Temel Bilgiler

Yerel bilgisayarınız Linux veya macOS ise doğrudan terminalden, Windows kullanıyorsanız bir SSH istemcisi ile bağlanabilirsiniz:

ssh root@SUNUCU_IP_ADRESI

İlk bağlantıda sunucunun parmak izini (host key fingerprint) onaylamanız istenir; bu ekranı hızlıca geçmek yerine ekran görüntüsünü alıp saklamak, ileride olası “man-in-the-middle” şüphesinde işinize yarar.

Bağlandıktan sonra birkaç temel doğrulama yapın:

whoami
hostnamectl
cat /etc/os-release
uptime
  • whoami: Gerçekten root musunuz, kontrol edin.
  • hostnamectl: Sunucunun adını ve temel bilgileriler.
  • /etc/os-release: Dağıtım ve sürüm bilgisi.
  • uptime: Sunucunun ne zamandır açık olduğunu gösterir.

İlk Parola Değişikliği

Varsayılan veya geçici parola ile hiçbir zaman yola devam etmeyin. İlk 5 dakika içinde parolayı değiştirin:

passwd

Güçlü bir parola belirleyin: En az 16 karakter, küçük/büyük harf, rakam ve sembol içermeli. Yine de parolayı sadece yedek erişim olarak düşünün; bir sonraki adımda SSH anahtar tabanlı erişime geçeceğiz.

Donanım ve Ağ Sağlığını Hızlı Kontrol Etmek

VPS’inizin gerçekten beklediğiniz kaynaklarla geldiğinden emin olmak için hızlı bir kontrol yapın:

lscpu | egrep 'Model name|CPU(s)'
free -h
ds -h
ip a

Daha ileri seviye performans testleri için, özellikle yüksek trafik beklediğiniz projelerde yeni VPS aldığınızda CPU, disk ve ağ performansını benchmark ile test etme rehberimizi mutlaka incelemenizi öneririz.

2–6 Saat: Sistem Güncellemeleri ve Temel Araçlar

Tüm Paketleri Güncellemek

Birçok VPS imajı, oluşturulduğu tarihteki paket sürümleriyle gelir. Bu tarih ile sunucuyu gerçekten kullandığınız gün arasında haftalar hatta aylar olabilir. Bu yüzden canlıya almadan önce işletim sistemini güncellemek zorunlu bir adım.

Örneğin Ubuntu/Debian tabanlı bir sistemde:

apt update
apt upgrade -y
apt autoremove -y

RHEL tabanlı (AlmaLinux, Rocky Linux vb.) bir sistemde:

dnf update -y
# Eski nesil ise
# yum update -y

Bu komutlardan sonra sunucuyu yeniden başlatmanız gerekebilir:

reboot

Yeniden bağlanıp tekrar uptime ve uname -a ile kernel ve çalışma süresini kontrol edin.

Temel Yönetim Araçlarını Kurmak

Günlük operasyonlarda işinizi inanılmaz kolaylaştıracak küçük ama etkili araçlar vardır. Bunları ilk 6 saat içinde kurmanız, ileriye dönük rahatlık sağlar.

Örneğin Ubuntu/Debian için:

apt install -y htop vim git curl wget net-tools software-properties-common

RHEL tabanlı sistemler için:

dnf install -y htop vim git curl wget net-tools

htop ile CPU/RAM kullanımını, vim ile konfigürasyon dosyalarını, curl/wget ile HTTP isteklerini kolayca yönetebilirsiniz.

Zaman Dilimi ve NTP Ayarları

Log analizi ve hata ayıklama için sunucu saatinizin doğru olması çok kritiktir. Zaman diliminizi doğru seçin:

timedatectl list-timezones | grep Istanbul
timedatectl set-timezone Europe/Istanbul
timedatectl

Çıktıda NTP senkronizasyonunun yes olduğundan emin olun. Gerekirse systemd-timesyncd veya chrony kurulumunu kontrol edebilirsiniz.

6–12 Saat: Kullanıcı Hesapları ve SSH Sertleştirme

Root Yerine Yetkili Bir Kullanıcı ile Çalışmak

Güvenlik en temel prensiplerinden biri, en az ayrıcalık (least privilege) kuralıdır. Her işlemi doğrudan root ile yapmak saldırganlar için de hayatı kolaylaştırır. Bu yüzden ilk saatler içinde sudo yetkili normal bir kullanıcı oluşturun.

# Yeni kullanıcı oluşturma
adduser deploy
# Ubuntu/Debian'da sudo grubuna ekleme
usermod -aG sudo deploy

# AlmaLinux/Rocky Linux gibi sistemlerde wheel grubu
usermod -aG wheel deploy

Parolasını belirledikten sonra, artık bu kullanıcı ile giriş yapabileceksiniz:

ssh deploy@SUNUCU_IP_ADRESI

Bu kullanıcı ile root ayrıcalığı kullanmanız gerektiğinde:

sudo su -
# veya
sudo <komut>

SSH Anahtar Tabanlı Erişim Kurmak

Parola ile SSH erişimini mümkün olduğunca kısa sürede kapatmak istiyoruz. Bunun için istemci tarafında bir SSH anahtarı oluşturup sunucuya tanımlayalım.

Yerel bilgisayarınızda (istemcide):

ssh-keygen -t ed25519 -C "deploy@proje-adi"

Varsayılan konumu onaylayın ve mutlaka güçlü bir passphrase belirleyin. Ardından public anahtarınızı sunucuya kopyalayın:

ssh-copy-id deploy@SUNUCU_IP_ADRESI

Eğer ssh-copy-id yoksa, public anahtarı manuel ekleyebilirsiniz:

cat ~/.ssh/id_ed25519.pub

Sunucuda:

mkdir -p /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
echo "PUBLIC_ANAHTAR_ICERIGI" >> /home/deploy/.ssh/authorized_keys
chmod 600 /home/deploy/.ssh/authorized_keys
chown -R deploy:deploy /home/deploy/.ssh

Şimdi parolasız (ama anahtar + passphrase ile) SSH bağlantısını test edin:

ssh deploy@SUNUCU_IP_ADRESI

SSH Yapılandırmasını Sertleştirmek

Artık SSH anahtarınız hazır olduğuna göre, SSH sunucu ayarlarını sıkılaştırabilirsiniz. Konfigürasyon dosyası genellikle /etc/ssh/sshd_config yolundadır.

sudo vim /etc/ssh/sshd_config

Aşağıdaki ayarları kontrol edin veya ekleyin:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no
Protocol 2
X11Forwarding no
AllowUsers deploy

Burada AllowUsers ile sadece belirli hesapların SSH üzerinden bağlanabilmesini sağlıyoruz. Birden fazla kullanıcı varsa boşlukla ayırabilirsiniz. Değişikliklerden sonra servisi yeniden başlatın:

sudo systemctl restart sshd
# Bazı dağıtımlarda hizmet adı "ssh" olabilir
# sudo systemctl restart ssh

Bu adımlarla ilgili daha ileri seviye güvenlik önlemleri (FIDO2 donanım anahtarları, SSH CA, anahtar rotasyonu vb.) düşünüyorsanız, VPS’te SSH güvenliğini sağlamlaştırma rehberimizi detaylıca inceleyebilirsiniz.

12–18 Saat: Güvenlik Duvarı (Firewall) Kurmak

Neden İlk Günden Firewall Kurmalısınız?

İnternete doğrudan açık her VPS, saniyeler içinde otomatik tarama ve kaba kuvvet saldırılarının hedefi olur. Bu saldırıların çoğu başarısız olsa da loglarınızı şişirir, CPU kullanımı yaratır, bazen de beklenmedik açıklara çarpar. Güvenlik duvarı ile varsayılan kapalı bir model benimseyerek yalnızca izin verdiğiniz portların dış dünyaya açılmasını sağlarsınız.

DCHost altyapısında ağ katmanında da koruma mekanizmaları olsa bile, sunucu içi firewall her zaman ek bir savunma hattı olarak düşünülmelidir.

UFW ile Hızlı ve Basit Kurulum (Ubuntu/Debian)

Ubuntu/Debian kullanıcıları için ufw (Uncomplicated Firewall) oldukça pratik bir araçtır. Önce paketin kurulu olduğundan emin olun:

sudo apt install -y ufw

Varsayılan politikaları sıkı şekilde ayarlayalım:

sudo ufw default deny incoming
sudo ufw default allow outgoing

SSH bağlantısını kesmemek için önceden izin verin:

sudo ufw allow OpenSSH
# veya port bazlı
# sudo ufw allow 22/tcp

Web sunucusu kullanacaksanız HTTP ve HTTPS için de izin açın:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Artık ufw’yi etkinleştirebilirsiniz:

sudo ufw enable
sudo ufw status verbose

Sunucunuzda özel portlar (örneğin bir oyun sunucusu ya da API portu) varsa, sadece gerçekten ihtiyaç duyduklarınızı açın. Geri kalan her şeyi kapalı tutmak en güvenli yaklaşımdır.

RHEL Tabanlı Sistemlerde firewall-cmd (firewalld)

AlmaLinux/Rocky Linux gibi sistemlerde firewalld ve firewall-cmd ile benzer bir kurulum yapabilirsiniz:

sudo dnf install -y firewalld
sudo systemctl enable --now firewalld

sudo firewall-cmd --set-default-zone=public
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

sudo firewall-cmd --list-all

İhtiyaç halinde özel portları --add-port=PORT/tcp şeklinde ekleyebilirsiniz.

nftables ile İleri Seviye Güvenlik Duvarı

Modern Linux dünyasında nftables, iptables’in yerini alan ve çok daha esnek bir yapı sunan yeni jenerasyon firewall katmanıdır. Orta-büyük ölçekli projelerde, rate limit, port knocking, IPv6 kuralları gibi gelişmiş gereksinimleriniz varsa doğrudan nftables ile başlamanız mantıklı olur.

Bu konuda daha derinleşmek isteyenler için nftables ile VPS güvenlik duvarı rehberimizde pratik kurallar, IPv4/IPv6 örnekleri ve rate limit senaryolarını detaylı şekilde anlattık.

18–24 Saat: Giriş Denemeleri, Loglar ve Ek Güvenlik Katmanları

SSH Brute Force Saldırılarına Karşı Fail2ban

Ne kadar iyi parola/anahtar politikası uygularsanız uygulayın, internete açık her SSH portu sürekli denenecektir. Bunun loglarınızı ve kaynaklarınızı tüketmesini engellemek için fail2ban kullanmak çok etkilidir.

Ubuntu/Debian için kurulum:

sudo apt install -y fail2ban

RHEL tabanlı için:

sudo dnf install -y fail2ban

Basit bir SSH jail ayarı için yerel konfigürasyon dosyası oluşturun:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vim /etc/fail2ban/jail.local

[sshd] bölümünü bulun ve aşağıdaki ayarları kontrol edin:

[sshd]
enabled  = true
port     = ssh
logpath  = %(sshd_log)s
maxretry = 5
bantime  = 3600
findtime = 600

Servisi etkinleştirin:

sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

Fail2ban ve diğer koruma katmanlarını WAF, Cloudflare gibi servislerle birleştirmek istiyorsanız, VPS sunucu güvenliği rehberimizde katmanlı güvenlik yaklaşımını adım adım anlattık.

Günlük Log Kontrolleri İçin Alışkanlık Kazanmak

İlk 24 saatte, SSH ve sistem loglarını en azından bir kez gözden geçirmeniz çok faydalıdır. Özellikle yanlış yapılandırılmış servisler veya beklenmedik hatalar bu aşamada yakalanabilir.

# SSH girişleri
sudo journalctl -u ssh -n 100 --no-pager
# veya
sudo tail -n 100 /var/log/auth.log   # Debian/Ubuntu
sudo tail -n 100 /var/log/secure     # RHEL tabanlı

Günlük kullanımda, CPU/RAM/DISK özetini görmek için:

htop
free -h
ds -h
sudo iostat -xz 1 5   # iostat yüklü ise

Bu basit kontroller bile, ileride performans sorunlarına dönüşebilecek küçük işaretleri erken yakalamanızı sağlar. Daha sistematik bir yaklaşım için VPS log yönetimi ve merkezi loglama rehberimizi inceleyebilirsiniz.

Temel İzleme ve Uptime Kontrolü

İlk günden basit bir uptime izlemesi kurmak, beklenmedik kesintileri fark etmenizi sağlar. İsterseniz harici uptime servisleri kullanabilir, isterseniz de kendi VPS izleme altyapınızı oluşturabilirsiniz. DCHost müşterilerinin sık kullandığı yaklaşım, küçük bir Prometheus + Grafana stack’i veya hafif bir uptime aracı ile durum izlemektir.

Bu konuyla ilgili temel bir başlangıç yapmak isterseniz VPS izleme ve alarm kurulumu rehberimizi adım adım takip edebilirsiniz.

Ek Adım: Yedekleme ve Sonraki Günler İçin Yol Haritası

Yedekleme Stratejisini Ertelemeyin

Yeni bir VPS kurarken çoğu kişi önce uygulamayı yayına almayı, yedekleme konusunu ise “sonra bakarız” diye erteliyor. Ama gerçek şu ki, kritik dosya ve verileriniz bir kez kayboldu mu geriye dönmek çoğu zaman imkansız veya çok maliyetli. Bu yüzden daha ilk 24 saat içinde en azından temel bir yedekleme stratejisi tasarlamış olmanız önemli.

Genel kabul görmüş yaklaşım olan 3-2-1 yedekleme stratejisini (3 kopya, 2 farklı ortam, 1 adet farklı lokasyon) VPS ortamına nasıl uyarlayabileceğinizi, 3-2-1 yedekleme stratejisi rehberimizde detaylandırdık. İlk gün için bile, en azından:

  • Konfigürasyon dosyalarının (/etc altı kritik dizinler gibi) bir kopyasını
  • İlk uygulama sürümünüzü
  • Önemli script ve deployment araçlarınızı

manuel olarak farklı bir ortama (lokal bilgisayar, başka bir VPS veya object storage) kopyalamak iyi bir başlangıçtır.

Web Uygulaması Yayına Alırken Güvenlik Başlıkları

İlk 24 saat çoğunlukla sistem tarafına odaklansak da, kısa süre içinde bu VPS üzerinde bir web sitesini veya API’yi yayınlayacaksınız. Bu noktada HTTP katmanındaki güvenlik başlıkları da (HSTS, CSP, X-Frame-Options, Referrer-Policy vb.) en az OS düzeyindeki firewall kadar önemlidir.

Nginx veya Apache üzerinde bu başlıkları nasıl doğru kurgulayacağınızı öğrenmek için HTTP güvenlik başlıkları rehberimizi okuyabilir, böylece uygulama katmanını da güçlü bir güvenlik çemberine alabilirsiniz.

Özet: İlk 24 Saat İçin Pratik Kontrol Listesi

Buraya kadar anlattıklarımızı, DCHost’ta sıkça uyguladığımız pratik bir kontrol listesi haline getirelim. Yeni bir VPS aldığınızda ilk 24 saatte şu adımları tamamladığınızdan emin olun:

  1. İlk erişim ve parola değişikliği: SSH ile bağlan, geçici parolayı hemen değiştir.
  2. Sistem güncellemeleri: Tüm paketleri apt upgrade veya dnf update ile güncelle, gerekirse reboot et.
  3. Temel araçlar: htop, vim, curl, git gibi yönetim araçlarını kur.
  4. Zaman ve NTP: timedatectl ile zaman dilimini ve NTP’yi doğrula.
  5. Yetkili kullanıcı hesabı: deploy gibi yeni bir kullanıcı oluştur, sudo yetkisi ver.
  6. SSH anahtar tabanlı erişim: ssh-keygen ile anahtar üret, sunucuya ekle, test et.
  7. SSH sertleştirme: PermitRootLogin no, PasswordAuthentication no gibi ayarları uygula.
  8. Güvenlik duvarı: UFW veya firewalld ile sadece gereken portları aç; NFTables düşünüyorsan temel kuralları yaz.
  9. Fail2ban: SSH brute force saldırılarını sınırlamak için kur ve temel jail ayarını yap.
  10. Log ve izleme: SSH ve sistem loglarını gözden geçir, basit bir uptime/izleme mekanizması planla.
  11. Yedekleme: En azından konfigürasyon ve kodlar için ilk yedekleri al, 3-2-1’e giden yolu planla.

Bu adımları uyguladığınızda, VPS’iniz sadece “çalışan” bir sunucu olmaktan çıkıp, güvenli, izlenebilir ve yönetilebilir bir altyapıya dönüşür.

DCHost ile Standartlaştırılmış ve Güvenli VPS Altyapısı

DCHost’ta amacımız, yeni aldığınız her VPS’in mümkün olduğunca tekrarlanabilir ve öngörülebilir bir yapıda olması. Yani bugün küçük bir blog için kurduğunuz VPS ile yarın daha büyük bir e-ticaret projesi için kurduğunuz VPS, aynı temel güvenlik ve yönetim standartlarına sahip olmalı. Bu yazıda anlattığımız ilk 24 saatlik yol haritası, işte bu standardın ilk adımı.

Eğer bu adımları kendiniz uygulamak istiyorsanız, yukarıdaki komutlar ve referans verdiğimiz detaylı rehberler size güçlü bir başlangıç sunar. Daha yönetilen bir deneyim arıyorsanız da, DCHost ekibi olarak VPS, dedicated ve colocation çözümlerinde; güvenlik sertleştirme, güncelleme politikaları ve izleme konularında size eşlik edebiliriz.

Yeni bir VPS aldıysanız, bu yazıyı bir “check-list” gibi kullanın: Adımları tek tek işaretleyin, notlar alın, gerekiyorsa kendi iç dokümantasyonunuza uyarlayın. İlk 24 saatte attığınız bu sağlam adımlar, ileride yaşayabileceğiniz sorunların büyük kısmını daha ortaya çıkmadan çözmüş olacak.

Sıkça Sorulan Sorular

Root hesabını tamamen kapatmak zorunda değilsiniz, ancak doğrudan root ile şifreli SSH girişi açık kalmamalı. En iyi pratik, günlük işlemler için sudo yetkili normal bir kullanıcı (örneğin deploy) oluşturup, SSH erişimini sadece bu kullanıcıya ve anahtar tabanlı kimlik doğrulamaya izin vermektir. Root hesabını ise sadece gerektiğinde, sunucu içine girdikten sonra sudo su - ile kullanmak daha güvenlidir. Böylece hem brute force saldırılarına maruziyet azalır, hem de yanlışlıkla yapılabilecek kritik hataların önüne geçmiş olursunuz.

Bu tamamen ihtiyaç ve deneyim seviyenize bağlı. Küçük ve orta ölçekli projelerde, özellikle Ubuntu/Debian üzerinde UFW son derece yeterli ve kullanımı kolay bir çözümdür; birkaç komutla sadece SSH, HTTP ve HTTPS portlarını açıp gerisini kapatabilirsiniz. Daha karmaşık senaryolarda, IPv4/IPv6’yı birlikte yönetmek, rate limit, port knocking veya farklı zone’lar kurgulamak istiyorsanız nftables çok daha esnek ve güçlü bir yapı sunar. Başlangıç için UFW ile hızlıca koruma sağlamak, sonrasında ihtiyaç oldukça nftables’a geçmek pratik bir yol haritasıdır.

Minimumda üç şeyi öneriyoruz: Güncel bir işletim sistemi (tüm paketler upgrade edilmiş), düzgün kurgulanmış bir güvenlik duvarı (UFW, firewalld veya nftables) ve SSH brute force saldırılarına karşı fail2ban. Bunlara ek olarak, zaman içinde IDS/IPS çözümleri, WAF (örneğin ModSecurity), merkezi loglama (Loki, ELK) ve izleme (Prometheus/Grafana gibi) araçları ekleyebilirsiniz. Ancak ilk 24 saatlik pencerede, SSH sertleştirme + firewall + fail2ban üçlüsü sizi en yaygın saldırı vektörlerine karşı oldukça iyi bir seviyeye taşır.

Evet, özellikle de konfigürasyon dosyaları ve ilk uygulama sürümünüz için. Çoğu kişi veritabanı dolup kritik hale geldiğinde yedekleme düşünmeye başlıyor, ancak kaybettiğiniz şey sadece veri olmayabilir; günlerce uğraşıp ayarladığınız Nginx, PHP-FPM, firewall veya SSH yapılandırmalarını da geri getirmek zorunda kalabilirsiniz. İlk gün, en azından /etc altındaki kritik ayarları, deployment script’lerinizi ve kod tabanınızın stabil bir kopyasını farklı bir ortama almanız büyük fark yaratır. Daha sonra 3-2-1 stratejisine uygun otomatik yedekleme sistemine geçmeniz çok daha kolay olur.

DCHost olarak esnek bir yaklaşım benimsiyoruz. İsterseniz tamamen kendiniz yönetebileceğiniz, sadece altyapıyı sağladığımız bir VPS alabilir ve bu yazıdaki tüm adımları kendiniz uygulayabilirsiniz. İsterseniz de yönetilen hizmet kapsamına giren projelerde, işletim sistemi güncellemeleri, güvenlik duvarı kuralları, SSH sertleştirme, izleme ve yedekleme politikalarını birlikte tasarlayabiliriz. Kritik nokta, bu adımların atlanmaması; ister siz uygulayın, ister bizimle birlikte standardize edin, önemli olan ilk 24 saatte sağlam bir temel oluşturmanız.