Bilgi Bankası / Güvenlik

Ubuntu Sunucu Güvenliği: UFW, fail2ban, SSH Sıkılaştırma

Son güncelleme: 23 Eylül 2026

İnternete açık her sunucu, kurulduğu ilk dakikadan itibaren otomatik saldırı taramasına maruz kalır. İyi haber: temel bir sıkılaştırma, saldırıların büyük çoğunluğunu anlamsız kılar. Bu rehber yeni bir Ubuntu 22.04/24.04 sunucusunu ilk saatte güvene alır.

Bu rehber, İlk VPS Kurulumu adımlarını (sudo kullanıcı, sistem güncelleme) tamamladığınızı varsayar. Yapmadıysanız önce onu uygulayın.

1. Güncel kalın

Yamanmamış yazılım, sunucu ele geçirmelerinin bir numaralı sebebidir.

sudo apt update && sudo apt upgrade -y

Otomatik güvenlik güncellemelerini açın:

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

2. Firewall: UFW

UFW (Uncomplicated Firewall), yalnızca ihtiyaç duyduğunuz portları açık bırakır.

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw status verbose
ufw enable komutundan önce mutlaka ufw allow OpenSSH çalıştırın. Aksi halde aktif SSH oturumunuz kapanır ve sunucuya erişemezsiniz.

Veritabanı (3306), Redis (6379) gibi servisleri asla internete açmayın — yalnızca localhost veya özel ağ üzerinden erişin.

3. SSH sıkılaştırma

Önce SSH anahtarı kurun ve çalıştığını doğrulayın. Sonra /etc/ssh/sshd_config:

PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
X11Forwarding no
MaxAuthTries 3
sudo systemctl restart ssh

SSH portunu değiştirmek gerekli mi?

Şart değil. Anahtar girişi zorunluysa varsayılan port 22'de kalmak güvenlik açısından sorun değildir; sadece log gürültüsünü azaltmak için farklı bir port seçebilirsiniz. Değiştirirseniz UFW kuralını da güncelleyin.

4. fail2ban

fail2ban, tekrar tekrar başarısız giriş denemesi yapan IP'leri otomatik banlar.

sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

/etc/fail2ban/jail.local içinde [sshd] bölümü:

[sshd]
enabled = true
maxretry = 3
bantime = 1h
findtime = 10m
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

5. Paylaşılan sorumluluk: uygulama katmanı

  • Web sunucusu: Nginx/Apache'de sunucu imzasını kapatın, güvenlik başlıklarını ekleyin (HSTS, X-Content-Type-Options, X-Frame-Options).
  • Veritabanı: Ayrı, güçlü parolalar; bind-address = 127.0.0.1; kullanılmayan varsayılan hesapları silin.
  • Uygulama: Framework ve bağımlılıkları güncel tutun; .env ve yedek dosyalarını web köküne koymayın.
  • SSL: Her siteye Let's Encrypt ile HTTPS.

6. Yedekleme — güvenliğin ayrılmaz parçası

Fidye yazılımı, silme hatası veya disk arızası karşısında tek gerçek koruma yedektir.

  • 3-2-1 kuralı: 3 kopya, 2 farklı ortam, 1'i farklı lokasyonda.
  • Yedekleri başka bir sunucuya/depolamaya gönderin — aynı sunucudaki yedek, sunucu gidince gider.
  • Ayda bir geri yükleme testi yapın; test edilmemiş yedek yedek değildir.

7. İzleme

  • sudo journalctl -u ssh --since "1 hour ago" — giriş denemeleri
  • sudo lastb — başarısız girişler
  • sudo apt install auditd -y — sistem çağrısı denetimi (isteğe bağlı, ileri seviye)
  • Bir uptime/monitoring servisi ile sunucunun ayakta olduğunu dışarıdan izleyin.

Hızlı kontrol listesi

  • ☐ Sistem güncel + unattended-upgrades açık
  • ☐ UFW etkin, yalnızca 22/80/443 açık
  • ☐ SSH: root kapalı, parola kapalı, anahtar zorunlu
  • ☐ fail2ban çalışıyor
  • ☐ Veritabanı yalnızca localhost'a bağlı
  • ☐ Otomatik, sunucu-dışı yedek + geri yükleme testi
  • ☐ Tüm siteler HTTPS
Arcnar'da: Compute paketleri güncel bir Ubuntu imajıyla gelir; ağ güvenlik grupları panelden yönetilir. Yönetimli ölçeklenme ve otomatik yedek seçenekleri yol haritasında — kritik veriler için kendi sunucu-dışı yedeğinizi kurun.

Sık sorulan sorular

Yeni bir Ubuntu sunucuda minimum güvenlik için ne yapmalıyım?
Sistemi güncelleyin ve unattended-upgrades açın; UFW ile yalnızca 22/80/443 portlarını açık bırakın; SSH'te root ve parola girişini kapatıp anahtar zorunlu kılın; fail2ban kurun; veritabanını yalnızca localhost'a bağlayın; sunucu-dışı otomatik yedek kurun.
SSH portunu 22'den değiştirmek gerçekten güvenlik sağlar mı?
Sadece log gürültüsünü azaltır — bu "security through obscurity"dir, gerçek koruma değil. Anahtar girişi zorunluysa port 22'de kalmak güvenlik açısından sorun değildir. Değiştirirseniz UFW kuralını da güncellemeyi unutmayın.
fail2ban ne işe yarar?
Sunucu loglarını izler ve kısa sürede çok sayıda başarısız giriş denemesi yapan IP adreslerini otomatik olarak firewall'da geçici banlar. SSH, web paneli ve posta servislerine yönelik brute-force saldırılarını büyük ölçüde durdurur.
Yedekleme güvenliğin parçası mı?
Evet, en önemli parçalarından biri. Fidye yazılımı, hatalı silme veya disk arızası karşısında tek gerçek koruma yedektir. 3-2-1 kuralını uygulayın (3 kopya, 2 ortam, 1'i farklı lokasyonda) ve ayda bir geri yükleme testi yapın.

Bu makale yardımcı oldu mu?