Küçük bir sitenin saldırıya uğraması için hedef olması gerekmez; otomatik araçlar interneti sürekli tarar ve zayıf parola, eski eklenti ya da açık bırakılmış bir dizin bulduğunda içeri girer. İyi haber şu ki bu tür otomatik denemelerin önemli bir kısmı, bir öğleden sonra uygulanabilecek birkaç temel önlemle boşa çıkarılabilir. Bu yazı önlemleri üç katmanda toplar: barındırma hesabının kendisi, sitenin dosyaları ve uygulaması, e-posta. Sonunda hepsini bir kontrol listesi tablosunda bulacaksınız.
Hesap katmanı
Parola yöneticisi ve benzersiz parolalar
Barındırma hesabı, kontrol paneli, FTP, veritabanı, WordPress yöneticisi ve posta kutuları ayrı parolalar ister. Hepsini akılda tutmak mümkün olmadığından insanlar aynı parolayı tekrar kullanır; bir sızıntı hepsini açar. Bir parola yöneticisi (tarayıcı eklentisi ya da bağımsız uygulama) her hizmet için uzun, rastgele ve farklı parola üretir ve saklar. Hangi aracı seçtiğinizden çok, bütün hesapları ona taşımanız önemlidir. Ana parolayı uzun bir cümle olarak belirleyin ve yöneticinin kendi iki adımlı doğrulamasını açın.
İki adımlı doğrulama (2FA)
Parola sızsa bile ikinci bir doğrulama olmadan giriş yapılamaz. Panel (cPanel, Plesk, DirectAdmin), müşteri hesabı ve WordPress yöneticisi için ayrı ayrı açılmalıdır. SMS yerine doğrulama uygulaması tercih edin; SMS, SIM değiştirme (SIM swap) saldırılarına açıktır. Kurulumda verilen yedek kodları parola yöneticisine kaydedin; telefon kaybolduğunda hesaba girmenin çoğu zaman tek yolu onlardır.
Erişim alanını daraltmak
Tasarımcı ya da geliştiriciyle ana panel parolasını paylaşmak yerine, işin gerektirdiği klasörle sınırlı bir FTP/SFTP hesabı ya da WordPress'te editör yetkisi tanımlayın. İş bittiğinde hesabı kapatın. Panelin oturum geçmişinde tanımadığınız IP ya da saat görürseniz parolaları hemen yenileyin.
Müşteri hesabınızdaki iletişim adresi de bu katmanın parçasıdır: parola sıfırlama bağlantıları oraya gider. Bu adres, aynı pakette barındırdığınız bir posta kutusu olmamalı; sunucu erişilemezken sıfırlama postasını alamazsınız. Ayrıca alan adı kayıt hesabınızı da aynı özenle koruyun; alan adını ele geçiren kişi DNS'i değiştirerek siteyi ve postayı başka sunucuya yönlendirebilir.
Site katmanı
Dosya izinleri
Linux barındırmada klasörlere 755, dosyalara 644 vermek yaygın ve güvenli bir başlangıçtır; veritabanı parolasını taşıyan ayar dosyası bundan da dar bir izinle korunabilir. 777 gibi herkese yazma hakkı tanıyan değerlerden kaçının. Rakamların ne anlama geldiği ve hangi dosyaya hangi değerin verileceği FTP, SFTP ve SSH yazısında ayrıntılı anlatılıyor. İzinler panelin dosya yöneticisinden ya da SSH ile değiştirilir.
Güncelleme düzeni
Ele geçirilen sitelerde sık görülen giriş yolu, yaması çıkmış ama uygulanmamış bilinen bir açıktır. Çekirdek, tema ve eklenti güncellemelerini haftalık bir düzene bağlayın; küçük sürümler için otomatik güncellemeyi açık bırakın, büyük sürümleri güncelleme öncesi kopya alarak elle uygulayın. Kullanmadığınız tema ve eklentileri devre dışı bırakmak yetmez, silin; pasif eklenti de açık barındırır. PHP sürümünü de güncel tutun; desteği bitmiş sürümler güvenlik yaması almaz.
WAF ve kötü amaçlı yazılım taraması
Web uygulama güvenlik duvarı (WAF), bilinen saldırı kalıplarını taşıyan istekleri siteye ulaşmadan engeller. Üç seviyede bulunabilir: sunucu tarafında (ModSecurity ve benzeri, firmanın kurduğu), uygulama tarafında (WordPress güvenlik eklentileri) ve ağ kenarında (DNS ile trafiği Cloudflare gibi bir ters vekil servisinden geçirerek). Paylaşımlı paketlerde firmanın Imunify360 ya da benzeri bir araçla sunucu düzeyinde tarama ve engelleme yapıp yapmadığını paket sayfasından öğrenin; bu tür araçlar yapılandırmaya göre yüklenen dosyaları anında tarayıp şüpheli olanları karantinaya alabilir. Buna ek olarak WordPress içinde düzenli tarama yapan bir eklenti, çekirdek dosyaların değişip değişmediğini karşılaştırarak gizli kodu yakalayabilir.
Yedek olmadan güvenlik olmaz
En iyi önlem bile saldırıyı kesin olarak engellemez; temiz bir kopya, saldırı sonrası en hızlı dönüş yoludur. Haftalık kendi kopyanızı sunucu dışında saklayın ve geri yüklemeyi en az bir kez deneyin; firmanın otomatik kopyası bunun yerine geçmez, çünkü saklama süresi ve yeri sizin denetiminizde değildir.
SFTP ve şifreli bağlantılar
Şifresiz bir FTP oturumunda parola ağ üzerinden okunabilir biçimde gider; aynı kablosuz ağı paylaşan biri onu yakalayabilir. Paket destekliyorsa SFTP (SSH üzerinden), desteklemiyorsa FTPS (TLS ile FTP) kullanın. Site de her zaman https ile sunulmalı; ücretsiz Let's Encrypt sertifikası panelden tek adımda kurulur ve http isteklerini https'e yönlendirmek unutulmamalıdır.
E-posta katmanı
Alan adınızdan gönderilen postaların sahte olmadığını kanıtlamak için üç DNS kaydı gerekir. Kısaca SPF yetkili gönderici sunucuları, DKIM iletinin yolda değiştirilmediğini gösteren imzayı, DMARC ise bu iki kontrolden geçemeyen postaya uygulanacak kuralı (izle, karantinaya al, reddet) ve raporların gideceği adresi tanımlar. Üç kaydı birden tanımlamak hem sahte gönderimi zorlaştırır hem de kendi postalarınızın spam klasörüne düşmesini azaltır. Kayıtların biçimi ve aşamalı geçiş için SPF, DKIM ve DMARC rehberi yazısına bakın. Bunun dışında posta kutusu parolalarını da parola yöneticisinde tutun, kullanılmayan kutuları kapatın ve web postaya da iki adımlı doğrulama sunuluyorsa açın. Oltalama (phishing) postaları çoğunlukla firmanızı taklit eder; “hesabınız askıya alınacak” içerikli bir postadaki bağlantıya tıklamak yerine müşteri paneline adresi elle yazarak girin.
Olay planı: ele geçirilirse ne yapmalı?
Plan, sorun çıkmadan önce yazılmış olmalıdır; kriz anında düşünmek zordur. WordPress için ayrıntılı adımlar WordPress virüs temizleme yazısındadır.
- Siteyi bakım moduna alın ya da panelden geçici olarak kapatın; ziyaretçi ve arama motoru zararlı içeriği görmesin.
- Panel, FTP, veritabanı, WordPress ve posta parolalarının tamamını yenileyin; aktif oturumları kapatın.
- Son temiz kopyanın tarihini belirleyin; saldırının ne zaman başladığını erişim günlüklerinden kestirmeye çalışın.
- Dosyaları temiz kopyadan ya da resmi kaynaklardan (çekirdek, tema, eklenti) yeniden kurun; yalnızca içerik ve medya klasörünü koruyun ve onları da tarayın.
- Veritabanında tanımadığınız yönetici hesaplarını ve içeriğe gömülü betikleri temizleyin.
- Firmaya bildirin; sunucu düzeyinde tarama ve IP engeli isteyin.
- Arama motoru araçlarında güvenlik uyarısı varsa temizlik sonrası inceleme talep edin.
- Olayın nasıl olduğunu not edin ve açığı kapatan önlemi kontrol listesine ekleyin.
Kontrol listesi
| Katman | Önlem | Sıklık | Nerede |
|---|
| Hesap | Parola yöneticisi, her hizmete farklı parola | Bir kez, sonra sürekli | Yönetici uygulaması |
| Hesap | İki adımlı doğrulama (panel, müşteri hesabı, WordPress) | Bir kez | Panel güvenlik bölümü |
| Hesap | Oturum geçmişini gözden geçirme | Aylık | Panel |
| Site | Dosya izinleri 755/644, ayar dosyası 600 | Kurulumda, sonra kontrol | Dosya yöneticisi / SSH |
| Site | Çekirdek, tema, eklenti ve PHP güncellemesi | Haftalık | Uygulama yöneticisi / panel |
| Site | WAF ve kötü amaçlı yazılım taraması | Sürekli, rapor haftalık | Firma aracı / eklenti |
| Site | Sunucu dışı kopya ve geri yükleme provası | Haftalık / üç ayda bir | Panel / eklenti |
| Site | SFTP veya FTPS, https yönlendirmesi | Bir kez | İstemci ayarı / panel |
| E-posta | SPF, DKIM, DMARC kayıtları | Bir kez, değişiklikte güncelle | DNS bölge düzenleyicisi |
| E-posta | Kullanılmayan kutuların kapatılması | Üç ayda bir | Panel posta bölümü |
| Genel | Olay planının yazılı olması | Bir kez, yılda bir gözden geçir | Kendi notlarınız |
Bu listenin tamamı birkaç saatte uygulanır ve çoğu madde bir kez yapılıp ara sıra kontrol edilir. Paket seçerken firmanın sunucu düzeyinde sunduğu koruma (WAF, tarama, otomatik yedek) karşılaştırma ölçütlerinden biri olmalıdır; paylaşımlı hosting ve WordPress hosting kategori sayfalarındaki rehberler bu ölçütleri paket türüne göre açıklar. Kendi sunucunuzu yönetiyorsanız bu listeye işletim sistemi güncellemesi, güvenlik duvarı ve SSH anahtar erişimi de eklenir; VPS sunucu sayfasında yönetilen ve yönetilmeyen paketlerin farkına bakın.