
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.
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:

