Buyukweb
Debian 12 Sunucu Kurulumu ve Temel Güvenlik Yapılandırması

Debian 12 Sunucu Kurulumu ve Temel Güvenlik Yapılandırması

Debian 12 Bookworm nasıl kurulur? Minimal sunucu kurulumu, sudo yapılandırması, SSH güvenliği, güvenlik duvarı ve otomatik güncellemeler ile Debian hardening rehberi.

Büyükweb Editör EkibiHosting, Sunucu ve Sistem Yönetimi Editörü9 dakika okuma

Debian 12 Sunucu Kurulumu ve Temel Güvenlik Yapılandırması

Debian, kararlılığıyla ün kazanmış efsanevi Linux dağıtımıdır. Debian 12 (Bookworm), 2026'ya kadar tam destek alan en son LTS sürümüdür. Ubuntu, Debian tabanlı olduğundan Debian deneyimi Ubuntu'ya kolayca aktarılabilir. Bu rehberde Debian 12 minimal sunucu kurulumu ve güvenlik yapılandırmasını ele alıyoruz.

Debian'ın Özellikleri

  • Kararlılık: "Stabil" dal, iyice test edilmiş paketler içerir
  • Güvenlik: Hızlı güvenlik yamaları
  • Hafiflik: Minimal kurulumda çok az kaynak kullanır
  • Paket yönetimi: APT ile geniş paket deposu
  • Ücretsiz: Tamamen özgür yazılım

Debian 12 Minimal Kurulum

Kurulum sırasında:

  • Desktop environment'ı seçme - Sunucu için gerekli değil
  • Web server - Manuel kuracağız
  • SSH server - Seçin
  • Standard system utilities - Seçin

İlk Yapılandırma

Root ile İlk Giriş

Kurulum sonrası root ile SSH bağlantısı:

ssh root@sunucu_ip

Sistem Güncellemesi

apt update && apt upgrade -y
apt install -y curl wget git nano

Sudo Kurulumu

Debian minimal kurulumda sudo olmayabilir:

apt install sudo
usermod -aG sudo kullanici

Saat Dilimi

dpkg-reconfigure tzdata
# veya
timedatectl set-timezone Europe/Istanbul

Hostname

hostnamectl set-hostname debian-server.siteniz.com
echo "127.0.1.1 debian-server.siteniz.com debian-server" >> /etc/hosts

Ağ Yapılandırması — Statik IP + IPv6

Debian 12 default'ta DHCP gelir. Üretim sunucularında statik IP zorunlu.

Modern Yöntem: systemd-networkd

apt install systemd-networkd
systemctl enable --now systemd-networkd

# /etc/systemd/network/10-eth0.network
[Match]
Name=eth0

[Network]
Address=192.168.1.50/24
Gateway=192.168.1.1
DNS=1.1.1.1
DNS=8.8.8.8

# IPv6 (varsa)
Address=2001:db8::50/64
Gateway=2001:db8::1

Klasik Yöntem: ifupdown

# /etc/network/interfaces
auto eth0
iface eth0 inet static
    address 192.168.1.50/24
    gateway 192.168.1.1
    dns-nameservers 1.1.1.1 8.8.8.8

iface eth0 inet6 static
    address 2001:db8::50/64
    gateway 2001:db8::1
systemctl restart networking

Ağ Tanılama

ip a                       # Adres listele
ip route                   # Routing tablosu
ss -tlnp                   # Dinleyen TCP portlar
mtr -n 1.1.1.1            # Mesafe + paket kaybı
ping -c 4 1.1.1.1         # Bağlantı testi

SSH Güvenliği

/etc/ssh/sshd_config düzenlemesi:

PermitRootLogin no
PasswordAuthentication no      # Anahtar kurulduktan sonra
MaxAuthTries 3
Port 22                        # Değiştirmeyi düşünün
systemctl restart sshd

SSH Anahtar Yönetimi (ed25519 Tercih)

Parola yerine public-key kimlik doğrulama brute force saldırılarını imkansız kılar.

Anahtar Üretimi (Local Makine)

# ed25519 — modern, hızlı, küçük (önerilen)
ssh-keygen -t ed25519 -a 100 -C "kullanici@laptop"

# RSA 4096 — daha geniş uyumluluk gerek olduğunda
ssh-keygen -t rsa -b 4096 -C "kullanici@laptop"

# Anahtarı sunucuya kopyala
ssh-copy-id -i ~/.ssh/id_ed25519.pub kullanici@sunucu

Sunucu Tarafı sshd_config Hardening

# /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
AuthenticationMethods publickey
MaxAuthTries 3
LoginGraceTime 30
ClientAliveInterval 300
ClientAliveCountMax 2

# Sadece bu kullanıcılar SSH kullanabilir
AllowUsers kullanici admin

# Modern KEX/Cipher (eski client kapsam dışı)
KexAlgorithms curve25519-sha256,[email protected]
Ciphers [email protected],[email protected]
MACs [email protected],[email protected]
# Yapılandırmayı doğrula (parse hatası varsa görünür)
sshd -t

# Yeni config'i uygula
systemctl reload sshd

⚠️ Yeni config'i kullanmaya başlamadan mevcut SSH oturumunu kapatmayın — yanlış config exit ederse sunucudan kilitlersiniz. Yedek terminal açık tutun.

SSH Bastion / Jump Host Pattern

Birden fazla sunucu yönetiyorsanız tek bastion üzerinden geç:

# ~/.ssh/config (lokal)
Host bastion
    Hostname bastion.siteniz.com
    User admin

Host db1
    Hostname 10.0.1.10
    User admin
    ProxyJump bastion

Sonra: ssh db1 → otomatik bastion üzerinden tunneling.

Güvenlik Duvarı: nftables

Debian 10+, nftables kullanır (iptables'ın halefi):

apt install nftables
systemctl enable --now nftables

/etc/nftables.conf:

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;

        # Loopback
        iifname lo accept

        # Kurulmuş bağlantılar
        ct state established,related accept

        # SSH
        tcp dport 22 accept

        # HTTP ve HTTPS
        tcp dport { 80, 443 } accept

        # ICMP
        icmp type echo-request accept
        icmpv6 type echo-request accept

        # Logla ve düşür
        log prefix "nftables drop: " drop
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}
nft -f /etc/nftables.conf
systemctl restart nftables

Veya daha basit UFW ile:

apt install ufw
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Fail2Ban

apt install fail2ban
systemctl enable --now fail2ban

Otomatik Güvenlik Güncellemeleri

apt install unattended-upgrades apt-listchanges
dpkg-reconfigure unattended-upgrades

# Konfigürasyon
nano /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
    "Debian:${distro_codename}-security";
};
Unattended-Upgrade::Mail "[email protected]";
Unattended-Upgrade::Automatic-Reboot "false";

APT Kaynakları, Backports ve Pinning

Backports — Yeni Paketler, Stabil Tabanda

Debian Stable'da PHP 8.2 gibi paketler 1-2 yıl arkasından gelebilir. Backports bu paketlerin yeni sürümünü stabil sürümle uyumlu şekilde sunar.

# /etc/apt/sources.list.d/backports.list
echo "deb http://deb.debian.org/debian bookworm-backports main" > /etc/apt/sources.list.d/backports.list

apt update

# Backports'tan paket kur
apt install -t bookworm-backports nginx

APT Pinning — Karışık Sürüm Yönetimi

Bir paketi spesifik repo'dan istemek için /etc/apt/preferences.d/:

# /etc/apt/preferences.d/nginx
Package: nginx
Pin: release a=bookworm-backports
Pin-Priority: 700

# Diğer her şey stabil
Package: *
Pin: release a=stable
Pin-Priority: 500

Üçüncü Taraf Repo Eklerken

# Eski apt-key deprecated; modern yöntem keyrings/
curl -fsSL https://repo.example.com/key.asc | gpg --dearmor -o /etc/apt/keyrings/example.gpg

echo "deb [signed-by=/etc/apt/keyrings/example.gpg] https://repo.example.com/debian bookworm main" \
  > /etc/apt/sources.list.d/example.list

apt update

Apt Cache + Mirror Performansı

# Türkiye mirror (ulak.net.tr veya itu.edu.tr)
sed -i 's|http://deb.debian.org|http://debian.linux.org.tr|g' /etc/apt/sources.list

# Kapasiteyi tahmin et
apt install netselect-apt
netselect-apt -t 5 bookworm

Türkiye lokasyonlu Büyükweb VDS sunucularda yerel mirror paket güncelleme süresini 5-10x kısaltır.

Sistem Sertleştirme (Hardening)

Gereksiz Servisleri Devre Dışı Bırakma

# Çalışan servisleri listele
systemctl list-units --type=service --state=running

# Gereksiz servisleri kaldır
systemctl disable --now avahi-daemon
systemctl disable --now bluetooth

/proc Kısıtlaması

/etc/fstab'a ekleyin:

proc /proc proc defaults,hidepid=2 0 0

Çekirdek Güvenlik Parametreleri

/etc/sysctl.d/99-security.conf:

# IP Spoofing koruması
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# ICMP broadcast yoksay
net.ipv4.icmp_echo_ignore_broadcasts = 1

# SYN cookie koruması
net.ipv4.tcp_syncookies = 1

# IP forwarding kapat (router değilse)
net.ipv4.ip_forward = 0

# Core dump devre dışı
fs.suid_dumpable = 0
sysctl -p /etc/sysctl.d/99-security.conf

Debian Güvenlik Kaynakları

/etc/apt/sources.list:

deb http://deb.debian.org/debian bookworm main
deb http://security.debian.org/debian-security bookworm-security main
deb http://deb.debian.org/debian bookworm-updates main

İzleme ve Yedekleme — Üretim Şart

Hafif İzleme: Glances + Netdata

# Glances — komut satırı dashboard
apt install glances

# Netdata — web dashboard (port 19999)
bash <(curl -SsL https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/kickstart.sh)

Netdata, CPU/RAM/disk/network/process metrikleri gerçek zamanlı toplar; default config bile prod kullanım için yeterli. Dış internete açmayın — Cloudflare Tunnel veya VPN arkasında çalıştırın.

Yedekleme Stratejisi: Borgbackup

apt install borgbackup

# Repo init (uzak yedek sunucusu)
borg init --encryption=repokey-blake2 yedek@yedeksunucu:/backups/sunucu1

# Günlük yedek
borg create --stats --progress \
  yedek@yedeksunucu:/backups/sunucu1::backup-{now:%Y-%m-%d-%H%M} \
  /etc /var/www /home /var/backups/mysql

# Eski yedekleri temizle (retention)
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6 \
  yedek@yedeksunucu:/backups/sunucu1
# /etc/cron.d/borg-backup
0 3 * * * root /usr/local/bin/backup.sh

Borgbackup deduplication + incremental + client-side encryption ile gerçek üretim grade — rsync ham yedeğin önemli avantajları.

Disk Snapshot: BTRFS / LVM

Büyükweb VDS paketlerinde haftalık otomatik snapshot standart; ek olarak kendi LVM thin snapshot ile saatlik alabilirsiniz:

lvcreate -L 10G -s -n root_snap_$(date +%H) /dev/vg0/root

Yaygın Debian 12 Sorunları

Sorun Sebep Çözüm
apt update GPG hatası Anahtar deprecated veya eksik apt install debian-archive-keyring
Could not get lock /var/lib/dpkg/lock Başka apt çalışıyor veya çakışmış fuser /var/lib/dpkg/lock ile pid bul, kill; dpkg --configure -a
Network bridge sonrası SSH kopuk Bridge config yanlış (özellikle KVM) Console'dan ifdown br0; networking restart
E: Unable to locate package Repo eklemediniz veya apt update yapmadınız sources.list kontrol + apt update
Disk full ama df boş gösteriyor Silinmiş ama açık dosya lsof +L1 ile bul; daemon restart
OOM killer servisi öldürdü RAM yetersiz, swap yok/küçük `dmesg
Boot'ta uzun "Started Wait for Network to be Configured" systemd-networkd-wait-online timeout İnterface'i RequiredForOnline=no yap
apt full-upgrade kernel sorunu Eski kernel kalıntıları + grub apt autoremove sonrası update-grub

Hızlı Tanılama Komutları

# Servis durumu özet
systemctl --failed
systemctl status

# Son boot logları
journalctl -b --priority=err

# Disk kullanımı
ncdu /                      # Görsel
df -hT                      # Mount başına
du -hcs /var/log/*          # Log dizini

# Bellek + swap
free -h
cat /proc/swaps
swapon --show

# Hangi paket en çok yer kapladı
dpkg-query -W --showformat='${Installed-Size}\t${Package}\n' | sort -rn | head -20

Büyükweb VDS ile Debian

Büyükweb VDS sunucular Debian 12 seçeneği ile sunulabilir. Root SSH erişimi ile yukarıdaki hardening adımlarını uygulayabilirsiniz.

Sonuç

Debian 12, kararlılık ve güvenlik öncelikli sunucu ortamları için mükemmel bir seçimdir. Minimal kurulum, SSH güvenliği, güvenlik duvarı, Fail2Ban ve otomatik güvenlik güncellemeleri kombinasyonu, modern bir Linux sunucusu için temel güvenlik standardını oluşturur.


Debian 12 Sıkça Sorulan Sorular

Debian 12 ne zamana kadar destek alacak?

LTS desteği 2028 Haziran'a kadar. bookworm-security repo aktif kaldığı sürece güvenlik yamaları gelecek. Üretim için 2027 başında Debian 13 (Trixie) geçişi planlamak doğru — paralelde test ortamı.

Debian mı Ubuntu Server mı?

  • Debian 12: Maksimum kararlılık, küçük rotasyon, vanilla Linux deneyimi. Veritabanı/mail/network sunucu için ideal.
  • Ubuntu 22.04 LTS: Daha yeni paketler, daha fazla 3rd-party araç desteği, snap entegrasyonu. Cloud / DevOps / container tarafında daha yaygın.
  • Sürdürülebilirlik açısından Debian uzun ömürlü kararlar için daha az sürpriz çıkarır.

Backports kullanmak güvenli mi?

Bookworm-backports yarı resmi — Debian güvenlik ekibi yamayabiliyor ama ana stable'ın aksini garanti vermiyor. Spesifik paket için kullanın, bütün sistemi backports'tan kurmayın. Web server (nginx, php) için sık tercih, kernel için kaçının.

CloudLinux veya AlmaLinux'a geçmeli miyim?

Büyükweb cPanel paketleri CloudLinux üzerinde — multi-tenant izolasyonu (LVE limits, MySQL Governor) Debian'da yok. Tek hizmet ve müşteri için Debian; binlerce hesap için CloudLinux/AlmaLinux mantıklı.

Otomatik kernel güncellemesi reboot ister mi?

Yeni kernel'in aktif olması için mutlaka reboot gerekli. unattended-upgrades default'ta reboot etmez (Automatic-Reboot "false"); manuel shutdown -r +5 ya da bakım penceresi gerek. needrestart paketi hangi servislerin restart edilmesi gerektiğini söyler.

Docker Debian 12'de doğrudan çalışır mı?

Evet, Docker resmi repo'su Bookworm destekler:

curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list
apt update && apt install docker-ce docker-ce-cli containerd.io

Modern alternatif: Podman (rootless, daemonless) — Debian repo'sunda mevcut.

Hangi Büyükweb paketinde Debian 12 var?

VDS Sunucu, Sanal Sunucu, Türkiye VDS, Fiziksel Dedicated, Forex VDS, Yapay Zeka Sunucu gibi root erişimli paketlerin tümünde Debian 12 OS olarak seçilebilir; sipariş sırasında belirtilir, kurulum 5-15 dakikada tamamlanır.

İlgili Büyükweb Hizmetleri

Tercih ettiğiniz işletim sistemi (Windows, Linux, BSD vb.) için Büyükweb sunucu paketleri:

Sorularınız için 0850 302 60 70 numaralı destek hattımıza veya iletişim sayfamıza yazabilirsiniz.

İşletim Sistemleri İlgili Hizmetlerimiz

Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin

Etiketler:

#debian#güvenlik#kurulum rehberi#işletim sistemi#sunucu os#linux

Bu yazıyı paylaş