Web Sitesi Güvenliği Nasıl Sağlanır? Kapsamlı Uygulama Rehberi
Kısa cevap
Web sitesi güvenliği; HTTPS zorunluluğu, yazılımların güncel tutulması, güçlü kimlik doğrulama ve 2FA, güvenlik başlıkları, WAF/CDN, düzenli yedek ve sürekli izleme katmanlarının birlikte uygulanmasıyla sağlanır. Tek bir önlem yeterli değildir; katmanlı savunma esastır.
Web sitesi güvenliği tek bir üründe ya da tek bir ayarda başlamaz ve bitmez. Müdahale ettiğimiz ihlallerin neredeyse tamamında ortak bir tablo görüyoruz: güncellenmemiş bir eklenti, parola ile açık bir yönetim paneli, hiç yapılandırılmamış güvenlik başlıkları ve saldırı olana kadar kimsenin bakmadığı loglar. Güvenlik, bu boşlukların üst üste binen katmanlarla kapatılmasıdır. Bu rehber, bir web sitesini uçtan uca korumak için gereken temel katmanları sıralı ve uygulanabilir bir biçimde ele alıyor.
Aşağıdaki adımların her biri kendi başına bir savunma hattıdır. Birini atlarsanız zincir o halkadan kopar. Sunucunuzun mevcut durumunu bilmiyorsanız, önce ücretsiz sunucu güvenlik kontrolü ile hangi katmanların eksik olduğunu görmenizi öneririz; ardından buradaki başlıkları sırayla tamamlayın.
1. Tüm Trafiği HTTPS/SSL ile Şifreleyin
İlk ve pazarlığa açık olmayan adım, sitenin tamamının HTTPS üzerinden yayınlanmasıdır. HTTPS, ziyaretçi ile sunucu arasındaki tüm veriyi şifreler; parolaların, form verilerinin ve oturum çerezlerinin ağ üzerinde açık metin olarak taşınmasını engeller. Bugün ücretsiz sertifikayla bu koruma dakikalar içinde kurulabildiği için HTTP'de kalmanın hiçbir teknik mazereti yoktur.
Let's Encrypt ile ücretsiz ve otomatik yenilenen bir sertifika kurun, ardından tüm HTTP isteklerini HTTPS'e yönlendirin. Kurulumun tüm ayrıntılarını, otomatik yenilemeyi ve karışık içerik (mixed content) sorunlarının çözümünü ayrı rehberimizde adım adım anlattık: SSL/HTTPS kurulumu ve Let's Encrypt. Sertifikayı kurduktan sonra sitenin tüm alt sayfalarının kilit simgesiyle yüklendiğini mutlaka doğrulayın.
2. Yazılımları ve Bağımlılıkları Güncel Tutun
Bilinen güvenlik açıklarının ezici çoğunluğu güncel bir sürümle çoktan kapatılmıştır; sorun yamanın çıkmaması değil, uygulanmamasıdır. CMS çekirdeği, tema, eklenti, kütüphaneler ve sunucu paketleri güncel tutulmadığında saldırganlara hazır ve halka açık istismar kodu sunmuş olursunuz.
Sunucu tarafında güvenlik güncellemelerini otomatikleştirmek en sağlam yoldur:
apt update && apt upgrade -y
Bu komut paket listesini yeniler ve kurulu paketleri en güncel sürüme çekerek bilinen açıkların büyük bölümünü kapatır. Ubuntu üzerinde otomatik güvenlik güncellemelerini unattended-upgrades ile açabilirsiniz; sunucu sıkılaştırmanın tamamı için Ubuntu VPS güvenliği rehberimize göz atın. Uygulama katmanında ise eklenti ve tema güncellemelerini bir bakım rutinine bağlayın; asla "sonra yaparım" listesinde bırakmayın.
Özellikle CMS eklentileri dikkat ister: müdahale ettiğimiz WordPress ihlallerinin çok büyük bölümünde giriş noktası, aylardır güncellenmemiş ya da geliştiricisi tarafından terk edilmiş bir eklentidir. Kullanmadığınız eklenti ve temaları yalnızca devre dışı bırakmakla kalmayın, tamamen silin; çünkü pasif duran bir eklenti bile üzerindeki açık nedeniyle istismar edilebilir. Güncellemeyi güvenle yapabilmenin ön koşulu ise bir sonraki adımlarda anlatacağımız düzenli yedektir: yedeği olan bir siteyi güncellemekten korkmazsınız.
3. Güçlü Kimlik Doğrulama ve İki Adımlı Doğrulama (2FA) Uygulayın
Yönetim paneli, sunucunun ön kapısıdır ve saldırıların en yoğun yöneldiği noktadır. Güçlü, benzersiz parolalar ve iki adımlı doğrulama, çalınmış ya da tahmin edilmiş bir parolanın tek başına giriş için yeterli olmasını engeller. Yönetici hesaplarında 2FA'yı zorunlu kılmak, kaba kuvvet (brute force) saldırılarının başarı şansını pratik olarak sıfırlar.
Şu üç kuralı birlikte uygulayın: her hesap için parola yöneticisiyle üretilmiş benzersiz uzun parolalar kullanın, "admin" gibi tahmin edilebilir kullanıcı adlarından kaçının ve tüm yönetici erişimine 2FA ekleyin. Sunucuya SSH ile bağlanıyorsanız parola girişini tamamen kapatıp yalnızca SSH anahtarına geçin. Giriş sayfasına yönelen otomatik denemeleri kaynağında engellemek için fail2ban kurulumu ve yapılandırması rehberini uygulamanızı öneririz.
Kimlik doğrulamayı güçlendirmenin sık atlanan iki adımı daha var. Birincisi, yönetim panelinin adresini varsayılan değerinden değiştirmek ya da IP kısıtlaması koymaktır; botların ilk denediği yer standart giriş yollarıdır. İkincisi, oturum yönetimidir: uzun süre işlem yapılmayan oturumları otomatik sonlandırmak ve aynı hesabın anormal konumlardan eş zamanlı girişini fark etmek, çalınmış bir çerezin ömrünü kısaltır. Bu küçük düzenlemeler, kaba kuvvet saldırganının sitenizi kârlı bir hedef olmaktan çıkarmasına yeter.
4. Güvenlik Başlıklarını (Security Headers) Yapılandırın
HTTP güvenlik başlıkları, tarayıcıya sitenizin nasıl davranması gerektiğini söyleyerek bütün bir saldırı sınıfını daha ziyaretçinin tarayıcısında engeller. Content-Security-Policy, HSTS, X-Frame-Options ve X-Content-Type-Options gibi başlıklar; XSS, clickjacking ve içerik türü karıştırma saldırılarına karşı ek bir savunma katmanı kurar. En iyi yanı, çoğu birkaç satır sunucu yapılandırmasıyla eklenebilmesidir.
Başlıkları web sunucusu düzeyinde (Nginx/Apache) merkezî olarak tanımlamak, her uygulama için ayrı ayrı uğraşmaktan daha güvenilirdir. Hangi başlığın ne işe yaradığını, örnek Apache/Nginx yapılandırmalarını ve nasıl test edeceğinizi ayrı bir rehberde topladık: güvenlik başlıkları ve HTTP security headers. Başlıkları ekledikten sonra bir tarayıcı üzerinden gerçek yanıtları kontrol etmeyi unutmayın.
5. WAF ve CDN Katmanı Ekleyin
Web Uygulaması Güvenlik Duvarı (WAF), sunucunuza ulaşmadan önce trafiği süzerek bilinen saldırı imzalarını, kötü botları ve otomatik istismar denemelerini engeller. Bir CDN ile birleştirildiğinde ise hem performans artar hem de kaynak sunucunuzun IP adresi gizlenerek doğrudan saldırılar zorlaşır. Bu katman, özellikle hacim tabanlı saldırılara ve otomatik zafiyet taramalarına karşı ilk tampon görevini görür.
Cloudflare gibi bir servis, DNS'i yönlendirmeniz karşılığında ücretsiz katmanında bile temel WAF kuralları ve DDoS koruması sunar. Yoğun ya da hedefli saldırılara maruz kalıyorsanız, kaynağı gizlemenin ve hız sınırlama kurallarının ötesine geçmek için DDoS koruma hizmetimizi ve DDoS saldırısı nasıl engellenir rehberimizi inceleyin. WAF'ı açtıktan sonra meşru trafiğin engellenmediğini test etmek için kurallarını izleme modunda birkaç gün gözlemleyin.
WAF'ı bir CDN'in arkasına yerleştirdiğinizde çoğu zaman gözden kaçan bir adım, kaynak sunucunun yalnızca CDN'den gelen trafiği kabul edecek şekilde kilitlenmesidir. Aksi halde saldırgan, sunucunuzun gerçek IP adresini bulup WAF'ı tamamen atlayarak doğrudan bağlanabilir; bu, internete açık bırakılmış bir uygulama portu üzerinden gerçekleşen ihlallerin klasik senaryosudur. Kaynak sunucunun güvenlik duvarını yalnızca CDN'in IP aralıklarına açmak, bu boşluğu kapatır ve WAF katmanınızı gerçekten zorunlu hale getirir.
6. Düzenli ve Test Edilmiş Yedek Alın
Yedek, güvenliğin son sigortasıdır; her önlem başarısız olduğunda siteyi temiz bir noktaya döndürmenizi sağlayan tek şeydir. Ancak alınmayan ya da hiç geri yüklenmeyi denemediğiniz bir yedek, yok hükmündedir. Yedekleme rutini otomatik, düzenli ve sunucunun dışında ayrı bir konumda saklanacak biçimde kurulmalıdır.
Şu üç ilkeye uyun: yedekleri otomatik zamanlayıcıyla alın (elle almaya güvenmeyin), en az bir kopyayı sunucudan bağımsız bir depoda tutun ve düzenli aralıklarla bir yedeği gerçekten geri yükleyerek çalıştığını doğrulayın. Fidye yazılımı senaryolarında saldırganlar erişebildikleri yedekleri de şifreler; bu yüzden en az bir kopyanın çevrimdışı ya da yazma korumalı olması kritiktir. Yedekleme ve sürekli izlemeyi tek bir hizmet altında yönetmek isterseniz bakım ve izleme çözümümüz bu yükü üstlenir.
7. Sürekli İzleme ve Loglama Kurun
Bir ihlalin ne zaman başladığını fark etmek, ondan kurtulmanın yarısıdır. İzleme; dosya değişikliklerini, olağandışı trafik artışlarını, başarısız giriş denemelerini ve kaynak kullanımındaki anormallikleri erken yakalayarak saldırıyı günler değil dakikalar içinde görmenizi sağlar. İzleme olmadan çoğu site, ancak Google uyarısı veya ziyaretçi şikayeti geldiğinde hacklendiğini öğrenir.
Uygulanabilir bir izleme kurulumu şunları içerir: dosya bütünlüğü denetimi (kritik dosyalar değiştiğinde uyarı), erişim ve hata loglarının düzenli incelenmesi, kaynak kullanımı için eşik alarmları ve çalışma süresi (uptime) takibi. Örneğin sunucuda ani ve açıklanamayan bir CPU yükü, çoğu zaman gizli bir kripto madenciliğinin işaretidir; bu senaryonun teşhisini sunucuda yüksek CPU ve cryptominer rehberinde ele aldık. Alarmları kurmadan önce neyin "normal" olduğunu belirleyin ki yanlış alarmlarda boğulmayasınız.
8. En Az Yetki İlkesini Uygulayın
En az yetki ilkesi, her kullanıcı, servis ve sürecin yalnızca işini yapmak için gereken asgari yetkiye sahip olması demektir. Bir hesap ele geçirildiğinde saldırganın erişebileceği alanı bu ilke belirler; gereksiz yönetici yetkileri, açık portlar ve fazladan çalışan servisler her biri ayrı bir saldırı yüzeyidir. Amacınız yüzeyi mümkün olduğunca daraltmaktır.
Pratikte bu şu anlama gelir: root ile günlük iş yapmayın, her kullanıcıya rolüne uygun minimum yetkiyi verin, kullanılmayan servisleri ve portları kapatın ve dosya izinlerini olabilecek en dar seviyede tutun. Sunucu genelinde bu prensibi sistematik biçimde uygulamak için Linux sunucu sıkılaştırma hizmetimiz kapsamlı bir sertleştirme yapar. WordPress kullanıyorsanız yapılandırma dosyasının izinlerini ve erişimini de gözden geçirmeniz gerekir.
Dosya izinleri özellikle web dizinlerinde kritik önemdedir. Web sunucusunun yazma yetkisine sahip olduğu her dizin, bir zafiyet üzerinden dosya yüklenirse zararlı kodun barınabileceği bir yerdir. Yalnızca gerçekten yazılması gereken dizinlere (örneğin yükleme klasörü) yazma izni verin ve bu dizinlerde PHP gibi betiklerin çalıştırılmasını sunucu düzeyinde engelleyin. Veritabanı kullanıcısına da yalnızca ilgili veritabanı üzerinde ihtiyaç duyduğu yetkileri tanıyın; tek bir uygulamanın ele geçirilmesi, tüm veritabanı sunucusunun düşmesine dönüşmesin.
9. Düzenli Güvenlik Testi Yapın
Güvenlik statik bir durum değil, sürekli doğrulanması gereken bir süreçtir. Bugün güvenli olan bir yapılandırma, yarın çıkan bir açıkla ya da eklenen yeni bir eklentiyle zafiyetli hale gelebilir. Düzenli güvenlik testi, bu boşlukları saldırgan bulmadan önce sizin bulmanızı sağlar.
Periyodik olarak şunları yapın: açık port taraması, güncel olmayan yazılım kontrolü, SSL yapılandırması ve güvenlik başlıkları doğrulaması ve bilinen zafiyet taraması. Bir web sitesini uçtan uca nasıl test edeceğinizi adımlarıyla anlattığımız web sitesi güvenlik testi nasıl yapılır rehberini bir kontrol listesi gibi kullanabilirsiniz. Testleri takvime bağlayın; yılda bir değil, düzenli aralıklarla tekrarlayın.
Testin özellikle değerli olduğu an, sitede bir değişiklik yaptığınız andır: yeni bir eklenti eklemek, sunucu yapılandırmasını değiştirmek ya da yeni bir alt alan adı yayınlamak, farkında olmadan yeni bir kapı açabilir. Bu yüzden düzenli takvimli taramaların yanına, her önemli değişiklikten sonra hızlı bir doğrulama adımı ekleyin. Bulguları da yalnızca listelemekle kalmayın; her birini önem derecesine göre sıralayıp önce en kritik açığı kapatın. Güvenlik testi, ancak bulunan açıklar gerçekten giderildiğinde bir değer üretir.
Katmanları Bir Araya Getirmek
Buraya kadar anlatılan dokuz adım tek tek işe yarar, ancak asıl güç bunların bir arada ve tutarlı biçimde uygulanmasından gelir. Saldırganlar en zayıf halkayı arar: HTTPS'iniz kusursuz olsa bile güncellenmemiş bir eklenti, ya da mükemmel güvenlik başlıklarınız olsa bile parola ile açık bir SSH, tüm zinciri geçersiz kılar. Bu nedenle güvenliği bir kez kurulan bir duvar gibi değil, sürekli bakım gerektiren bir sistem gibi düşünmek gerekir.
Pratik bir yol haritası şöyledir: önce HTTPS, güncelleme ve güçlü kimlik doğrulama gibi temel katmanları kurun; ardından güvenlik başlıkları, WAF ve en az yetki ile saldırı yüzeyini daraltın; son olarak yedek, izleme ve düzenli test ile sürekliliği sağlayın. Bu üç aşama sırayla tamamlandığında, sitenizin bir ihlale karşı hem direnci hem de bir sorun çıktığında toparlanma kapasitesi belirgin biçimde artar.
Sık Sorulan Sorular
Web sitesi güvenliği için en önemli tek adım nedir?
Tek bir adım güvenliği tam sağlamaz, ancak en temel ve pazarlıksız olanı tüm trafiği HTTPS ile şifrelemek ve yazılımları güncel tutmaktır. Bu ikisi, en yaygın ve en kolay istismar edilen açıkları kapatır. Diğer katmanlar bunların üzerine inşa edilir.
Ücretsiz araçlarla web sitemi güvenli hale getirebilir miyim?
Büyük ölçüde evet. Let's Encrypt ile ücretsiz SSL, fail2ban ile giriş koruması, Cloudflare'in ücretsiz WAF katmanı ve sunucu düzeyinde güvenlik başlıkları hiçbir lisans ücreti gerektirmez. Ücretli çözümler genellikle yönetim kolaylığı, gelişmiş WAF kuralları ve profesyonel izleme için tercih edilir.
İki adımlı doğrulama (2FA) gerçekten gerekli mi?
Evet. Parolalar sızıntılar, kimlik avı ve kaba kuvvet saldırılarıyla ele geçirilebilir. 2FA, çalınmış bir parolanın tek başına giriş için yeterli olmamasını sağlayarak yönetici hesaplarına yönelik saldırıların ezici çoğunluğunu durdurur. Özellikle yönetim panellerinde zorunlu tutulmalıdır.
Sitem hacklendi, önce ne yapmalıyım?
Öncelikle paniklemeden siteyi izole edin, şifreleri değiştirin ve temiz bir yedeğe dönmeyi değerlendirin. Ardından giriş noktasını bulup kapatmadan siteyi yayına almayın, yoksa yeniden ele geçirilir. Adım adım müdahale için sitem hacklendi ne yapmalıyım rehberimizi izleyin.
Bu önlemleri kurduktan sonra bir daha uğraşmam gerekmez, değil mi?
Ne yazık ki hayır. Güvenlik sürekli bir bakım işidir: güncellemeler çıkar, yeni açıklar keşfedilir ve yapılandırmalar zamanla kayar. Düzenli güncelleme, izleme ve periyodik güvenlik testi olmadan bugün kurduğunuz koruma zamanla aşınır. Bu yüzden güvenliği bir proje değil, süreklilik olarak ele almak gerekir.
Sitenizin bu dokuz katmandan hangilerinde açık olduğunu tahmin etmek yerine ölçmek istiyorsanız, ücretsiz sunucu güvenlik kontrolü ile başlayın; eksik katmanları net bir rapor halinde çıkaralım. Aktif bir sorun yaşıyorsanız ya da nereden başlayacağınızdan emin değilseniz, WhatsApp üzerinden 7/24 ulaşabilir, kapsamlı sertleştirme için Linux sunucu sıkılaştırma hizmetimizden yararlanabilirsiniz.