Ubuntu 22.04 / 24.04 İlk Sunucu Kurulumu ve Temel Güvenlik Ayarları

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ı

Bir veri merkezinde, ön panelinde Ubuntu logosu parlayan, koyu renkli bir raf tipi sunucunun yakın çekim görüntüsü. Arka planda mavi ve yeşil yanan diğer sunucu ışıkları hafif bulanık. Sunucunun önünde bir bilgisayar ekranında terminal komutları görünüyor. Güvenlik hissi veren koyu mavi ve siyah renk paleti.

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ı

Bir dizüstü bilgisayarın terminal ekranına yakın çekim. Ekranda nano editörü içinde /etc/ssh/sshd_config dosyası görünüyor. "PermitRootLogin no" ve "PasswordAuthentication no" satırları farklı bir renkle (yeşil) vurgulanmış. Klavyede bir el beliriyor. Arka plan flu, karanlık bir oda.

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

Üstten görünüm, siyah bir masa üzerinde bir defter, kalem ve açık bir dizüstü bilgisayar. Ekranda terminalde "fail2ban-client status sshd" komutunun çıktısı, birkaç IP adresinin "Banned" listesinde olduğu görünüyor. Yanında bir kahve fincanı var. Düzenli, minimalist bir çalışma ortamı.

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.

İlginizi Çekebilir:VDS, VPS ve Paylaşımlı Hosting Arasındaki Farklar: Projeniz İçin Hangi Altyapı Daha Uygun?
share Paylaş facebook pinterest whatsapp x print

Benzer İçerikler

Linux Sunucularda Kullanıcı Başına CPU Limiti Nasıl Ayarlanır? (Ubuntu & CentOS)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Are you human? Please solve:Captcha


Saviorhost İnternet Hizmetleri | © 2026 |