İçindekiler
- 1 WordPress Giriş Ekranı Neden En Kritik Saldırı Noktanız?
- 2 Güvenli Giriş Mimarisi Nasıl Düşünülmeli?
- 3 İki Faktörlü Doğrulama (2FA): Paroladan Sonraki İlk Gerçek Bariyer
- 4 IP Kısıtlama: Yönetici Paneline Kim, Nereden Ulaşabilir?
- 5 reCAPTCHA ve Bot Koruması: Brute-Force Trafiğini Erken Elemek
- 6 XML‑RPC Neden Bu Kadar Saldırı Alıyor ve Ne Yapmalısınız?
- 7 Tüm Bileşenleri Bir Araya Getirmek: Örnek Giriş Mimarileri
- 8 Sunucu ve Panel Katmanını Unutmayın
- 9 Özet ve Sonraki Adımlar: Giriş Kapınızı Gerçekten Kapatmak
WordPress Giriş Ekranı Neden En Kritik Saldırı Noktanız?
WordPress sitelerin büyük çoğunluğunda saldırıların başladığı yer aynıdır: giriş ekranı. wp-login.php, /wp-admin/ ve XML-RPC uç noktaları, botnet’lerin ve otomatik araçların sürekli yokladığı birer kapı gibidir. Parola tahmin saldırıları, çalıntı şifrelerle yapılan giriş denemeleri ve XML-RPC üzerinden çoklu brute-force istekleri, neredeyse her sitenin loglarında görülen klasik vakalar.
DCHost tarafında yüzlerce WordPress sitesinin loglarını incelerken hep aynı tabloyu görüyoruz: Normal ziyaretçi trafiğinin birkaç katı kadar wp-login.php ve xmlrpc.php isteği. Üstelik bu isteklerin önemli kısmı, gerçek kullanıcı değil, IP’leri sık sık değişen botlardan geliyor. Parolanız ne kadar güçlü olursa olsun, sadece şifreye güvenmek bugün için yeterli değil. İhtiyacımız olan şey, çok katmanlı bir güvenli giriş mimarisi.
Bu yazıda WordPress için pratik ama sağlam bir giriş güvenliği tasarlayacağız. Odakta dört temel bileşen var: İki Faktörlü Doğrulama (2FA), IP kısıtlama, reCAPTCHA / bot koruması ve XML‑RPC sertleştirmesi. Bunları tek tek anlatmakla kalmayıp, sonunda hepsini bir araya getirerek küçük işletmelerden yüksek trafikli WooCommerce mağazalarına kadar uygulanabilir mimari örnekleri üzerinden geçeceğiz.
Güvenli Giriş Mimarisi Nasıl Düşünülmeli?
Güvenli giriş, tek bir ayar veya eklentiden ibaret değil; tam anlamıyla bir mimari konusu. İyi bir mimarinin birkaç temel özelliği olmalı:
- Çok katmanlı olmalı (tek bariyer kırıldığında sistem düşmemeli).
- Kullanıcı deneyimini tamamen yok etmemeli (sürekli engellenen gerçek kullanıcı, güvenlikten nefret eder).
- Yönetilebilir olmalı (IP listelerini, 2FA kurallarını ve captcha ayarlarını güncelleyebilmelisiniz).
- Sunucu altyapınızla uyumlu olmalı (paylaşımlı hosting, VPS veya dedicated üzerinde farklı imkanlarınız var).
DCHost altyapısında gördüğümüz başarılı WordPress kurulumlarında ortak bir yaklaşım var: Giriş güvenliği sadece WordPress eklentilerine bırakılmıyor, sunucu katmanı (web sunucusu, WAF, güvenlik duvarı, fail2ban vb.) ile birlikte ele alınıyor. Bu yaklaşımı detaylandıran daha geniş bir kontrol listesi arıyorsanız, WordPress güvenlik sertleştirme kontrol listemizi de inceleyebilirsiniz.
İki Faktörlü Doğrulama (2FA): Paroladan Sonraki İlk Gerçek Bariyer
2FA, girişte iki farklı kanıt istemek anlamına gelir: bildiğiniz bir şey (parola) + sahip olduğunuz bir şey (telefon uygulaması, donanım anahtarı, SMS vb.). WordPress tarafında bu, yönetici hesabı ele geçirilse bile saldırganın hesabı kullanmasını zorlaştıran en önemli katmanlardan biridir.
WordPress İçin 2FA Türleri
Genel olarak WordPress’te üç tip 2FA yaklaşımı görüyoruz:
- TOTP tabanlı uygulamalar: Google Authenticator, Authy, 1Password vb. ile 30 saniyede bir değişen tek kullanımlık kodlar. En pratik ve güvenli yöntemlerden biridir.
- SMS / e-posta kodları: Kolay olsa da SMS’in güvenlik zaafları ve e-postanın gecikme ihtimali nedeniyle genelde yedek kanal olarak önerilir.
- WebAuthn / FIDO2 anahtarları: Güvenlik anahtarı (YubiKey vb.) veya cihazın biyometrik sensörleri ile doğrulama. Kurumsal ortamlarda oldukça güçlü bir çözümdür.
2FA’yı Kimler İçin Zorunlu Kılmalısınız?
Gerçek dünyada her kullanıcıya 2FA zorunlu tutmak bazen pratik olmayabiliyor. Bu yüzden rollere göre bir strateji geliştirmek mantıklı:
- Yönetici (Administrator): 2FA kesinlikle zorunlu olmalı.
- Editör ve Mağaza Yöneticisi: İçerik ve sipariş üzerinde yetkisi olan herkese 2FA tavsiye, mümkünse zorunlu.
- Müşteri / Abone: İsteğe bağlı bırakılabilir, ancak yüksek güvenlik gerektiren alanlarda (ör. B2B portal) önerilir.
Birçok güvenlik eklentisi ve 2FA çözümü, rol bazlı 2FA politikasını destekliyor. Böylece hem güvenliği artırıp hem de destek yükünü makul seviyede tutabilirsiniz.
2FA Kurulurken Sık Yapılan Hatalar
- Yedek kod üretmemek: Telefon bozulduğunda veya uygulama silindiğinde, yedek kod yoksa siteye giremeyen birçok yönetici gördük. İlk kurulumda mutlaka yedek kodları alıp güvenli bir yerde saklayın.
- Tüm admin’ler için aynı cihazı kullanmak: Tek bir telefonla tüm admin hesaplarını doğrulamak, ekibin büyüdüğü noktalarda ciddi bir risk oluşturur.
- “Remember this device” özelliğini abartmak: Çok uzun süreli hatırlama süresi ayarlamak, 2FA’nın etkinliğini azaltır.
2FA tek başına bile giriş güvenliğini dramatik şekilde artırır. Ancak bot’ları, brute-force denemelerini ve ağ seviyesindeki riskleri düşününce, bunun ilk adım olduğunu unutmamak gerekiyor.
IP Kısıtlama: Yönetici Paneline Kim, Nereden Ulaşabilir?
2FA kullanıcı hesabını korur; IP kısıtlama ise giriş yüzeyini daraltır. Özellikle yönetim paneline erişen kişi sayısı az ise, IP kısıtlama muazzam etkili bir yöntemdir.
IP Kısıtlama Senaryoları
- Sabit IP’li ofis/ev: /wp-admin ve wp-login.php sadece belirli IP’lerden erişilebilir hale getirilir.
- VPN üzerinden erişim: Çalışanlar önce kurumsal VPN’e bağlanır, yönetici paneli sadece bu VPN ağından erişilebilir olur.
- Ülke/şehir bazlı kısıtlama: Siteniz tamamen Türkiye odaklıysa, giriş noktasına sadece Türkiye IP’lerinden erişim izni verebilirsiniz.
DCHost üzerinde kendi VPS’inizi kullanıyorsanız, Nginx/Apache konfigürasyonuyla veya sunucudaki güvenlik duvarı (ufw, firewalld, iptables/nftables) üzerinden oldukça esnek IP kısıtlama kuralları yazabilirsiniz. Bu konuyu tüm sunucu erişimi perspektifinden ele aldığımız VPS sunucu güvenliği rehberimiz de yol gösterici olabilir.
WordPress’te Basit IP Kısıtlama Örnekleri
Apache üzerinde çalışan bir WordPress sitesinde, .htaccess ile wp-login.php erişimini sınırlandırmak yaygın bir yöntemdir:
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 1.2.3.4
Allow from 5.6.7.8
</Files>
Nginx tarafında ise benzer mantıkla location bazlı allow/deny kuralları tanımlayabilirsiniz. Daha gelişmiş yapılarda, fail2ban + Nginx rate limiting kombinasyonu ile hem IP kısıtlama hem de saldırı anında otomatik engelleme yapılabilir. Bu yapıyı detaylı şekilde anlattığımız Nginx rate limiting ve fail2ban rehberine mutlaka göz atın.
Dinamik IP Kullanıcılarında IP Kısıtlama Nasıl Yönetilir?
Birçok işletme sabit IP kullanmıyor, ekip üyeleri evden, mobil internetten bağlanıyor. Bu durumda iki yaklaşım öne çıkıyor:
- Dar IP whitelist yerine ülke bazlı filtre + 2FA: Özellikle tek ülkede hizmet veriyorsanız mantıklı.
- Küçük bir VPN altyapısı kurmak: Yönetici paneline sadece VPN ağına atanmış IP bloğundan erişim izni verirsiniz.
DCHost tarafında kendi VPS’inizde küçük bir WireGuard/OpenVPN kurulumu yaparak, WordPress yönetim trafiğini VPN üzerinden geçirmeniz oldukça mümkün. Böylece web sunucusunda yalnızca bu VPN IP aralığına izin verip geri kalan tüm yönetici isteklerini bloklayabilirsiniz.
reCAPTCHA ve Bot Koruması: Brute-Force Trafiğini Erken Elemek
reCAPTCHA, invisible captcha, hCaptcha ve benzeri çözümler, insan ile bot’u ayırmaya çalışan servislerdir. WordPress’te özellikle şu formlara uygulanmaları kritik:
- Giriş formu (wp-login.php)
- Kayıt formu (user registration)
- Şifre sıfırlama formu
- İletişim ve yorum formları
Eğer 2FA ve IP kısıtlama kuruluysa, captcha’yı daha çok “gürültü azaltıcı” olarak düşünebilirsiniz. Bot’ların çok büyük kısmı, captcha’yı geçemediğinde hemen başka hedefe yönelir.
Hangi reCAPTCHA Sürümü, Hangi Senaryoda?
- reCAPTCHA v2 (Ben robot değilim kutucuğu): En yaygın, kullanıcıya bazen görsel doğrulama çıkarıyor.
- reCAPTCHA v2 invisible: Göze daha az çarpıyor, sadece şüpheli durumlarda challenge gösteriyor.
- reCAPTCHA v3: Kullanıcıya challenge göstermeden puanlama yapıyor. Kendi eşik değerlerinizi belirlemeniz gerekiyor.
Giriş formu gibi kritik noktalarda, kullanıcı deneyimi ile güvenlik arasında denge kurmak önemli. Bazen invisible reCAPTCHA + 2FA kombinasyonu, hem kullanılabilirlik hem güvenlik açısından güzel bir orta yol sunuyor.
Captcha Ayarlarında Dikkat Edilmesi Gerekenler
- Her forma koymak zorunda değilsiniz: Özellikle yöneticiler için zaten IP kısıtlama ve 2FA kullanıyorsanız, ek captcha yalnızca nadir durumlarda devreye alınabilir.
- Yanlış pozitifler: Bazı kullanıcıların sürekli captcha’ya takılması dönüşüm kaybı yaratabilir; özellikle kayıt veya ödeme akışında buna dikkat edin.
- Performans ve gizlilik: Üçüncü taraf scriptleri sayfa yüklenme süresini etkiler. Ayrıca KVKK / GDPR tarafında çerez ve izleme politikalarınızı da güncellemeniz gerekebilir.
Captcha, tek başına mucize çözüm değildir; ama 2FA ve IP kısıtlama ile birleştiğinde saldırganların maliyetini ciddi biçimde artırır ve çoğunu daha giriş kapısına gelmeden yıldırır.
XML‑RPC Neden Bu Kadar Saldırı Alıyor ve Ne Yapmalısınız?
xmlrpc.php, WordPress’in uzaktan yönetim, pingback, bazı mobil uygulamalar ve entegrasyonlar için kullandığı eski bir arabirimdir. Güncel dünyada REST API yaygınlaştıkça, XML‑RPC’ye gerçek ihtiyaç azaldı, ancak saldırı yüzeyi olarak önemi maalesef arttı.
XML‑RPC Üzerinden Yapılan Saldırılar
- Brute-force multi-call saldırıları: Tek bir istek içinde onlarca kullanıcı/parola kombinasyonu denenebilir; bu da klasik wp-login.php brute-force’undan daha verimli hale getirir.
- DDoS amplifikasyon: Pingback özelliği kullanılarak başka sitelere saldırı yapılabilir.
- Bilgi sızdırma: Bazı yanlış yapılandırmalarda, sistem hakkında fazladan bilgi alınmasına yol açabilir.
XML‑RPC’yi Tamamen Kapatabilir misiniz?
Eğer aşağıdakileri kullanmıyorsanız XML‑RPC’yi %100 kapatmak çoğu zaman güvenli ve mantıklıdır:
- Eski WordPress mobil uygulamaları
- Bazı uzak yayın araçları
- XML‑RPC’ye bağlı özel entegrasyonlar
Çoğu modern sitede bu özellikler devre dışı, o yüzden xmlrpc.php’yi engellemek ciddi yan etki yaratmıyor. Eğer emin değilseniz, önce log’ları inceleyip xmlrpc.php’ye gelen isteklerin kaynağını ve amacını analiz edin. Zaten bu dosyaya gelen isteklerin büyük çoğunluğunun saldırı amaçlı olduğunu göreceksiniz.
XML‑RPC İçin Pratik Koruma Katmanları
- Sunucu seviyesi engelleme: Nginx/Apache konfigürasyonu ile xmlrpc.php’ye erişimi tamamen kapatmak veya sadece belirli IP/ülkelere izin vermek.
- WAF / ModSecurity kuralları: XML‑RPC üzerinden gelen şüpheli istekleri imza tabanlı olarak engellemek.
- fail2ban entegrasyonu: XML‑RPC üzerinden art arda başarısız giriş yapan IP’leri otomatik ban’lemek.
XML‑RPC, WordPress güvenlik sertleştirmesinde özel başlık açılması gereken bir konu. Bu dosyanın yönetimini, güvenlik sertleştirme kontrol listemizde de ayrıntılı olarak ele aldık; oradaki önerileri sunucu tarafındaki firewall ve WAF ayarlarınızla birlikte uyguladığınızda, XML‑RPC kaynaklı gürültünün ciddi oranda azaldığını göreceksiniz.
Tüm Bileşenleri Bir Araya Getirmek: Örnek Giriş Mimarileri
Teoriyi pratiğe dönüştürmek için birkaç gerçekçi senaryo üzerinden gidelim. Buradaki örnekler, DCHost üzerinde sık gördüğümüz WordPress kullanım şekillerine dayanıyor.
Senaryo 1: Küçük İşletme Sitesi (Paylaşımlı Hosting Üzerinde WordPress)
Durum: Küçük bir işletmenin kurumsal sitesi ve basit bir blogu var. Yönetici sayısı 1–2, sabit IP yok, site paylaşımlı hosting üzerinde.
Önerilen giriş mimarisi:
- 2FA: Tüm yönetici hesapları için TOTP tabanlı 2FA zorunlu.
- IP kısıtlama: Sabit IP olmadığı için, ülke bazlı kısıtlama + güvenlik eklentisindeki brute-force koruma aktif.
- reCAPTCHA: Giriş formu ve şifre sıfırlama formuna invisible reCAPTCHA eklenmiş.
- XML‑RPC: Kullanılmadığı için tamamen kapatılmış.
Bu senaryoda, sunucu katmanında çok gelişmiş firewall kuralları yazamasanız bile, WordPress içi eklentilerle bile giriş güvenliğini oldukça güçlü bir hale getirebilirsiniz. Yine de log tutma, yedekleme ve panel erişimi gibi konuları da ciddiye almalısınız. Özellikle paylaşımlı hosting tarafında WordPress güvenliğini daha genel olarak ele aldığımız bu rehberi de okumak işinizi kolaylaştıracaktır.
Senaryo 2: WooCommerce Mağazası (VPS Üzerinde Nginx + PHP‑FPM)
Durum: Yüksek trafikli bir WooCommerce mağazası, kampanya dönemlerinde yoğun giriş denemeleri ve bot trafiği yaşıyor. Site, DCHost üzerinde yönetilen veya kendi yönettiğiniz bir VPS’te çalışıyor.
Önerilen giriş mimarisi:
- 2FA: Tüm yönetici ve mağaza yöneticisi hesaplarında zorunlu; müşteriler için isteğe bağlı.
- IP kısıtlama: /wp-admin ve wp-login.php yalnızca belirli yönetici IP bloklarından erişilebilir; diğer IP’ler için 403 döndürülüyor.
- reCAPTCHA: Giriş ve kayıt formlarında invisible reCAPTCHA; ödeme sayfasında ise mümkün olduğunca sade akış, gerekirse yalnızca şüpheli durumda challenge.
- XML‑RPC: Sunucu seviyesinde kapalı; sadece gerekiyorsa belirli IP’lere açılmış.
- Rate limiting + fail2ban: wp-login.php ve XML‑RPC için istek sayısı sınırlandırılmış; kısa sürede çok istek atan IP’ler otomatik ban’leniyor.
Bu senaryoda artık sadece WordPress içinde değil, doğrudan web sunucusu ve güvenlik duvarı üzerinde de kurallar koyabiliyorsunuz. Bu da saldırıları uygulama katmanına bile ulaşmadan durdurabilmenizi sağlıyor. Yüksek trafikli WordPress / WooCommerce sitelerinde PHP-FPM ayarlarından MySQL optimizasyonuna kadar tüm yığını ele aldığımız sunucu tarafı optimizasyon rehberini de bu mimariyle birlikte düşünmenizi öneririz.
Senaryo 3: Ajans veya Multi-Site Yapı (Tek Sunucuda Onlarca WordPress)
Durum: Bir ajans veya büyük bir işletme, tek VPS veya dedicated sunucu üzerinde onlarca WordPress sitesini barındırıyor. Her sitenin birden çok yöneticisi var.
Önerilen giriş mimarisi:
- Merkezi politika: Tüm sitelerde zorunlu 2FA, minimum parola standartları ve güvenlik eklentisi politikası belirlenmiş.
- Sunucu seviyesi koruma: Nginx/Apache’de global wp-login.php ve xmlrpc.php koruma kuralları + fail2ban filtreleri tanımlı.
- IP kısıtlama: Ajans içi IP blokları için panel erişimi daha esnek, dış IP’lere daha katı.
- reCAPTCHA: Özellikle spam tehdidi olan sitelerde (blog, portal) zorunlu; sade kurumsal sitelerde gerektiği ölçüde.
Bu yapılar için giriş güvenliği kadar yedekleme ve felaket senaryosu da kritik. Sadece saldırıyı engellemek değil, olası bir ihlal durumunda hızlı geri dönüş yapmak zorundasınız. Bu noktada WordPress yedekleme stratejileri rehberimiz ile giriş güvenliği mimarinizi mutlaka birlikte planlayın.
Sunucu ve Panel Katmanını Unutmayın
WordPress giriş güvenliği ne kadar iyi olursa olsun, barındığı panel hesabı ve sunucu zayıfsa, saldırgan farklı bir kapıdan içeri girebilir. cPanel / DirectAdmin hesabınızda parola + 2FA kullanmıyorsanız, FTP veya panel erişimi ele geçirilmiş bir saldırgan, WordPress’inizin tüm güvenlik katmanlarını baypas edebilir.
Bu yüzden:
- Hosting panelinizde mutlaka 2FA ve IP kısıtlama kullanın.
- SSH erişimi olan VPS’lerde parola değil SSH anahtarı ile giriş yapın.
- Sunucu firewall’ınızı (ufw/firewalld/nftables) aktif ve sıkı tutun.
Bu konuyu, uygulama (WordPress) katmanından bağımsız, genel bir hesap güvenliği bakışıyla ele aldığımız cPanel hesap güvenliği sertleştirme rehberimiz ve VPS sunucu güvenliği yazımız ile birlikte okumanızı özellikle tavsiye ederiz.
Özet ve Sonraki Adımlar: Giriş Kapınızı Gerçekten Kapatmak
WordPress’te güvenli giriş mimarisi kurmak, tek seferlik bir ayar yapmak değil; şirketinizin güvenlik politikasına gömülmesi gereken bir disiplin. Bu yazıda dört temel taşı ele aldık:
- 2FA ile kullanıcı hesaplarını güçlü bir ikinci bariyerle korumak,
- IP kısıtlama ile yönetici kapısına gelebilen kişi ve ağları daraltmak,
- reCAPTCHA / bot koruması ile gürültü yapan bot trafiğini erken safhada elemek,
- XML‑RPC sertleştirmesi ile sık kullanılan bir saldırı yüzeyini kontrol altına almak.
Pratikte atabileceğiniz adımlar şöyle olabilir:
- İlk 1 gün içinde: Tüm admin hesaplarında 2FA zorunlu hale getirin, xmlrpc.php’ye gelen istekleri log’larda inceleyip gerekiyorsa kapatın.
- İlk 1 hafta içinde: IP kısıtlama senaryonuzu netleştirin (sabit IP, VPN veya ülke bazlı filtre) ve reCAPTCHA’yı en azından giriş + şifre sıfırlama formlarında devreye alın.
- İlk 1 ay içinde: Sunucu firewall’ı, fail2ban, WAF kuralları ve yedekleme stratejisiyle giriş mimarinizi tamamlayın.
DCHost olarak WordPress sitelerinin sadece hızlı değil, aynı zamanda güvenli çalışması için hem altyapı hem de bu tarz mimari rehberler üretmeye devam ediyoruz. Mevcut sitenizin giriş güvenliğini gözden geçirmek, paylaşımlı hosting’den daha izole bir VPS veya dedicated mimariye geçmek ya da ajansınız için çok siteli bir yapı planlamak istiyorsanız, ekibimizle birlikte mevcut durumunuzu analiz edip size uygun bir WordPress güvenli giriş mimarisi tasarlamaktan memnuniyet duyarız.
