Mehmet

WFN Üye
Konular
1,204
Mesajlar
1,205
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
Apache 2.4 kullanıyorsanız .htaccess içinde erişimi sınırlandırmanın önerilen yolu Require ip yönergesidir. Belirli IP adreslerine izin vermek için aşağıdaki örneği, korumak istediğiniz dizinin .htaccess dosyasına ekleyin:

Kod:
<RequireAny>
    Require ip 192.0.2.10
    Require ip 198.51.100.0/24
</RequireAny>

Bu yapılandırmada yalnızca 192.0.2.10 adresi ile 198.51.100.0/24 ağına ait istemciler erişebilir. Diğer ziyaretçiler genellikle 403 Forbidden yanıtı alır.

Yapılandırma nasıl çalışır?​


.htaccess dosyası, bulunduğu dizin ve altındaki kaynaklar için geçerlidir. Örneğin belge kökünüz gerçekten /public_html ise dosyayı /public_html/admin/.htaccess konumuna koyarak bu dizini kısıtlayabilirsiniz. Üst dizin, alt dizin ve sunucu yapılandırmasındaki diğer yetkilendirme kuralları da sonucu etkileyebilir. Site kök dizinindeki dosya ise kapsamına göre tüm siteyi etkileyebilir.

Require ip tek bir IPv4 veya IPv6 adresini, kısmi IPv4 adresini ya da CIDR ağını kabul eder. Alternatif IP veya ağlara izin vermek için <RequireAny> kullanın: Koşullardan birinin eşleşmesi yeterlidir. <RequireAll> ise tüm olumlu koşulların birlikte sağlanmasını ister; iki ayrık ağı bu kapsayıcıya koymak anlatılan izin listesini oluşturmaz ve erişimi herkese kapatabilir.

Örneğin yalnızca yönetim paneline erişim vermek için /admin/.htaccess dosyasının en küçük tam içeriği şöyledir:

Kod:
Require ip 192.0.2.10

Gerçek sunucuda 192.0.2.10 yerine ofisinizin veya VPN çıkışınızın gerçek sabit IP adresini yazın. 192.0.2.0/24 gibi bir ağ tanımlarsanız o ağdaki tüm adresleri kapsarsınız; gereğinden geniş ağ kullanmak erişim kontrolünü zayıflatır.

İzin verme ve engelleme kararları​


İhtiyaca göre doğru yaklaşım aşağıdaki gibidir:
AmaçÖrnekSonuç
Yalnız belirli IP'lere izin vermeRequire ip 192.0.2.10Diğer tüm adresler engellenir
Belirli bir ağı izin listesine almaRequire ip 198.51.100.0/24Ağdaki istemciler erişebilir
Herkese açık alanı tek IP'den engelleme<RequireAll> ile Require not ipBelirtilen IP dışındakiler erişebilir
Tek bir IP'yi engellemek, diğer ziyaretçilerin erişimini korumak için şu yapı kullanılabilir:

Kod:
<RequireAll>
    Require all granted
    Require not ip 192.0.2.10
</RequireAll>

Require not ip tek başına kullanılmamalıdır; olumlu bir erişim koşulu olan Require all granted ile birlikte yazılmalıdır. Birden fazla engelli adres eklemek için aynı yapı içinde ek Require not ip satırları kullanabilirsiniz.

Uygulama ve test adımları​

  1. Mevcut .htaccess dosyasının kopyasını yerel bilgisayarınızda veya webden erişilemeyen bir konumda saklayın; site içinde açık bir .bak dosyası bırakmayın. Geri dönüş için panel/FTP erişiminizi hazır tutun.
  2. Apache 2.4 için Require ip kullanan yapılandırmayı dosyaya ekleyin. Dosyanın başına veya sonuna rastgele HTML ya da PHP kodu koymayın.
  3. Dosyayı UTF-8 metin olarak kaydedin ve Apache'nin okuyabildiği izinlerle sunucuya yükleyin.
  4. İzin verilen IP'den ilgili URL'yi açın; kaynak normal şekilde dönmelidir.
  5. İzin listesinde olmayan başka bir ağdan test edin; beklenen sonuç 403 Forbidden yanıtıdır.
  6. 500 Internal Server Error oluşursa değişikliği geri alıp Apache hata günlüğünü okuyun; sözdizimi, mod_authz_core/mod_authz_host ve izin verilen yönergeleri kontrol edin. Kural hiç etkili değilse dizin yolunu ve AllowOverride AuthConfig veya uygun AllowOverrideList iznini doğrulayın. AllowOverride None ve AllowOverrideList None birlikteyse dosya okunmaz.

Sık yapılan hatalar​


Apache 2.4 sunucusunda eski Order, Allow from ve Deny from örneklerini yeni Require yönergeleriyle karıştırmayın. Eski sözdizimi geriye dönük uyumluluk modülüne bağlıdır ve yeni yapılandırmalar için önerilmez.

Sunucu bir ters vekil, CDN veya yük dengeleyici arkasındaysa Apache istemci yerine vekilin IP adresini görebilir. Bu durumda tüm gerçek ziyaretçileri aynı IP olarak değerlendirip yanlışlıkla engelleme veya izin verme riski vardır. Önce Apache günlüklerindeki istemci adresinin gerçekten beklediğiniz adres olduğunu kontrol edin; gerekiyorsa sunucu yöneticisi mod_remoteip yapılandırmasını yalnız güvenilen proxy adresleriyle sınırlandırmalıdır. İnternetten gelen herhangi bir X-Forwarded-For başlığına doğrudan güvenmek istemci IP’sinin taklit edilmesine yol açabilir.

IP filtresi, yönetici parolası ve uygulama yetkilendirmesinin yerine geçmez. Aynı NAT veya VPN çıkışını birden fazla kişi paylaşabilir; izinli IP tek başına kullanıcı kimliğini kanıtlamaz.

Sık sorulan sorular​


Dinamik IP kullanan bir kullanıcı bu yöntemi kullanabilir mi?​


Kullanabilir ancak IP değiştiğinde erişim kesilir. Bu durumda sabit VPN çıkış IP'si veya ayrıca kimlik doğrulama kullanmak daha uygundur.

IPv6 adresi de yazılabilir mi?​


Evet. Tek IPv6 adresi veya CIDR ağı Require ip 2001:db8:1::/64 biçiminde tanımlanabilir. IPv4 ve IPv6 istemcileriniz varsa her ikisini de izin politikanıza ekleyin.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.