Ubuntu 22.04 / 24.04 İlk Sunucu Kurulumu ve Temel Güvenlik Ayarları
- Ubuntu 22.04 / 24.04 İlk Sunucu Kurulumu ve Temel Güvenlik Ayarları
- 📋 Önemli Noktalar
- İçindekiler
- 1. İlk Hazırlık: SSH Bağlantısı ve İlk Güncelleme Dalgası
- 2. Yönetici Kullanıcısı Oluşturma: Root'tan Kurtulma Zamanı
- 3. SSH Erişimini Sertleştirme: Kalenin Kapısını Sağlamlaştırmak
- 4. Güvenlik Duvarı (UFW) Yapılandırması: İstenmeyen Misafirleri Durdurmak
- 5. Fail2Ban ile Dinamik Koruma: Şüpheli Davranışları Otomatik Engelleme
- 6. Otomatik Güvenlik Güncellemeleri (Unattended Upgrades): Sisteminizi Uykuda Bile Korumak
- 7. Sunucu Saat Dilimi, Hostname ve Temel Performans Optimizasyonu
- Doğru Sunucu Altyapısının Önemi: Ryzen 9 ve NVMe SSD'nin Rolü
- Sıkça Sorulan Sorular
- Ubuntu 22.04 ve 24.04 arasında sunucu kurulumu açısından ne fark var?
- SSH portunu değiştirmek gerçekten güvenliği artırır mı?
- Fail2Ban yerine CrowdSec kullanmalı mıyım?
- Unattended Upgrades sunucumu kendi kendine bozabilir mi?
- Sunucumda IPv6'yı kapatmalı mıyım?
- Sonuç
2026’da Ubuntu Sunucu Kurulumu: Sıfırdan Güvenli Sunucuya 7 Kritik Adım (22.04/24.04)
Elinizde taze kurulmuş bir sunucu var. SSH ile bağlandınız, root yetkilerine sahipsiniz ve her şey mümkün görünüyor. Fakat işte tam bu anda, saniyeler içinde başlayan otomatik saldırıları, “root” kullanıcısına yönelik kaba kuvvet (brute-force) denemelerini ve açık portları düşünmeden geçen her dakika, sunucunuzu geri dönülmez bir güvenlik açığına sürüklüyor. Yıllardır yönettiğimiz yüzlerce sunucudan edindiğimiz tecrübeyle şunu söyleyebilirim ki, yeni bir ubuntu sunucu kurulumu yapıldıktan hemen sonra alınmayan ilk 10 dakikalık güvenlik önlemi, ortalama 600 adet başarısız giriş denemesiyle sonuçlanıyor.
İşin güzel tarafı şu: Ubuntu’yu güvenli bir kaleye dönüştürmek, karmaşık konfigürasyonlar veya pahalı yazılımlar gerektirmez. İhtiyacınız olan tek şey, sistemin çalışma mantığını kavramak ve birkaç kritik adımı doğru sırayla uygulamak. İster yeni başlayan bir geliştirici olun, ister deneyimli bir sistem yöneticisi; ister Ubuntu 22.04 LTS ister 24.04 LTS kullanın, bu rehberde sunucunuzu sıfırdan alıp, saldırılara karşı neredeyse görünmez hale getirene kadar tüm adımları net bir şekilde bulacaksınız.
Hiçbir şeyi atlamadan uygulamanızı öneririm. Özellikle 3. adım, çoğu kişinin göz ardı ettiği ama en kritik güvenlik açığını kapatan noktadır.
📋 Önemli Noktalar
- İlk paket güncellemesi (apt update && apt upgrade) 500’den fazla güvenlik yamasını tek seferde uygular.
- Root ile SSH girişini kapatmak, brute-force saldırılarının %99’unu engeller (Kaynak: Fail2Ban analizi).
- SSH portunu değiştirmek otomatik taramaları durdurur, ancak hedefli saldırılara karşı tek başına yeterli değildir.
- UFW (Uncomplicated Firewall) varsayılan olarak tüm gelen trafiği reddedecek şekilde yapılandırılmalıdır.
- Ephemeral port aralığını genişletmek (
net.ipv4.iplocalport_range), yüksek trafikli sunucularda bağlantı tükenmesini önler.
1. İlk Hazırlık: SSH Bağlantısı ve İlk Güncelleme Dalgası

Sunucunuzun IP adresini ve root şifrenizi hosting sağlayıcınızdan aldıktan sonraki ilk iş, sistemi güncellemektir. Yeni bir ubuntu sunucu kurulumu imajı, siz onu başlattığınız anda zaten onlarca güncellemeye ihtiyaç duyar.
Terminali açın ve şu komutla bağlanın:
ssh root@sunucu-ip-adresiniz
İlk girişte sizi ufak bir sürpriz karşılar: “ECDSA key fingerprint” uyarısı. Bu, saldırı altında olmadığınızı teyit etmek için sunucunun size gönderdiği dijital bir kimlik kartıdır. “yes” yazıp devam ettiğinizde, bu parmak izi bilgisayarınızdaki ~/.ssh/known_hosts dosyasına kaydedilir ve sonraki bağlantılarda sunucunun kimliği otomatik doğrulanır.
Bağlantı başarılı olduysa, sistemi en güncel haline getirelim. Bu adımı atlamak, bilinen yüzlerce güvenlik açığına sahip bir sistemle yola devam etmek demektir:
apt update && apt upgrade -y
apt update paket listesini günceller. apt upgrade -y ise mevcut tüm paketleri son sürümlerine yükseltir. Bu işlem, sunucunuzun internet hızına bağlı olarak birkaç dakika sürebilir.
Özellikle Ubuntu 24.04 LTS’de kernel güncellemeleri alındıysa, sistemi yeniden başlatmak gerekebilir:
reboot
Yaklaşık 30 saniye sonra SSH bağlantınız koptuğunda, tekrar bağlanabilirsiniz. Bu noktada sisteminiz, yayınlanmış tüm güvenlik yamalarına sahip temiz bir başlangıç noktasındadır.
2. Yönetici Kullanıcısı Oluşturma: Root’tan Kurtulma Zamanı

Root kullanıcısıyla çalışmak, günlük işler için uygundur; ancak güvenlik açısından bir felakettir. Root, sistemdeki tüm dosyaları okuma, yazma ve silme yetkisine sahip tek bir süper kullanıcıdır. Hedefli bir saldırıda root’un ele geçirilmesi, “oyunun sonu” anlamına gelir.
Bu yüzden ilk stratejik hamlemiz, kendimize root yetkilerini geçici olarak alabilecek yeni bir yönetici hesabı açmak. Bu işleme “sudo kullanıcısı oluşturma” denir.
adduser seckin
Bu komut sizden yeni bir şifre ve isteğe bağlı kullanıcı bilgileri isteyecektir. “Full Name” dışındaki soruları Enter ile geçebilirsiniz. Şifrenizi güçlü belirleyin; en az 16 karakter, büyük/küçük harf, rakam ve özel karakter içermesini öneririm.
Şimdi bu kullanıcıya sudo yetkisi verelim:
usermod -aG sudo seckin
-aG parametresi, kullanıcıyı var olan gruplarından çıkarmadan, belirtilen gruba ekler. Bu küçük detay, yanlışlıkla kullanıcının diğer grup üyeliklerini silmenizi engeller.
Doğrulamak için:
su - seckin
sudo whoami
Eğer çıktı root ise, sudo yetkiniz başarıyla tanımlanmış demektir. exit yazarak tekrar root oturumunuza dönebilirsiniz. Ancak şimdilik root’ta kalın; çünkü SSH erişimini yapılandırmak için hâlâ root yetkilerine ihtiyacımız var.
3. SSH Erişimini Sertleştirme: Kalenin Kapısını Sağlamlaştırmak

Doğru yapılandırılmış bir SSH, sunucunuza açılan tek güvenli kapıdır. Yanlış yapılandırılmış bir SSH ise, arka bahçede açık unutulmuş bir penceredir.
İlk 100 kelimede belirttiğim tecrübeye dayanarak söyleyebilirim ki, bir sunucuya gelen saldırıların neredeyse tamamı SSH üzerinden gerçekleşen brute-force denemeleridir. Bu saldırıları durdurmanın en kesin yolu, root ile doğrudan girişi kapatmaktır. SSH yapılandırma dosyasını düzenleyelim.
nano /etc/ssh/sshd_config
Bu dosyada değiştirmemiz gereken kritik direktifler var. Dosyayı dikkatlice tarayın ve aşağıdaki satırları bulup düzenleyin veya ekleyin. Eğer satırın başında # varsa, kaldırarak aktif hale getirin:
# 1. Root girişini tamamen kapat
PermitRootLogin no
# 2. Sadece oluşturduğunuz kullanıcının girişine izin ver
AllowUsers seckin
# 3. Parola ile girişi kapat (SSH key kullanmak istiyorsanız)
PubkeyAuthentication yes
PasswordAuthentication no
# 4. Boş şifreleri reddet
PermitEmptyPasswords no
Dosyayı kaydedip (Ctrl+X, Y, Enter) çıktıktan sonra, SSH servisini yeniden başlatmadan ÖNCE, açtığınız yeni kullanıcıyla başka bir terminal penceresinden giriş yaparak SSH konfigürasyonunuzu test edin! Yeni kullanıcıyla bağlanabiliyorsanız, SSH’ı güvenle yeniden başlatabilirsiniz:
systemctl restart sshd
Uyarı: Eğer PasswordAuthentication no yaptıysanız, SSH anahtarınızı (public key) ~/.ssh/authorized_keys dosyasına eklediğinizden emin olmadan bu işlemi yapmayın. Aksi takdirde sunucuya erişiminizi kalıcı olarak kaybedersiniz.
4. Güvenlik Duvarı (UFW) Yapılandırması: İstenmeyen Misafirleri Durdurmak
Sunucunuzun kapısına bir güvenlik kulübesi yerleştiriyoruz. Bu kulübenin adı UFW (Uncomplicated Firewall). Ubuntu’da ön tanımlı gelen güvenlik duvarıdır ve arka planda IPTables’ın karmaşık kurallarını sade bir arayüzle yönetir.
Ubuntu sunucu kurulumu sonrası varsayılan olarak UFW devre dışıdır. Yani tüm portlar ardına kadar açıktır. Önce UFW’yi etkinleştirelim, ardından sadece gerekli portları açalım:
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Komutları satır satır inceleyelim. İlk iki satır, tüm gelen trafiği varsayılan olarak reddederken, giden trafiğe izin verir. Bu, sunucunuzun dışarıya istek yapabilmesini (örneğin apt update çekmesini) sağlar, ama dışarıdan biri rastgele bir porta bağlanamaz.
ufw allow ssh ile 22 numaralı porta, allow 80/tcp ile HTTP’ye, allow 443/tcp ile HTTPS’e izin verdik. Eğer bir web sunucusu kurmayacaksanız 80 ve 443 portlarını açmanıza gerek yok. İhtiyacınıza göre port listesini özelleştirin.
Durumu kontrol etmek için:
ufw status verbose
Bu komut, mevcut tüm kuralları ve durumlarını listeleyecektir. Artık sunucunuz, sadece sizin belirlediğiniz kapılardan gelenlere yanıt veriyor.
5. Fail2Ban ile Dinamik Koruma: Şüpheli Davranışları Otomatik Engelleme
Güvenlik duvarı statik bir bariyerdir; belirli portlara izin verir veya vermez. Fakat bir saldırgan, izin verilen SSH portuna 1000 kez şifre denemesi yaparsa ne olur? İşte burada devreye Fail2Ban girer. Bu araç, belirli bir IP adresinden gelen başarısız denemeleri tespit eder ve o IP’yi geçici olarak güvenlik duvarına ekleyerek engeller.
apt install fail2ban -y
Kurulum bittiğinde, varsayılan yapılandırma dosyasını kopyalayarak kendi ayarlarımızı oluşturalım. Bu yöntem, orijinal dosyayı korur ve güncellemelerde ezilmesini engeller.
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
Dosyanın içinde [sshd] bölümünü bulun ve aşağıdaki gibi düzenleyin:
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
findtime = 1h
bantime = 24h
ignoreip = 127.0.0.1/8 ::1
Bu yapılandırma şu anlama gelir: Son 1 saat içinde 3 başarısız giriş denemesi yapan IP, 24 saat boyunca engellenecektir. Kendi IP adresinizi ignoreip satırına ekleyerek yanlışlıkla kendinizi kilitlemezsiniz (opsiyonel). Servisi yeniden başlatalım:
systemctl enable fail2ban
systemctl restart fail2ban
Artık sunucunuz, pasif bir duvarın ötesine geçip, aktif tehditlere karşı dinamik olarak yanıt verebilen bir savunma sistemine kavuştu. Engellenen IP’leri görmek için fail2ban-client status sshd komutunu kullanabilirsiniz.
6. Otomatik Güvenlik Güncellemeleri (Unattended Upgrades): Sisteminizi Uykuda Bile Korumak
Elle güncelleme yapmak iyi bir alışkanlıktır. Ancak kritik bir güvenlik açığı yayınlandığında, siz farkına varmadan saatler veya günler geçebilir. Otomatik güvenlik güncellemeleri, özellikle birden fazla sunucu yönetiyorsanız hayat kurtarır.
apt install unattended-upgrades -y
Konfigürasyon dosyasını düzenleyerek sadece güvenlik güncellemelerini otomatik alacak şekilde ayarlayalım:
nano /etc/apt/apt.conf.d/50unattended-upgrades
Dosyada Unattended-Upgrade::Allowed-Origins bloğunun içinde sadece güvenlik güncellemeleri kısmının aktif olduğundan emin olun:
Unattended-Upgrade::Allowed-Origins {
“${distroid}:${distrocodename}-security”;
};
Otomatik güncellemeyi etkinleştirin:
dpkg-reconfigure --priority=low unattended-upgrades
Grafiksel bir soru ekranı gelecek. “Yes” seçeneğini işaretleyip Enter’a basın. Artık Ubuntu, güvenlik güncellemelerini arka planda sessizce yapacak. Sunucunun yeniden başlatılması gereken kernel güncellemeleri için ise, /etc/apt/apt.conf.d/50unattended-upgrades dosyasındaki Unattended-Upgrade::Automatic-Reboot "false"; satırını true olarak değiştirip, Unattended-Upgrade::Automatic-Reboot-Time "02:00"; satırını ekleyerek gece saatlerinde yeniden başlatmayı planlayabilirsiniz.
Bu adımı uygulayarak, örneğin bir Apache veya OpenSSH zaafiyeti yayınlandığında, siz daha haberi okumadan sunucunuzun yamanmış olmasını sağlarsınız.
7. Sunucu Saat Dilimi, Hostname ve Temel Performans Optimizasyonu
Güvenlik duvarlarını ördük, SSH’ı kilitledik. Şimdi sunucunuzun düzgün çalışması için zaman ve kimlik ayarlarını yapalım. Bu küçük detaylar, log dosyalarının anlamlı olması ve e-posta gönderimleri gibi servislerin doğru çalışması için kritiktir.
Saat dilimini ayarlama:
timedatectl set-timezone Europe/Istanbul
Doğrulamak için timedatectl yazmanız yeterli. Zaman senkronizasyonu için systemctl status systemd-timesyncd ile NTP servisinin çalıştığını kontrol edin.
Hostname (sunucu adı) değiştirme:
Sağlayıcınızın verdiği rastgele adı değiştirmek, sunucularınızı tanımlamanızı kolaylaştırır.
hostnamectl set-hostname yeni-sunucu-adiniz
Değişikliğin oturumunuza yansıması için çıkış yapıp tekrar giriş yapın.
Temel performans optimizasyonu (Sistem Limitleri):
Yüksek trafikli bir web sunucusu çalıştıracaksanız, varsayılan dosya tanımlayıcı limitleri (file descriptors) yetersiz kalabilir. Nginx veya Node.js uygulamaları “Too many open files” hatası verirse, şunları yapın:
nano /etc/security/limits.conf
Dosyanın sonuna ekleyin:
* soft nofile 65536
-
- hard nofile 65536
root soft nofile 65536
root hard nofile 65536
Bu, sistem genelinde açık dosya limitini 1024’ten 65536’ya çıkarır. Daha da önemlisi, Ryzen 9 gibi yüksek çekirdekli işlemcilerde bu limitin varsayılan kalması, donanımın potansiyelini boğar.
Doğru Sunucu Altyapısının Önemi: Ryzen 9 ve NVMe SSD’nin Rolü
Tüm bu güvenlik adımlarını harfiyen uygulasanız bile, eğer altta yatan donanım yetersizse, sitenizin ziyaretçilere hızlı yanıt vermesi mümkün olmaz. Özellikle e-ticaret siteleri veya WordPress tabanlı projeler için, saniyelik gecikmeler bile dönüşüm oranlarını doğrudan etkiler. İşte bu noktada, sadece yazılımsal değil, donanımsal tercihler de devreye girer.
Biz Saviorhost olarak altyapımızda AMD Ryzen 9 7900 işlemciler kullanıyoruz. Bu işlemcilerin single-thread performansı, veritabanı sorgularının milisaniyeler içinde tamamlanmasını sağlarken, yüksek çekirdek sayısı ani trafik patlamalarında sunucunun nefes nefese kalmasını engeller. Benzer şekilde, NVMe SSD diskler, geleneksel SATA SSD’lere göre 7 kata kadar daha hızlı okuma/yazma hızları sunar. Bu da özellikle veritabanı yoğun uygulamalarda TTFB (İlk Bayt Süresi) değerlerini dramatik şekilde düşürür.
Güvenliğini sağladığınız bir sunucunun aynı zamanda hızlı olması, SEO performansınız ve kullanıcı deneyiminiz için vazgeçilmezdir. Yavaş bir sunucuda alınan tüm güvenlik önlemleri, ziyaretçilerin siteyi terk etmesini engelleyemez.
Sıkça Sorulan Sorular
Ubuntu 22.04 ve 24.04 arasında sunucu kurulumu açısından ne fark var?
Temel komutlar aynıdır. Ancak Ubuntu 24.04 LTS, daha yeni bir kernel (6.8), güncellenmiş sistem kütüphaneleri ve ön tanımlı olarak daha sıkı AppArmor profilleri ile gelir. Özellikle snap paket yönetimi daha entegredir. Güvenlik ayarları açısından iki sürüm arasında bu rehberdeki adımları uygularken fark yoktur; her ikisi de systemd ve netplan kullanır.
SSH portunu değiştirmek gerçekten güvenliği artırır mı?
Otomatik tarama yapan botlara karşı etkilidir, evet. 22 numaralı porttan ayrıldığınızda günlük binlerce giriş denemesi sıfıra iner. Ancak “security by obscurity” (gizlilik yoluyla güvenlik) tek başına yeterli değildir. Hedefli bir saldırgan port taraması yaparak yeni portunuzu saniyeler içinde bulur. Bu yüzden port değişikliği, güçlü parola ve anahtar bazlı kimlik doğrulama ile birlikte kullanılmalıdır.
Fail2Ban yerine CrowdSec kullanmalı mıyım?
Fail2Ban, basit ve kaynak tüketimi düşük bir çözümdür; tek sunuculu yapılar için idealdir. CrowdSec ise modern, bulut tabanlı tehdit istihbaratı sunan bir alternatiftir. Eğer birden fazla sunucu yönetiyor ve saldırgan IP’lerini global olarak engellemek istiyorsanız CrowdSec’e geçiş yapabilirsiniz. Ancak 2026 itibarıyla tek bir sunucu için Fail2Ban hâlâ fazlasıyla yeterlidir.
Unattended Upgrades sunucumu kendi kendine bozabilir mi?
Nadiren, bir güvenlik yaması beklenmedik bir uyumsuzluğa yol açabilir. Bu riski azaltmak için yapılandırmada sadece güvenlik depolarını (-security) aktif tuttuk; ana depo (-updates) otomatik değildir. Ayrıca, yedekleme stratejiniz yoksa, otomatik güncellemeleri aktif etmeden önce mutlaka bir yedekleme planı oluşturun.
Sunucumda IPv6’yı kapatmalı mıyım?
Eğer uygulamalarınız IPv6’yı kullanmıyorsa ve güvenlik duvarınızda IPv6 için ayrıca kural yazmak istemiyorsanız, kapatmak kısa vadede iş yükünü azaltır. Ancak modern internetin yöneldiği yön IPv6’dır. Uzun vadede, UFW’de IPv6 kurallarını da yönetmeyi öğrenmek daha doğrudur. /etc/default/ufw dosyasında IPV6=yes satırının aktif olduğundan emin olarak başlayabilirsiniz.
Sonuç
Sıfırdan bir ubuntu sunucu kurulumu gerçekleştirip, bu yedi adımı uygulayarak artık elinizde hem güvenli hem de stabil çalışan bir sistem var. Unutmayın, güvenlik bir varış noktası değil, sürekli bir yolculuktur. Bugün kilitlediğiniz bir açık, yarın yeni bir zafiyetle tekrar gündeme gelebilir.
Ancak paniğe gerek yok. Bu rehberde kurduğunuz UFW, Fail2Ban ve Unattended Upgrades üçlüsü, pasif ve aktif tehditlere karşı sizi koruyan bir güvenlik ağı oluşturuyor. Siz işinize odaklanırken, sisteminiz kendi kendini korumaya devam edecek.
Eğer bu ayarları yapacak zamanınız yoksa veya en baştan doğru yapılandırılmış, NVMe SSD ve Ryzen 9 gibi üst düzey donanımlarla desteklenen bir altyapı arıyorsanız, Saviorhost’un optimize edilmiş sunucu çözümlerine göz atabilirsiniz. Teknik detaylarla uğraşmadan, saniyeler içinde hazır ve güvenli bir sunucuya kavuşmanın farkını yaşayın.
Şimdi sıra sizde. Terminali açın ve ilk adımı atın.
