Yeni bir VDS teslim aldığınız andan itibaren sunucunuz internetin en gürültülü mahallesinde yaşamaya başlar. Kurulum tamamlandıktan birkaç dakika sonra, henüz üzerine tek bir uygulama kurmamışken bile IP adresinize otomatik tarama botlarından SSH veya RDP giriş denemeleri gelmeye başlar. Bu botlar sizi tanımıyor, sitenizle ilgilenmiyor; sadece internete açık her IP adresini sırayla deneyerek zayıf parola arıyorlar. Bu yazıda, yeni bir sunucuyu üretim yüküne açmadan önce atılması gereken ilk 10 güvenlik adımını sırayla anlatıyoruz. Adımların tamamı bir öğleden sonrada tamamlanabilir ve sunucunuzun ömrü boyunca karşılaşacağınız problemlerin büyük kısmını baştan eler.
Sunucu güvenliği çoğu zaman "sonra hallederim" listesine atılır. Sorun şu ki, saldırganlar sizin takviminize göre çalışmıyor. Yeni tahsis edilen IP blokları sürekli taranır ve varsayılan ayarlarıyla bırakılmış bir sunucu, kurulumdan saatler sonra ele geçirilebilir. Ele geçirilen sunucu genelde silinmez; çok daha sinsi bir şekilde kripto madenciliği, spam gönderimi ya da başkalarına yönelik saldırılar için kullanılır. Fark ettiğinizde performans düşmüş, IP adresiniz kara listeye girmiş olur.
İyi haber şu: bu saldırıların ezici çoğunluğu hedefli değil, fırsatçıdır. Botlar zor hedefle uğraşmaz, sıradaki kolay hedefe geçer. Aşağıdaki adımlar tam olarak bunu yapar — sizi "kolay hedef" listesinden çıkarır.
Linux sunucular çoğunlukla root kullanıcısıyla teslim edilir. Root, sistemde sınırsız yetkiye sahiptir; bu hesabın parolası ele geçtiğinde kaybedilecek hiçbir şey kalmaz. İlk iş olarak kendinize normal bir kullanıcı açın ve gerektiğinde sudo ile yetki yükseltin:
adduser nubitro ile kullanıcı oluşturun.usermod -aG sudo nubitro (Debian/Ubuntu) veya usermod -aG wheel nubitro (AlmaLinux/Rocky) ile yetki verin.sudo whoami komutunun root döndürdüğünü doğrulayın.Bu doğrulamayı yapmadan mevcut oturumunuzu kapatmayın. Aksi halde kendinizi sunucudan dışarıda bırakabilirsiniz.
Parola tabanlı SSH girişi, kaba kuvvet saldırılarının tek çıkış kapısıdır. SSH anahtarı ise pratikte tahmin edilemez uzunlukta bir kriptografik çift kullanır. Kendi bilgisayarınızda ssh-keygen -t ed25519 ile anahtar üretin, ssh-copy-id kullanici@sunucu-ip ile sunucuya kopyalayın ve anahtarla giriş yapabildiğinizi test edin.
Ancak bundan sonra /etc/ssh/sshd_config dosyasında şu satırları ayarlayın:
PasswordAuthentication noPermitRootLogin no (veya en azından prohibit-password)PubkeyAuthentication yesDeğişiklikten sonra sshd -t ile yapılandırmayı sınayın, ardından servisi yeniden başlatın. Mevcut SSH oturumunuzu açık tutup ikinci bir terminalden giriş deneyin; bir hata yaptıysanız açık oturum sayesinde geri dönebilirsiniz.
SSH portunu varsayılan 22 dışına almak tek başına güvenlik sağlamaz, ama log gürültüsünü ciddi biçimde azaltır — otomatik botların çoğu yalnızca 22'yi tarar. Portu değiştirirseniz güvenlik duvarında yeni portu açmayı unutmayın. Bunun yanında MaxAuthTries 3, LoginGraceTime 30 ve AllowUsers direktifiyle yalnızca belirli kullanıcılara izin vermek, saldırı yüzeyini hissedilir ölçüde daraltır.
Sabit IP adresiniz varsa yönetim portlarını yalnızca o adrese açmak, uygulanabilecek en etkili tek önlemdir.
Doğru güvenlik duvarı mantığı "tehlikeli olanları kapat" değil, "gerekli olanlar dışında her şeyi kapat" şeklindedir. Ubuntu/Debian tarafında ufw bunu çok kolaylaştırır:
ufw default deny incomingufw default allow outgoingufw allow 22/tcp (veya seçtiğiniz SSH portu)ufw allow 80,443/tcpufw enableAlmaLinux/Rocky tarafında aynı işi firewalld yapar. Windows VDS kullanıyorsanız Windows Defender Firewall üzerinde gelen bağlantılar için varsayılan politikayı "engelle" yapıp yalnızca ihtiyacınız olan portlara kural yazın. Oyun sunucusu işletiyorsanız UDP portlarını da listeye eklemeyi unutmayın; MTA, FiveM ve TeamSpeak gibi servisler UDP üzerinden çalışır.
fail2ban, log dosyalarını izleyip belirli sayıda başarısız girişten sonra ilgili IP adresini geçici olarak güvenlik duvarında engelleyen küçük ama çok etkili bir araçtır. Kurulumdan sonra jail.local dosyasında SSH için maxretry, findtime ve bantime değerlerini kendi kullanımınıza göre ayarlayın. Web sunucusu, posta servisi veya panel arayüzü için de hazır jail tanımları mevcuttur.
Windows tarafında benzer davranışı Group Policy'deki hesap kilitleme politikaları ve RDP için ağ düzeyinde kimlik doğrulama (NLA) sağlar. RDP'yi doğrudan internete açmak yerine VPN arkasına almak, uygulanabildiğinde çok daha güvenlidir.
Sunucu ele geçirme vakalarının önemli bir kısmı sıfırıncı gün açıklarından değil, aylar önce yaması çıkmış bilinen zafiyetlerden kaynaklanır. Kurulumdan hemen sonra apt update && apt upgrade (veya dnf update) çalıştırın. Ardından güvenlik güncellemelerinin otomatik kurulmasını sağlayın: Debian/Ubuntu'da unattended-upgrades, RHEL türevlerinde dnf-automatic bu işi görür.
Otomatik güncellemeyi tamamen serbest bırakmak istemiyorsanız en azından güvenlik deposunu otomatiğe alın, sürüm yükseltmelerini elle yapın. Kritik uygulamalarınız varsa güncelleme için haftalık sabit bir bakım penceresi belirleyin.
Kurulumla gelen ama kullanmadığınız servisler sessizce risk biriktirir. ss -tulpn komutu hangi servisin hangi portu dinlediğini gösterir. Listedeki her satır için kendinize tek bir soru sorun: "Bu servis internetten erişilebilir olmak zorunda mı?"
127.0.0.1 üzerinden dinlemelidir.Özellikle parolasız açık bırakılmış Redis ve Memcached örnekleri, hem doğrudan veri sızıntısına hem de amplification saldırılarında kullanılmaya açıktır. Bu saldırıların nasıl çalıştığını UDP Flood, SYN Flood ve Amplification saldırıları yazımızda ayrıntılı anlattık.
Güvenliğin en gerçekçi tanımı "kötü bir günde ne kadar hızlı geri dönebiliyorsunuz" sorusunun cevabıdır. Fidye yazılımı, silinmiş bir tablo ya da bozulan bir güncelleme — hepsinin ortak çözümü çalışan bir yedektir. 3-2-1 kuralını hedefleyin: en az 3 kopya, 2 farklı ortam, 1 tanesi sunucunun dışında.
Yedeklemede sık yapılan hata, yedeğin sunucunun kendi diskinde durmasıdır. Sunucu ele geçirildiğinde saldırgan ilk olarak yedekleri siler. Yedeğe yazan hesabın var olan yedekleri silme yetkisi olmamalı ve en az ayda bir geri dönüş testi yapılmalıdır. Test edilmemiş yedek, yedek sayılmaz.
Bir sorunu ancak görebiliyorsanız çözebilirsiniz. Sunucunuzda en azından CPU, RAM, disk doluluk ve ağ trafiği metriklerini izleyen bir araç bulunsun. Disk dolduğu için duran bir veritabanı, saldırıdan çok daha sık karşılaşılan bir kesinti sebebidir.
Log tarafında journalctl, /var/log/auth.log ve web sunucusu erişim logları ilk bakılacak yerlerdir. Trafikte ani ve açıklanamayan bir artış görüyorsanız bu bir saldırının erken işareti olabilir; ölçek ve kapasite kavramlarını DDoS koruma kapasitesi yazımızda ele aldık.
İlk dokuz adım sunucunun kendisini korur. Onuncu adım, sunucunun üzerinde çalışan uygulamayla ilgilidir: yönetim panellerine güçlü parola ve iki adımlı doğrulama, güncel CMS ve eklentiler, dosya izinlerinin doğru ayarlanması, ücretsiz SSL sertifikasıyla trafiğin şifrelenmesi.
Ağ katmanı ise sizin sunucu içinden çözebileceğiniz bir konu değildir. Hacimsel bir saldırı, sunucunuza ulaşmadan önce hattı doldurur; bu yüzden DDoS korumalı bir ağ altyapısı üzerinde barındırma yapmak önemlidir. Nubitro'nun İstanbul lokasyonlu AMD Ryzen 9 9950X VDS sunucuları DDoS korumalı ağ altyapısı üzerinde çalışır; daha yüksek kaynak ihtiyacı olan projeler için fiziksel sunucu seçeneklerine bakabilirsiniz.
Adımların mantığı aynıdır, araçlar değişir. Windows tarafında dikkat edilecek başlıklar şunlardır:
Administrator hesabını yeniden adlandırın, günlük iş için ayrı bir yönetici hesabı kullanın.Tek başına hayır. Port değiştirmek şifreleme veya kimlik doğrulama eklemez; yalnızca otomatik tarama trafiğini azaltır. Asıl korumayı SSH anahtarı, parola girişinin kapatılması ve güvenlik duvarı sağlar. Port değişikliğini bunların yerine değil, üzerine ekleyin.
İlk kez yapıyorsanız yaklaşık iki saat, deneyimliyseniz yirmi dakika. Sık sunucu kuruyorsanız adımları bir kurulum betiğine dönüştürüp her yeni sunucuda aynı tabanı elde etmeniz en verimli yöntemdir.
Hayır, birbirini tamamlarlar. Güvenlik duvarı hangi portların açık olacağına karar verir; fail2ban ise açık bırakmak zorunda olduğunuz portlarda kötü davranan IP adreslerini tespit edip geçici olarak engeller. İkisi birlikte kullanılmalıdır.
Tipik işaretler: boşta olması gereken sunucuda sürekli yüksek CPU kullanımı, tanımadığınız zamanlanmış görevler veya süreçler, giden trafikte açıklanamayan artış, IP adresinizin spam kara listelerine düşmesi, auth.log içinde başarılı ama size ait olmayan girişler. Şüpheleniyorsanız sunucuyu ağdan izole edip temiz bir kurulumdan yedekle geri dönmek, temizlemeye çalışmaktan daha güvenlidir.
Evet. cPanel gibi paneller bazı ayarları kendi arayüzünden yönetir, bu yüzden güvenlik duvarı ve SSH ayarlarını panelin beklediği şekilde yapmanız gerekir. Prensipler değişmez: en az yetki, kapalı varsayılan, güncel yazılım, çalışan yedek.
Kısmen. Sunucu sertleştirme, sunucunun ele geçirilmesini ve uygulama katmanı istismarını önler. Hacimsel DDoS saldırıları ise ağ kapasitesiyle ilgilidir ve sunucu içi ayarlarla çözülemez; bu koruma barındırma sağlayıcısının ağ altyapısından gelir.
Yeni bir VDS'i güvenli hale getirmek karmaşık bir iş değil, sıralı bir iştir. Root ile çalışmayı bırakın, SSH anahtarına geçin, parola girişini kapatın, güvenlik duvarını varsayılan olarak kapalı kurun, kaba kuvvet denemelerini otomatik engelleyin, sistemi güncel tutun, kullanmadığınız servisleri kapatın, sunucu dışına yedek alın, izleme kurun ve uygulama katmanını ihmal etmeyin. Bu on adım, sunucunuza gelecek otomatik saldırıların neredeyse tamamını etkisiz kılar.
Geriye kalan risk hacimsel ağ saldırılarıdır ve o kısmı altyapı çözer. Türkiye lokasyonlu VDS sunucularımızı inceleyebilir, projenize uygun yapılandırma için bize ulaşabilirsiniz. Kurulum anında tamamlanır, DDoS korumalı ağ altyapısı ve 7/24 destek standart olarak gelir.