Şimdi yükleniyor

WordPress Güvenliğinin Temel Taşı: .htaccess ile Giriş Limitini Ayarlama

WordPress sitenizin güvenliği, dijital varlığınızın omurgasıdır. Ne yazık ki, her gün milyonlarca site, özellikle WordPress siteleri, kötü niyetli saldırganların hedefi haline geliyor. Bu saldırıların başında ise “brute-force” denilen, yani binlerce farklı şifre denemesiyle sisteme sızmaya çalışan otomatik botlar geliyor. Bu tür girişimler sadece sitenizin güvenliğini tehlikeye atmakla kalmaz, aynı zamanda sunucu kaynaklarınızı tüketerek performans düşüşlerine de yol açabilir. İşte tam bu noktada, WordPress giriş denemelerini sınırlamak hayati bir önem taşır. Peki, bunu en etkili ve hafif yolla nasıl yapabiliriz? Cevap: Doğrudan sunucu seviyesinde kontrol sağlayan güçlü `.htaccess` dosyası.

.htaccess Nedir ve Ne İşe Yarar?

`.htaccess`, Apache web sunucularında dizin bazında yapılandırma ayarlarını kontrol eden bir dosyadır. Yani, web sitenizin belirli bir dizinindeki davranışını bu dosya aracılığıyla belirleyebilirsiniz. Bu küçük ama son derece güçlü dosya, URL yönlendirmelerinden (301 yönlendirmeleri), önbellekleme kurallarına, IP adreslerini engellemekten, güvenlik başlıklarını ayarlamaya kadar birçok farklı görevi üstlenebilir. WordPress sitelerinde genellikle ana dizinde bulunur ve sitenizin temel işleyişi üzerinde derin bir etkiye sahiptir.

WordPress giriş limitini `.htaccess` ile ayarlamak, belirli bir IP adresinden gelen hatalı giriş denemelerinin sayısını kısıtlamanıza olanak tanır. Örneğin, bir bot veya saldırgan, kullanıcı adınızı tahmin ettikten sonra sonsuz sayıda şifre denemesi yapamaz hale gelir. Belirlediğiniz limit aşıldığında, o IP adresi geçici veya kalıcı olarak engellenerek sitenizin giriş sayfası brute-force saldırılarına karşı korunmuş olur.

WordPress Giriş Limiti Neden .htaccess ile Ayarlanmalı?

WordPress sitelerinde giriş denemelerini sınırlamak için birçok eklenti bulunmaktadır. Ancak, `.htaccess` yönteminin bu eklentilere göre bazı önemli avantajları vardır:

  • Sunucu Seviyesinde Koruma: Eklentiler WordPress uygulamasının içinde çalışırken, `.htaccess` sunucu seviyesinde, yani siteniz yüklenmeden önce devreye girer. Bu, eklentilere kıyasla daha hızlı ve daha etkili bir savunma katmanı sağlar.
  • Performans Yükü Oluşturmaz: Her eklenti, sitenize ek bir yük bindirir ve performansı yavaşlatabilir. `.htaccess` ise doğrudan sunucu tarafından işlendiği için ek bir yazılım yükü oluşturmaz ve sitenizin hızını etkilemez.
  • Daha Zor Devre Dışı Bırakılır: Bir saldırgan, sitenize erişim sağladığında ilk iş olarak güvenlik eklentilerini devre dışı bırakmaya çalışabilir. Ancak `.htaccess` dosyasındaki kuralları devre dışı bırakmak, WordPress paneline erişimden çok daha zor ve teknik bilgi gerektiren bir iştir. Bu, savunmanın derin katmanlarından biri olarak kabul edilir.
  • Temel Güvenlik Mekanizması: `.htaccess` ile yapılan ayarlar, sitenizin temel güvenlik mimarisinin bir parçası haline gelir. Bu, sitenizi daha sağlam ve dayanıklı kılar.

.htaccess ile WordPress Giriş Limitini Ayarlama (Adım Adım)

Bu yöntem, sitenizin güvenliğini artırmak için atabileceğiniz en güçlü adımlardan biridir. Ancak dikkatli olunması gerekir; yanlış bir kod sitenizin çalışmamasına neden olabilir.

1. Adım: .htaccess Dosyasını Bul

`.htaccess` dosyası genellikle WordPress kurulumunuzun ana dizininde (genellikle public_html, www veya root klasörü) yer alır. Bir FTP istemcisi (örneğin FileZilla) veya hosting kontrol panelinizin (cPanel, Plesk vb.) dosya yöneticisi aracılığıyla bu dizine erişebilirsiniz. Eğer dosyayı göremiyorsanız, FTP istemcinizde veya dosya yöneticinizde “gizli dosyaları göster” seçeneğinin etkin olduğundan emin olun, çünkü `.htaccess` dosyası bir nokta ile başladığı için gizli olarak işaretlenmiş olabilir.

2. Adım: Dosyayı Yedekle

Bu adım hayati önem taşır! Herhangi bir değişiklik yapmadan önce, mevcut `.htaccess` dosyasının bir kopyasını bilgisayarınıza indirin. Böylece olası bir hata durumunda orijinal dosyayı kolayca geri yükleyebilirsiniz. Yanlış bir kod satırı, sitenizin “500 Internal Server Error” hatası vermesine veya tamamen erişilemez hale gelmesine neden olabilir.

3. Adım: Kodu Ekle

Aşağıdaki kod parçacığı, belirli bir IP adresinden 3’ten fazla hatalı giriş denemesi yapıldığında o IP adresini 1 saat (3600 saniye) boyunca 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. Eğer aktif değilse, hosting destek ekibinizle iletişime geçerek etkinleştirmelerini isteyebilirsiniz.

<IfModule mod_evasive.c>
DOSHashTableSize 3097
DOSPageCount 3
DOSSiteCount 10
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 3600
</IfModule>
  • DOSHashTableSize: Hash tablosunun boyutu (genellikle varsayılan değer yeterlidir).
  • DOSPageCount 3: Bir IP’den aynı sayfaya 1 saniye içinde yapılan maksimum istek sayısı (3 deneme).
  • DOSSiteCount 10: Bir IP’den tüm siteye 1 saniye içinde yapılan maksimum istek sayısı.
  • DOSPageInterval 1: Bir sayfa isteği arasındaki saniye cinsinden aralık.
  • DOSSiteInterval 1: Tüm siteye yapılan istekler arasındaki saniye cinsinden aralık.
  • DOSBlockingPeriod 3600: Engellenen bir IP’nin ne kadar süreyle engelli kalacağı (saniye cinsinden, 3600 saniye = 1 saat).

Alternatif: IP Bazlı Erişim Kısıtlaması

Eğer mod_evasive modülü sunucunuzda etkin değilse veya daha basit, doğrudan IP engelleme yöntemlerini tercih ediyorsanız, aşağıdaki kod parçacıklarını kullanabilirsiniz.

Belirli Bir IP Adresini Engelleme

Bu kod, belirtilen IP adresinden gelen tüm erişimi engeller. Bu, bilinen kötü niyetli bir IP’yi tamamen sitenizden uzak tutmak istediğinizde kullanışlıdır.

<Limit LOGIN>
Order Deny,Allow
Deny from 123.456.789.000
Allow from all
</Limit>

123.456.789.000 yerine engellemek istediğiniz IP adresini yazmalısınız.

Sadece Kendi IP Adresinize İzin Verme (wp-login.php Sayfası İçin)

Bu, WordPress giriş sayfanız wp-login.php‘ye erişimi en katı şekilde kısıtlamanın bir yoludur. Sadece belirli IP adreslerinin bu sayfaya erişmesine izin verirken, diğer tüm IP’leri engeller. Bu yöntem, özellikle sabit IP adresine sahipseniz veya sadece belirli bir ofis ağı gibi kısıtlı bir alandan giriş yapıyorsanız oldukça etkilidir. Ancak dinamik IP adresiniz varsa, IP’niz değiştiğinde kendinizi dışarıda bırakabilirsiniz.

<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 111.222.333.444
</Files>

111.222.333.444 yerine kendi IP adresinizi yazmalısınız. Kendi IP adresinizi “What is my IP?” gibi sitelerden kolayca öğrenebilirsiniz.

Limiti Ayarlarken Dikkat Etmen Gerekenler

WordPress giriş limitini belirlerken, saldırganları engellemek kadar, kendinizi veya yasal kullanıcıları yanlışlıkla sitenizden dışarıda bırakmamak da önemlidir. Bu adımda dikkatli davranmak, hem güvenliği hem de erişilebilirliği korumanız için kritik öneme sahiptir.

  • Kendi IP Adresini Engellememeye Dikkat Et: Özellikle IP bazlı kısıtlamalar kullanırken, kendi IP adresinizi yanlışlıkla engellemek sitenize erişiminizi kesebilir. Kendi IP’nizi doğru girdiğinizden emin olun.
  • Kod Ekledikten Sonra Test Et: Değişiklikleri kaydettikten hemen sonra, farklı bir cihazdan veya IP adresinden (mümkünse) sitenizin giriş sayfasını test edin. Hatalı giriş denemeleri yaparak kısıtlamanın doğru çalışıp çalışmadığını kontrol edin.
  • Sunucunda mod_evasive Etkin Değilse Destek Al: Eğer mod_evasive kodunu kullanmak istiyor ancak modülün aktif olmadığını görüyorsanız, hosting sağlayıcınızın destek ekibiyle iletişime geçerek bu modülü aktif etmelerini isteyin.
  • Hatalı Bir Satır Tüm Siteyi Etkileyebilir: `.htaccess` dosyasına ekleyeceğiniz hatalı veya eksik bir kod satırı, tüm sitenizin çalışmamasına, HTTP 500 hataları vermesine veya diğer işlevlerinin bozulmasına neden olabilir. Bu yüzden her zaman bir yedek bulundurun ve değişiklikleri dikkatlice yapın.

WordPress giriş limitini `.htaccess` ile ayarlamak, bazen karmaşık ve ağır güvenlik eklentilerinden çok daha etkili ve hafif bir çözüm sunabilir. Bu basit ama güçlü sunucu seviyesi ayarlama, sitenizi brute-force saldırılarına karşı ciddi oranda güçlendirir ve dijital varlığınızın omurgasını sağlamlaştırır. Unutmayın, en iyi güvenlik uygulamaları genellikle en temel ve en proaktif olanlardır. Eğer bu yazıyı faydalı bulduysanız, WordPress giriş denemelerini yönetmek için eklenti odaklı yaklaşımları ve hangi eklentileri kullanabileceğinizi detaylı şekilde ele aldığım WordPress Giriş Denemelerini Sınırlandırma Nedir, Neden Gereklidir? başlıklı yazımıza da göz atarak bilginizi pekiştirebilirsiniz. Sizin de giriş denemeleriyle ilgili deneyimleriniz varsa veya bu konuda yardıma ihtiyacınız olursa, yorumlarda paylaşabilir veya bana iletişim sayfamızdan yazabilirsiniz – birlikte en doğru çözümü bulalım ve sitenizi daha güvenli hale getirelim. Sevgiler 🫶

You May Have Missed