Yeni bir Ubuntu Server kurduğunuzda ilk 30 dakika kritik. Varsayılan kurulum güvenlik için optimize edilmemiş — SSH root girişi açık, firewall yok, güncellemeler manuel. Bu sürede doğru adımları atmazsanız sunucunuz saatler içinde taranmaya başlar.
KRK Holding'de her yeni sunucu kurulumunda uyguladığım 10 adımı paylaşıyorum. Tamamı Ubuntu 22.04 LTS üzerinde test edildi.
Adım 1: Sistemi Güncelleyin
İlk yapılacak iş her zaman sistem güncellemesi. Kurulum medyasındaki paketler güncel olmayabilir, bilinen güvenlik açıkları içerebilir.
apt update && apt upgrade -y
apt dist-upgrade -y
apt autoremove -y
Güncelleme sonrası kernel değişmişse mutlaka yeniden başlatın:
reboot
Adım 2: Sudo Yetkili Yeni Kullanıcı Oluşturun
Root hesabıyla çalışmak tehlikeli. Yanlışlıkla yapılan bir komut tüm sistemi bozabilir. Sudo yetkili ayrı bir kullanıcı oluşturun.
adduser idriskoc
usermod -aG sudo idriskoc
Yeni kullanıcıyla giriş yapın ve sudo çalıştığını doğrulayın:
su - idriskoc
sudo apt update
Adım 3: SSH Anahtar Tabanlı Kimlik Doğrulama
Şifre tabanlı SSH girişi brute-force saldırılarına açık. Önce yerel makinenizde anahtar çifti oluşturun:
ssh-keygen -t ed25519 -C idriskoc@linux.ist
ssh-copy-id idriskoc@SUNUCU_IP
SSH anahtarı çalıştığını doğruladıktan sonra /etc/ssh/sshd_config dosyasında şu değişiklikleri yapın:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
Port 2222
SSH portunu 22'den değiştirmek otomatik tarayıcıların büyük bölümünü eliyor. Ben her sunucuda farklı bir port kullanıyorum.
systemctl restart sshd
Adım 4: Firewall Ayarlayın (UFW)
Ubuntu'da UFW kurulu gelir ama varsayılan olarak kapalıdır. Sadece ihtiyacınız olan portları açın — gereksiz her açık port saldırı yüzeyi demek.
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status verbose
Adım 5: Fail2Ban Kurun
Fail2Ban başarısız giriş denemelerini izleyip ilgili IP'yi otomatik engelliyor. Brute-force saldırılarına karşı ilk savunma hattı.
apt install fail2ban -y
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
/etc/fail2ban/jail.local dosyasını düzenleyin:
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3
ignoreip = 127.0.0.1/8 ::1
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 86400
systemctl enable --now fail2ban
Adım 6: Otomatik Güvenlik Güncellemeleri
Güncellemeleri unutmak en yaygın güvenlik açığı nedenlerinden biri. Güvenlik yamalarının otomatik uygulanmasını sağlayın.
apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades
/etc/apt/apt.conf.d/50unattended-upgrades dosyasında şunların aktif olduğunu doğrulayın:
Unattended-Upgrade::Allowed-Origins {
:-security;
};
Unattended-Upgrade::Remove-Unused-Dependencies true;
Adım 7: Kernel Parametrelerini Sertleştirin
/etc/sysctl.conf dosyasına şu parametreleri ekleyin. Bu ayarlar IP spoofing, SYN flood ve ICMP redirect saldırılarına karşı ek koruma sağlar:
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.log_martians = 1
kernel.randomize_va_space = 2
sysctl -p
Adım 8: Gereksiz Servisleri Kapatın
Çalışan her servis potansiyel bir güvenlik açığı. Önce nelerin çalıştığını görün:
systemctl list-units --type=service --state=running
Sunucularda genellikle gerekmeyen avahi-daemon gibi servisleri kapatın:
systemctl stop avahi-daemon
systemctl disable avahi-daemon
Açık portları kontrol edin, beklenmeyen bir şey varsa araştırın:
ss -tulnp
Adım 9: Log İzleme
Güvenlik olaylarını fark etmek için log izleme şart. Logwatch ile günlük özet e-posta alabilirsiniz:
apt install logwatch -y
/etc/logwatch/conf/logwatch.conf dosyasında:
Output = mail
Format = html
MailTo = info@linux.ist
Range = yesterday
Detail = Med
Auth loglarını anlık izlemek için:
tail -f /var/log/auth.log | grep -i failed|invalid|error
Adım 10: Yedekleme
Kritik verilerin düzenli yedeğini alın. Basit bir bash script ile başlayabilirsiniz:
tar -czf /opt/backups/backup-20260726.tar.gz /etc /var/www /opt/apps
find /opt/backups -name *.tar.gz -mtime +30 -delete
Cron ile her gece 03:00'de otomatik çalıştırın:
0 3 * * * root bash /opt/backup.sh
Bonus: CrowdSec
Bu 10 adıma ek olarak CrowdSec kurmanızı öneririm. Fail2Ban'dan farklı olarak global tehdit istihbaratı kullanıyor — bilinen kötü aktörleri siz henüz görmeden engelliyor.
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | bash
apt install crowdsec crowdsec-firewall-bouncer-iptables -y
Sonuç
Bu 10 adım, Ubuntu Server'ınızı minimum seviyede güvence altına alıyor. Güvenlik tek seferlik bir iş değil — düzenli güncelleme, log izleme ve denetim gerekiyor. KRK Holding'de 50'den fazla sunucuya bu adımları uyguladım. Sorularınız varsa iletişim formundan ulaşabilirsiniz.