WordPress Giriş Limitini .htaccess ile Ayarlayarak Sitenizi Koruyun
WordPress sitenize girmeye çalıştığınızda hiç “Hesabınız kilitlendi. Fazla sayıda giriş denemesi yapıldı.” uyarısıyla karşılaştınız mı? Bu durum ilk bakışta can sıkıcı gelse de, aslında sitenizi korumak için tasarlanmış kritik bir güvenlik önlemidir. İnternet dünyasında her gün milyonlarca WordPress sitesi, brute-force adı verilen, botların binlerce farklı şifre kombinasyonuyla giriş yapmaya çalıştığı saldırılara maruz kalır. İşte bu noktada WordPress giriş limiti devreye girer. Bu limit sayesinde kötü niyetli bir bot, kullanıcı adınızı tahmin etse bile, sınırsız sayıda şifre denemesi yapamaz ve sitenize erişimi engellenir.
Sizin göreviniz ise bu denemeleri akıllıca sınırlandırmak ve sitenizin savunmasını güçlendirmektir. Bunu yapmanın en hafif, en etkili ve sunucu seviyesinde çözümlerinden biri de .htaccess dosyasıdır. Eklentiler aracılığıyla yapılan çözümlere kıyasla, .htaccess ile yapılan ayarlar sitenize ek yük bindirmez ve çok daha zor bypass edilebilir bir güvenlik katmanı sunar.
Htaccess Nedir ve Ne İşe Yarar?
.htaccess, Apache web sunucularında sitenin dizin bazında nasıl davranacağını belirleyen bir yapılandırma dosyasıdır. Bu dosya, URL yönlendirmelerinden (301 yönlendirmeleri), belirli IP adreslerini engellemeye, klasörlere şifre koruması eklemeye ve hatta önbellekleme ayarlarını optimize etmeye kadar birçok farklı amaç için kullanılabilir. WordPress’in kendisi de kalıcı bağlantı yapısını yönetmek için bu dosyayı kullanır.
Güvenlik açısından bakıldığında, .htaccess dosyası sitenize gelen trafiği ve erişim izinlerini kontrol etmek için son derece güçlü bir araçtır. Bu dosyayla WordPress giriş limiti belirleyerek, belirli bir IP adresinden gelen hatalı giriş denemelerinin sayısını sınırlayabilirsiniz. Örneğin, 3’ten fazla hatalı deneme yapan bir IP adresini otomatik olarak belirli bir süre engelleyerek, botların sınırsız deneme yapmasının önüne geçersiniz. Bu, sitenizin savunma hattının en ön saflarından birini oluşturur ve brute-force saldırılarına karşı pasif ama son derece etkili bir kalkan görevi görür.
WordPress Giriş Limiti Neden .htaccess ile Ayarlanmalı?
WordPress kullanıcılarının çoğu, giriş denemelerini sınırlamak için bir güvenlik eklentisi kullanmayı tercih eder. Ancak .htaccess dosyası, bu konuda çok daha avantajlı bir yaklaşım sunar. İşte neden .htaccess’i tercih etmeniz gerektiğine dair temel nedenler:
- Eklenti Yükü Oluşturmaz: Her eklenti, sitenize az da olsa bir yük bindirir ve performansını etkileyebilir. .htaccess, sunucu seviyesinde çalıştığı için sitenizin hızına herhangi bir olumsuz etkisi olmaz. Bu, daha hızlı yüklenen ve daha akıcı çalışan bir site anlamına gelir.
- Sunucu Seviyesinde Çözüm: .htaccess, doğrudan web sunucusu tarafından işlenen bir yapılandırma dosyasıdır. Bu, eklentilere göre çok daha temel ve derin bir güvenlik katmanı sağlar. Eklentiler, WordPress çekirdeği üzerinde çalışırken, .htaccess WordPress’ten önce devreye girer.
- Daha Zor Bypass Edilir: Kötü niyetli bir saldırgan, bir güvenlik eklentisini devre dışı bırakmanın yollarını bulabilir veya eklentideki bir güvenlik açığından faydalanabilir. Ancak .htaccess dosyasına müdahale etmek veya onu bypass etmek çok daha zordur. Bu, sitenizin savunmasının daha sağlam ve dirençli olmasını sağlar. .htaccess, savunmanın derin katmanlarından biri olarak kabul edilir ve genel güvenlik stratejinizin önemli bir parçası olmalıdır.
Htaccess ile WordPress Giriş Limitini Ayarlama (Adım Adım)
1. Adım: .htaccess Dosyasını Bul
.htaccess dosyası genellikle WordPress kurulumunuzun ana dizininde bulunur. Bu dizin çoğu zaman public_html, www veya doğrudan hosting hesabınızın kök klasörüdür. Bir FTP istemcisi (FileZilla gibi) veya hosting kontrol panelinizin (cPanel, Plesk vb.) dosya yöneticisi aracılığıyla sitenizin dosyalarına erişebilirsiniz. Eğer dosyayı göremiyorsanız, FTP istemcinizin veya dosya yöneticinizin ayarlarından “gizli dosyaları göster” seçeneğini etkinleştirmeniz gerekebilir, çünkü .htaccess bir nokta ile başladığı için genellikle gizli bir dosya olarak kabul edilir.
2. Adım: Dosyayı Yedekle
Bu adım, atlanmaması gereken en kritik adımlardan biridir. .htaccess dosyasında yapılacak yanlış bir değişiklik, sitenizin tamamen erişilemez hale gelmesine (500 Internal Server Error gibi hatalar) neden olabilir. Bu nedenle, herhangi bir kod eklemeden veya düzenleme yapmadan önce mevcut .htaccess dosyasını bilgisayarınıza indirerek mutlaka yedekleyin. Böylece, bir sorunla karşılaşmanız durumunda kolayca eski haline dönebilirsiniz.
3. Adım: Kodu Ekle
Aşağıdaki kod, belirli bir IP adresinden 3’ten fazla hatalı giriş denemesi yapıldığında o IP’yi 1 saatliğine (3600 saniye) engeller. Bu kodun çalışabilmesi için Apache sunucunuzda mod_evasive modülünün etkin olması gerekmektedir. Bazı hosting sağlayıcılarında bu modül varsayılan olarak aktiftir, bazılarında ise değildir. Hosting sağlayıcınızla iletişime geçerek bu modülün durumunu öğrenebilir ve gerekirse aktif etmelerini isteyebilirsiniz.
<IfModule mod_evasive.c>
DOSHashTableSize 3097
DOSPageCount 3
DOSSiteCount 10
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 3600
</IfModule>DOSHashTableSize: Modülün IP adreslerini takip etmek için kullanacağı hash tablosunun boyutunu belirler.DOSPageCount 3: Bir IP adresinden aynı URL’ye 1 saniye içinde (DOSPageInterval) en fazla 3 istek yapılmasına izin verir. Bu limit aşılırsa IP engellenir.DOSSiteCount 10: Bir IP adresinden tüm siteye 1 saniye içinde (DOSSiteInterval) en fazla 10 istek yapılmasına izin verir. Bu limit aşılırsa IP engellenir.DOSBlockingPeriod 3600: Engellenen bir IP adresinin ne kadar süreyle engelli kalacağını saniye cinsinden belirtir (3600 saniye = 1 saat).
Alternatif: IP Bazlı Erişim Kısıtlaması
Eğer sunucunuzda mod_evasive modülü aktif değilse veya daha basit, doğrudan IP bazlı bir engelleme yapmak isterseniz, .htaccess dosyasını kullanarak belirli IP’leri manuel olarak engelleyebilir veya sadece belirli IP’lere izin verebilirsiniz. Bu yöntemler, özellikle bilinen saldırgan IP’lerini engellemek veya sadece belirli IP’lerden yönetici paneline erişim sağlamak istediğinizde kullanışlıdır.
Belirli bir IP adresini tamamen yasaklamak için aşağıdaki kodu kullanabilirsiniz. Bu kod, 123.456.789.000 IP adresinden gelen tüm erişimi engeller:
<Limit LOGIN>
Order Deny,Allow
Deny from 123.456.789.000
Allow from all
</Limit>Daha katı bir güvenlik önlemi olarak, sadece kendi IP adresinize (veya güvendiğiniz diğer IP adreslerine) WordPress giriş sayfasına (wp-login.php) erişim izni vererek diğer tüm IP’lerin bu sayfaya erişmesini engelleyebilirsiniz. Bu, WordPress giriş limiti uygulamasının en katı ama aynı zamanda en etkili versiyonlarından biridir. Kendi IP adresinizi mutlaka doğru girdiğinizden emin olun.
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 111.222.333.444
</Files>Kendi IP adresinizi öğrenmek için Google’da “What is my IP” gibi bir arama yapabilirsiniz. Unutmayın, dinamik IP adresiniz varsa bu ayarı IP adresiniz her değiştiğinde güncellemeniz gerekebilir.
Limiti Ayarlarken Dikkat Etmen Gerekenler
Giriş limiti belirlerken temel amaç, saldırganları sitenizden uzak tutarken, kendinizi veya yetkili kullanıcılarınızı zor durumda bırakmamaktır. Bu hassas dengeyi korumak için bazı önemli noktalara dikkat etmeniz gerekir:
- Kendi IP Adresini Engellememeye Dikkat Etmelisin: Özellikle son IP bazlı kısıtlama yöntemini kullanıyorsanız, kendi mevcut IP adresinizi doğru bir şekilde eklediğinizden emin olun. Aksi takdirde, sitenize kendiniz de erişemez hale gelebilirsiniz.
- Kod Ekledikten Sonra Giriş Sayfasını Test Etmelisin: Değişiklikleri kaydettikten hemen sonra, farklı bir tarayıcıdan (veya gizli sekmeden) giriş yapmayı deneyerek ayarların doğru çalıştığından ve kendinizi engellemediğinizden emin olun.
- Sunucunda mod_evasive Etkin Değilse Hosting Destek Ekibinden Bunu Aktif Etmelerini İsteyebilirsin: Eğer mod_evasive kodunu kullanmayı tercih ediyorsanız ve çalışmadığını fark ederseniz, hosting sağlayıcınızla iletişime geçerek bu modülü aktif etmelerini rica edin. Genellikle bu tür talepler hızlıca karşılanır.
- .htaccess’e Ekleyeceğin Hatalı Bir Satır, Tüm Sitenin Erişilemez Hale Gelmesine Neden Olabilir: Bu nedenle, her zaman bir yedekleme yapın ve kodu eklerken son derece dikkatli olun. Küçük bir yazım hatası bile büyük sorunlara yol açabilir.
WordPress giriş limiti ayarlamak, karmaşık güvenlik eklentilerine bel bağlamaktan çok daha öteye geçebilir. .htaccess dosyasıyla yapacağınız basit ve doğrudan sunucu seviyesindeki bir ayarlama, sitenizin güvenliğini ciddi oranda artırır ve brute-force saldırılarına karşı sağlam bir savunma hattı oluşturur. Bazen en etkili güvenlik adımı, en basit ve en temel olanıdır.
Bu yazıyı faydalı bulduysanız, eklenti odaklı bir yaklaşımla giriş denemelerini yönetmek için hangi eklentileri kullanabileceğinizi detaylı şekilde ele aldığım WordPress Giriş Denemelerini Sınırlandırma Nedir, Neden Gereklidir? yazısına da göz atabilirsiniz. Sitenizde artan giriş denemeleriyle ilgili deneyimlerinizi yorumlarda paylaşabilir veya iletişim sayfamızdan bana ulaşabilirsiniz – birlikte en doğru çözümü bulalım.
Sevgiler 🫶
