Neden Sunucu Güvenliği Kritik?
İnternet üzerindeki her sunucu, saniyeler içinde otomatik tarayıcıların hedefine girer. Varsayılan kurulumda bırakılan bir Linux sunucu, açık SSH portlarından brute force saldırısına, zafiyetli paketlerden ransomware enfeksiyonuna kadar geniş bir saldırı yüzeyine sahip olur. Bu kontrol listesinin tamamını uygulamak, saldırı yüzeyini %80'in üzerinde azaltır.
Kritik 15 Güvenlik Adımı
1. Root Girişini Devre Dışı Bırakın
SSH üzerinden doğrudan root girişi yasak olmalı. /etc/ssh/sshd_config dosyasında PermitRootLogin no ayarı yapın; sudo yetkisi olan ayrı bir kullanıcı kullanın.
2. SSH Portunu Değiştirin
22 numaralı port otomatik tarayıcıların ilk hedefidir. 1025–65535 aralığında rastgele bir port seçmek brute force denemelerini dramatik biçimde azaltır.
3. SSH Anahtar Kimlik Doğrulamasına Geçin
Parola bazlı SSH girişini devre dışı bırakın; RSA veya Ed25519 anahtar çifti kullanın. PasswordAuthentication no ayarı uygulandığında parola saldırıları etkisizleşir.
4. Güvenlik Duvarı (UFW/firewalld) Aktif Edin
Yalnızca ihtiyaç duyulan portları açın. Standart bir web sunucusu için: SSH (özel port), 80 (HTTP), 443 (HTTPS). Veritabanı portu (3306, 5432) asla internete açılmamalıdır.
5. Fail2ban Kurun
Başarısız SSH girişimlerini otomatik engelleyen Fail2ban, brute force saldırılarına karşı etkili ilk savunma katmanıdır. 5 başarısız denemede 1 saatlik engelleme standart yapılandırmadır.
6. Otomatik Güvenlik Güncellemelerini Aktif Edin
Ubuntu/Debian için unattended-upgrades, RHEL/CentOS için dnf-automatic ile güvenlik yamaları otomatik uygulanır. Çekirdek güncellemeleri reboot gerektirir; planlı bakım penceresi tanımlayın.
7. Gereksiz Servisleri Devre Dışı Bırakın
Çalışan her servis potansiyel saldırı yüzeyidir. systemctl list-units --type=service --state=running ile aktif servisleri listeleyin; kullanmadıklarını durdurun ve devre dışı bırakın.
8. Disk Şifrelemesi (LUKS)
Fiziksel erişim riski bulunan ortamlarda (kolos, ortak veri merkezi) disk şifrelemesi veri çalınmasına karşı koruma sağlar. Bulut sanal makinelerinde hipervizör izolasyonu sağlandığı için LUKS zorunlu değil ama iyi bir ek katmandır.
9. SSL/TLS Sertifikası ve HTTPS Zorunlu
Let's Encrypt ile ücretsiz SSL; certbot renew ile otomatik yenileme. HTTP'den HTTPS'e yönlendirme zorunlu olmalı. TLS 1.0 ve 1.1 devre dışı bırakın; yalnızca TLS 1.2 ve 1.3 aktif kalmalı.
10. Günlük (Log) Yönetimi ve İzleme
SSH girişleri, sudo kullanımı ve kritik servis değişiklikleri loglanmalı. Logları merkezi bir sistemde toplayın (örn. Grafana Loki) ve anormal aktivite için uyarı kuralları tanımlayın.
11. Düzenli Güvenlik Taraması
Lynis veya OpenVAS ile aylık güvenlik taraması yapın. Bu araçlar yapılandırma zafiyetlerini, güncel olmayan paketleri ve şüpheli değişiklikleri raporlar.
12. Veritabanı Erişim Kontrolü
Veritabanı kullanıcılarına yalnızca gerekli izinleri verin (least privilege). root veritabanı kullanıcısını uygulama erişimi için kullanmayın. Uzak bağlantıyı localhost dışında kapatın.
13. Yedekleme ve Kurtarma Testi
Yedek almak yetmez; kurtarma testi yapılmayan yedek çalışmayabilir. Aylık bir kurtarma tatbikatı yapın. 3-2-1 kuralı: 3 kopya, 2 farklı medya, 1 harici konum.
14. Sunucu Rol Ayrımı
Web sunucusu, veritabanı ve cache birbirinden izole sunucularda çalışmalı. Tek sunucuda hepsini çalıştırmak bir güvenlik ihlalinin tüm servisleri etkilemesine yol açar.
15. İki Faktörlü Kimlik Doğrulama (2FA) for SSH
Google Authenticator PAM modülü ile SSH'a ikinci faktör eklenmesi, çalınmış SSH anahtarı senaryosunu bile kapsayan ek koruma sağlar.
Sık Sorulan Sorular
Bu kontrol listesi ne sıklıkla gözden geçirilmeli?
Sunucu güvenliğini kimseye devretmeden kendiniz yapabilir misiniz?
VPS ve cloud sunucularda fiziksel sunuculara kıyasla güvenlik nasıl farklılaşır?
Sunucu güvenlik denetiminizi üstlenelim: zafiyet taraması, sertleştirme ve sürekli izleme hizmeti sunuyoruz.
Güvenlik Denetimi Al