Debian vServer kurulumu ve güvenli hale getirme: yeni başlayanlar için adım adım (3'ün 1. Bölümü)
„Kendi sunucun – 0'dan güvenliğe" serisi · 3 bölüm:
- Debian vServer kurulumu & güvenliği ← Buradasınız
- Froxlor kurulumu & yapılandırması
- E-postayı doğru kurma: SPF, DKIM & DMARC
Bu 1. Bölümdür. Yeni kiralanmış sunucunuzu güvenli bir temel duruma getirir. Bu sunucuya 2. Bölümde yönetim paneli Froxlor'u kuracak, 3. Bölümde e-posta gönderimini ayarlayacağız.

İçindekiler
- Ön koşullar
- Adım 1: SSH ile sunucuya bağlanma
- Adım 2: Sistemi güncelleme
- Adım 3: Ana bilgisayar adı, saat dilimi ve dil
- Adım 4: sudo yetkili kullanıcı oluşturma
- Adım 5: SSH erişimini güvenli hale getirme (root girişini kapatma, anahtarla giriş)
- Adım 6: Güvenlik duvarını yapılandırma (ufw)
- Adım 7: Fail2ban ile kaba kuvvet koruması
- Adım 8: Otomatik güvenlik güncellemeleri
- Kontrol listesi: sunucunuz güvenli mi?
- Sık sorulan sorular (SSS)
- Nasıl devam edilir?
- Kaynaklar
Yeni bir vServer (VPS) kiraladınız ve kendinize şunu soruyorsunuz: „Peki ya şimdi?" Tam da burada başlıyoruz. Bu rehber tamamen yeni başlayanlar için yazılmıştır. Ne yaptığımızı ve neden yaptığımızı basit sözcüklerle anlatıyoruz – ve her komutu kopyalayıp yapıştırabilirsiniz. Sonunda, en yaygın saldırılara karşı korunmuş, güncel bir sunucunuz olacak.
Debian 12 (Bookworm) kullanıyoruz; en popüler ve kararlı sunucu sistemlerinden biri. Ubuntu kullanıyorsanız, neredeyse tüm komutlar aynıdır.
Önemli: Tüm komutlarda yer tutucuları gerçek değerlerinizle değiştirin –
SERVER-IPyerine sunucunuzun IP adresi (sağlayıcınızın onay e-postasında) vekullanici-adiyerine seçtiğiniz bir ad.
Ön koşullar
- Debian 12 ile kiralanmış bir vServer/VPS. Henüz yok mu? Sağlayıcılar: örn. IONOS, Hetzner veya webtropia.
- Sunucunuzun IP adresi ve root parolası (sağlayıcıdan e-postayla alınan).
- Kendi bilgisayarınızda bir terminal: macOS ve Linux'ta önceden yüklü („Terminal"), Windows'ta PowerShell (önceden yüklü) veya PuTTY kullanın.
Fazlası gerekmez. Başlayalım.
Adım 1: SSH ile sunucuya bağlanma
„SSH", sunucunuza şifreli bir uzak bağlantıdır – komutları kendi bilgisayarınızda yazarsınız, sunucuda çalışırlar. Terminalinizi açın ve root kullanıcısı olarak bağlanın:
ssh root@SERVER-IP
İlk seferde sunucuya güvenip güvenmediğiniz sorulur – yes yazıp Enter'a basın. Ardından root parolasını girin (giriş görünmez, bu normaldir). Bağlandığınızda satır şöyle görünür:
root@sunucunuz:~#
Tebrikler – içeridesiniz. (SSH'a ayrıntılı bir giriş Debian wiki'sinde bulunur.)
Adım 2: Sistemi güncelleme
Yeni kurulmuş bir sunucu çoğunlukla bilinen güvenlik açıkları olan eski paketler içerir. Bu yüzden ilk adım her zaman: her şeyi güncelleyin. Bu komutla sunucu mevcut güncellemelerin listesini indirir, kurar, gereksiz paketleri kaldırır ve temizler:
apt update && apt full-upgrade -y && apt autoremove -y && apt clean
Bu birkaç dakika sürebilir. Yeniden başlatmanın gerekli olduğuna dair bir mesaj çıkarsa sunucuyu yeniden başlatın:
reboot
Yeniden başlatmanın ardından bağlantı kısa bir süre kesilir. ~30 saniye bekleyin ve ssh root@SERVER-IP ile yeniden bağlanın.
Adım 3: Ana bilgisayar adı, saat dilimi ve dil
Günlüklerin doğru zaman damgalarına sahip olması ve sunucunun düzgün bir ad taşıması için üç küçük şeyi ayarlıyoruz.
Ana bilgisayar adı (sunucunuz için bir ad, örn. web01):
hostnamectl set-hostname web01
Saat dilimini ayarlama (burada: Europe/Istanbul; uyarlayın):
timedatectl set-timezone Europe/Istanbul
Dil paketlerini (locales) kurma ve UTF-8 oluşturma:
apt install -y locales
sed -i 's/# tr_TR.UTF-8/tr_TR.UTF-8/' /etc/locale.gen
locale-gen
Sonucu kontrol edin:
timedatectl
Orada „Time zone: Europe/Istanbul" yazmalıdır.
Adım 4: sudo yetkili kullanıcı oluşturma
Sürekli root olarak çalışmak tehlikelidir – tek bir yazım hatası tüm sistemi bozabilir. Daha iyisi: yalnızca gerektiğinde, önündeki sudo sözcüğüyle yönetici hakları alan normal bir kullanıcı.
Kullanıcıyı oluşturun (kullanici-adi'nı değiştirin) ve sorulunca güçlü bir parola verin:
adduser kullanici-adi
Diğer soruları (ad, telefon…) Enter ile atlayabilirsiniz. Şimdi kullanıcıya sudo hakları verin:
usermod -aG sudo kullanici-adi
Devam etmeden önce bunu test edin. İkinci bir terminal penceresi açın ve yeni kullanıcıyla giriş yapın:
ssh kullanici-adi@SERVER-IP
sudo'nun çalıştığını kontrol edin:
sudo whoami
Parolayı girdikten sonra root görünüyorsa her şey yolundadır. Bu ikinci pencereyi açık bırakın – sonraki adımda güvenlik ağı olarak lazım olacak.
Adım 5: SSH erişimini güvenli hale getirme (root girişini kapatma, anahtarla giriş)
Şimdi uzak erişimi çok daha güvenli hale getiriyoruz. İki önlem: parola yerine SSH anahtarı ile giriş ve artık doğrudan root girişi yok.
Dikkat – kilitlenme riski: Bu adımda SSH erişimini değiştiriyoruz. 4. Adım'daki çalışan pencereyi mutlaka açık bırakın. Bir şey ters giderse böylece geri girebilirsiniz.
Windows ipucu – PuTTY ve Pageant gerekli mi? Şast değil. Windows 10/11 zaten OpenSSH ile gelir ve aşağıdaki komutlar (
ssh-keygen,ssh) doğrudan PowerShell'de çalışır – macOS/Linux'taki gibi. PuTTY araçlarını tercih ediyorsanız (veya daha eski bir Windows'unuz varsa) şöyle yapın:
>
1. PuTTYgen ile anahtar oluşturun: „Type of key"i EdDSA → Ed25519 yapın, Generate'e tıklayın, fareyi hareket ettirin. Özel anahtarı
.ppkolarak kaydedin; gösterilen genel anahtarı („Public key for pasting…" alanı) panoya kopyalayın. 2. Genel anahtarı sunucuda kullanıcınızın~/.ssh/authorized_keysdosyasına koyun (tek satır). 3. Özel anahtarı Pageant (PuTTY anahtar ajanı) ile yükleyin – böylece her bağlantıda yeniden seçmenize gerek kalmaz. 4. PuTTY ile bağlanın (sunucu:kullanici-adi@SERVER-IP).
>
PuTTYgen ve Pageant, PuTTY paketinde bulunur: putty.org. Her iki yol da işlevsel olarak eşdeğerdir – aşağıda daha az adım gerektirdiği için yerleşik OpenSSH'ı kullanıyoruz.
5.1 Kendi bilgisayarınızda anahtar oluşturun. Bu komutu kendi PC'nizde (sunucuda değil) bir terminalde çalıştırın ve soruları Enter ile onaylayın:
ssh-keygen -t ed25519 -C "sunucum"
5.2 Genel anahtarı sunucuya kopyalayın (yine PC'nizden):
ssh-copy-id kullanici-adi@SERVER-IP
ssh-copy-id olmayan Windows'ta bunun yerine:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh kullanici-adi@SERVER-IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
5.3 Test: Yeniden giriş yapın – artık parola istenmemelidir:
ssh kullanici-adi@SERVER-IP
5.4 Parolayla girişi ve root girişini kapatın. Sunucuda SSH yapılandırmasını nano editörüyle düzenleyin:
sudo nano /etc/ssh/sshd_config
Aşağıdaki satırları bulun (veya ekleyin) ve tam olarak şöyle ayarlayın:
PermitRootLogin no
PasswordAuthentication no
Ctrl+O, Enter ile kaydedin, Ctrl+X ile kapatın. Ardından SSH hizmetini yeniden yükleyin:
sudo systemctl restart ssh
Önemli: Mevcut pencerenizi henüz kapatmayın. Yeni bir pencere açın ve kullanici-adi ile girişin hâlâ çalıştığını – ve ssh root@SERVER-IP'nin artık reddedildiğini kontrol edin. Adım ancak o zaman başarılıdır. Arka plan SSH üzerine Debian wiki'sinde.
Adım 6: Güvenlik duvarını yapılandırma (ufw)
Bir güvenlik duvarı, gerçekten ihtiyacınız olan birkaçı dışında tüm ağ bağlantı noktalarını engeller. ufw („Uncomplicated Firewall") kullanıyoruz – basit ve yeni başlayan dostu.
Kurun ve temel kuralları ayarlayın (tüm gelen trafiği engelle, gideni izin ver):
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
SSH erişimine etkinleştirmeden önce izin verin – yoksa kendinizi kilitlersiniz:
sudo ufw allow OpenSSH
Gelecekteki web sunucusu için (2. Bölüm'de Froxlor) web bağlantı noktalarını da açıyoruz:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Şimdi güvenlik duvarını etkinleştirin ve durumu kontrol edin:
sudo ufw enable
sudo ufw status verbose
Soruyu y ile onaylayın. Durum listesinde yalnızca SSH (22), 80 ve 443 izinli olarak görünmelidir. ufw ayrıntıları Ubuntu Server Guide'da.
Adım 7: Fail2ban ile kaba kuvvet koruması
Saldırganlar otomatik olarak binlerce parola dener. Fail2ban çok sayıda başarısız denemeyi algılar ve saldıran IP adresini geçici olarak engeller. Kurun ve etkinleştirin:
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
Güncellemelerin üzerine yazmaması için kendi yapılandırmamızı oluşturuyoruz:
sudo nano /etc/fail2ban/jail.local
Aşağıdaki içeriği yapıştırın (5 başarısız denemeden sonra bir IP'yi 1 saat engeller):
[sshd]
enabled = true
maxretry = 5
bantime = 1h
findtime = 10m
Kaydedin (Ctrl+O, Enter, Ctrl+X) ve hizmeti yeniden başlatın:
sudo systemctl restart fail2ban
Durumu istediğiniz zaman kontrol edebilirsiniz:
sudo fail2ban-client status sshd
Adım 8: Otomatik güvenlik güncellemeleri
Güvenlik açıkları sürekli keşfedilir. Sunucunuzun önemli yamaları otomatik kurması için unattended-upgrades kuruyoruz:
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
Soruda „Yes" seçin. Hepsi bu – artık sunucu güvenlik güncellemelerini kendi başına kurar. Daha fazlası UnattendedUpgrades üzerine Debian wiki'sinde.
Kontrol listesi: sunucunuz güvenli mi?
Devam etmeden önce kısaca gözden geçirin:
- [ ] Sistem güncel (
apt update && apt full-upgrade) - [ ] Ana bilgisayar adı, saat dilimi ve locale ayarlı
- [ ]
sudoyetkili kendi kullanıcınız çalışıyor - [ ] SSH anahtarıyla giriş çalışıyor, parolayla giriş kapalı
- [ ]
ssh root@SERVER-IPreddediliyor - [ ] Güvenlik duvarı (ufw) etkin, yalnızca 22/80/443 açık
- [ ] Fail2ban çalışıyor
- [ ] Otomatik güvenlik güncellemeleri etkin
Sık sorulan sorular (SSS)
Kendimi kilitledim – şimdi ne yapayım? Neredeyse her sağlayıcı müşteri panelinde bir „VNC" veya „konsol" işlevi sunar; bununla SSH olmadan doğrudan giriş yapıp ayarları geri alabilirsiniz.
SSH anahtarları mı kullanmalıyım yoksa parola yeterli mi? Anahtarlar çok daha güvenlidir ve kuvvetle önerilir. Mutlaka parolada kalmak istiyorsanız PasswordAuthentication'ı yes'te bırakın – ancak çok uzun bir parola ve mutlaka Fail2ban kullanın.
Bu Ubuntu'da da çalışır mı? Evet, neredeyse aynı. Yalnızca çok eski sürümlerde bazı paket adları farklı olabilir.
Linux bilgisi gerekir mi? Hayır. Komutları kopyalayıp yer tutucuları değiştirirseniz halledersiniz. İlk seferde biraz sabır faydalıdır.
Nasıl devam edilir?
Sunucunuz artık güvenli. Sonraki bölümde, alan adlarını, web sitelerini, SSL sertifikalarını ve veritabanlarını bir arayüz üzerinden kolayca yönettiğiniz – konsol olmadan – ücretsiz yönetim paneli Froxlor'u kuruyoruz:
👉 2. Bölüm: Froxlor kurulumu & yapılandırması
Ve 3. Bölüm: E-postayı doğru kurma: SPF, DKIM & DMARC'da e-postalarınızın güvenle teslim edilmesini sağlıyoruz.
Bu arada: yazılım geliştirtmeyi tercih ediyor ya da özel sunucu/web çözümlerine ihtiyacınız varsa, PepperTools size memnuniyetle yardımcı olur.
Kaynaklar
- Debian 12 (Bookworm) – resmi sayfa
- Debian wiki: SSH
- Debian wiki: UnattendedUpgrades
- Ubuntu Server Guide: Firewalls (ufw)
- Fail2ban (resmi proje)
Durum: Haziran 2026. Komutlar ve paket adları yeni sürümlerle değişebilir – belirleyici olan her zaman resmi belgelerdir.
Faturalari daha kolay yonet
Easy Invoice teklifleri, faturalari ve musteri yonetimini bulutta birlestirir.
Easy Invoice u dene