İnternetteki web sitelerinin %40'ından fazlası WordPress altyapısıyla çalışmaktadır. Bu devasa pazar payı, WordPress'i siber saldırganların, otomatik botnet ağlarının ve zararlı yazılım dağıtıcılarının bir numaralı hedefi haline getirmektedir.
Birçok site sahibi siteleri hacklendiğinde, Google arama sonuçlarında "Bu site saldırıya uğramış olabilir" uyarısı çıktığında veya hosting firması sunucu kaynak tüketimi nedeniyle hesabı askıya aldığında güvenliğin önemini fark eder.
Oysa doğru sunucu seçimi, katmanlı güvenlik duvarı (WAF) ve temel yapılandırma kurallarıyla WordPress sitenizi otomatik saldırıların %99.9'una karşı tamamen korumak mümkündür. Bu rehberde adım adım yapılması gerekenleri açıklıyoruz.
1. Hızlı Güvenlik Kontrol Listesi
| Güvenlik Katmanı | Önerilen Önlem | Etki Düzeyi |
|---|---|---|
| Web Application Firewall (WAF) | Cloudflare WAF veya Imunify360 | Kritik (%90+ bot saldırısını engeller) |
| Giriş Koruması (Brute-Force) | 2FA (İki Faktörlü Doğrulama) & Login URL Değiştirme | Kritik (Şifre denemelerini sıfırlar) |
| XML-RPC Protokolü | .htaccess veya eklentiyle tamamen kapatma | Yüksek (DDoS ve kaba kuvveti durdurur) |
| Dosya İzinleri (chmod) | Dosyalar 644, Dizinler 755, wp-config.php 600/400 | Yüksek (Zararlı kod enjeksiyonunu önler) |
| Dosya Düzenleme Yasağı | DISALLOW_FILE_EDIT tanımlama | Yüksek (Admin panelinden PHP çalıştırmayı önler) |
| PHP ve Tema/Eklenti Güncellemeleri | PHP 8.2+ ve düzenli otomatik yama | Yüksek (Bilinen açıkları kapatır) |
| İzole Barındırma Mimarisi | CloudLinux CageFS veya Bağımsız VDS | Kritik (Komşu sitelerden bulaşmayı engeller) |
2. Birinci Savunma Hattı: Sunucu Düzeyinde WAF Nedir?
Güvenlik açıkları sitenizin PHP koduna ve veritabanına ulaşmadan önce sunucu veya CDN katmanında filtrelenmelidir. Buna WAF (Web Application Firewall - Web Uygulama Güvenlik Duvarı) adı verilir.
1. Bulut Düzeyinde WAF (Cloudflare vb.)
- DNS sorgularını kendi küresel ağı üzerinden geçirir.
- Bilinen kötü niyetli IP adreslerini, tarayıcı taklidi yapan botnet'leri ve SQL Injection denemelerini sunucunuza dahi uğratmadan doğrudan ağ sınırında (edge) engeller.
- Sunucunuzun CPU ve RAM tüketimini büyük ölçüde düşürür.
2. Hosting Sunucusu Düzeyinde WAF (Imunify360 / ModSecurity)
- Türkiye'deki kaliteli hosting sağlayıcılarında (örneğin Turhost, Veridyen, Güzel Hosting vb.) sunucu işletim sistemi düzeyinde çalışan Imunify360 koruması bulunur.
- Imunify360; yapay zeka destekli sezgisel (heuristic) tarama ile yüklenen dosyaları anında tarar, PHP arka kapılarını (backdoor/webshell) anında karantinaya alır ve brute-force saldırılarını IP seviyesinde bloklar.
3. Giriş Güvenliği: wp-login.php ve Brute-Force Koruması
Otomatik botlar günün 24 saati milyonlarca sitenin yoursite.com/wp-login.php adresine popüler kullanıcı adları (admin, yonetici, root) ve şifre kombinasyonları gönderir. Bu durum siteniz hacklenmese dahi sunucu CPU kotanızı tüketip sitenizin çökmesine yol açabilir.
Uygulamanız Gereken 3 Adım:
- Varsayılan "admin" Kullanıcı Adını Silin: Yeni bir yönetici hesabı açın ve eski
adminkullanıcısının tüm içeriklerini yeni hesaba devrederek silin. - Giriş Adresini Gizleyin: WPS Hide Login gibi hafif çözümlerle giriş adresinizi
wp-login.phpyerineyoursite.com/ozel-giris-kapisigibi gizli bir yola taşıyın. - İki Faktörlü Doğrulama (2FA): Google Authenticator veya e-posta tabanlı 2FA aktif edin. Saldırgan şifrenizi ele geçirse bile telefonunuzdaki tek kullanımlık kod olmadan sisteme giremez.
4. XML-RPC: Neden Kapatılmalıdır?
WordPress'in eski sürümlerinden kalan xmlrpc.php dosyası, mobil uygulamaların veya uzak servislerin sitenizle haberleşmesini sağlayan eski bir API protokolüdür. Ancak günümüzde:
- Tek bir HTTP isteğinde yüzlerce şifre denemesi yapılmasına imkan tanır (Multicall brute force).
- Başka sitelere yapılan DDoS saldırılarında sitenizin bir köprü (amplification attack) olarak kullanılmasına yol açar.
Mobil WordPress uygulamasını kullanmıyorsanız, .htaccess dosyanıza şu kodları ekleyerek XML-RPC'yi tamamen kapatın:
# XML-RPC Erişimini Engelle
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
5. Kritik Dosya: wp-config.php Nasıl Korumaya Alınır?
wp-config.php dosyası veritabanı şifrelerinizi, kullanıcı adınızı ve gizli güvenlik anahtarlarınızı (salts) içerir. Saldırgan bu dosyayı okuduğu anda veritabanınızdaki tüm verilere doğrudan erişim kazanır.
Yapılması Gerekenler:
- Dosya İzinlerini Daraltın: SSH veya cPanel Dosya Yöneticisi üzerinden
wp-config.phpdosyasının izinlerini600veya400olarak ayarlayın. Böylece sunucudaki diğer işlemler dosyayı okuyamaz. - .htaccess ile Doğrudan Erişimi Yasaklayın:
<Files wp-config.php>
Order allow,deny
Deny from all
</Files>
- Panelden Dosya Düzenlemeyi Devre Dışı Bırakın:
WordPress admin paneli içindeki "Görünüm > Tema Dosyası Düzenleyicisi" üzerinden PHP kodu çalıştırılmasını önlemek için
wp-config.phpiçine şu satırı ekleyin:
define( 'DISALLOW_FILE_EDIT', true );
6. Hosting Seçiminin Güvenliğe Etkisi: CloudLinux & CageFS
Güvenlik sadece sizin aldığınız önlemlerle sınırlı değildir; sitenizi barındırdığınız sunucunun mimarisi de hayati önem taşır.
- Geleneksel Paylaşımlı Hosting Tehlikesi: Aynı fiziksel sunucuda 200 web sitesi varsa ve komşu bir sitede güvenlik açığı oluşursa, saldırgan Linux işletim sisteminde dizin atlayarak (symlink bypass) sizin sitenizin dosyalarına da ulaşabilir.
- CloudLinux CageFS Çözümü: Kaliteli sağlayıcılar her hosting hesabını sanal bir kafes (CageFS) içine kilitler. Bir komşunuz hacklense dahi saldırgan sunucunun kök dizinini veya diğer kullanıcıları göremez; saldırı yalnızca o hesabın kendi alanında izole kalır.
7. 3-2-1 Kuralı ile Otomatik Yedekleme Stratejisi
En iyi güvenlik duvarı dahi sıfır gün (0-day) açıklarına karşı %100 garanti veremez. Bu nedenle en büyük güvenlik önlemi çalışan bir yedektir.
3-2-1 Yedekleme Prensibi:
- 3 Kopya: Sitenizin 3 farklı yedeğini bulundurun (1 canlı site + 2 bağımsız yedek).
- 2 Farklı Medya: Yedekleri farklı depolama birimlerinde tutun (örneğin sunucu diski ve harici bulut depolama).
- 1 Harici Lokasyon: En az bir yedeği sunucunun bulunduğu veri merkezinin tamamen dışında (Google Drive, AWS S3 veya Dropbox) saklayın.
UpdraftPlus veya benzeri eklentilerle haftalık veritabanı ve dosya yedeklerinizin otomatik olarak kişisel Google Drive veya S3 hesabınıza aktarılmasını sağlayın.
8. Sıkça Sorulan Sorular
Ücretsiz güvenlik eklentileri (Wordfence, Sucuri) yeterli mi?
Wordfence veya iThemes Security temel tarama ve kaba kuvvet koruması için mükemmel başlangıç araçlarıdır. Ancak eklentiler WordPress yüklendikten sonra çalıştığı için yüksek trafikli saldırılarda sunucu CPU'sunu tüketebilir. En iyi mimari, Cloudflare gibi bir bulut WAF ile hafif bir WordPress güvenlik eklentisinin birlikte kullanılmasıdır.
Sitem hacklendiğinde ilk olarak ne yapmalıyım?
- Hemen hosting panelinizden bir önceki haftanın temiz yedeğine geri dönün (Restore).
- Veritabanı şifrenizi, cPanel/FTP şifrenizi ve tüm WordPress kullanıcı şifrelerini değiştirin.
wp-config.phpiçindeki SALT güvenlik anahtarlarını yenileyin (bu işlem tüm aktif kullanıcı oturumlarını kapatır).- Sitedeki tüm eklenti ve temaları resmi wordpress.org kaynaklarından orijinal dosyalarıyla yeniden yükleyin.