Domain & Hosting Yazılım Pratikleri

.htaccess ve GeoIP ile Ülke Erişim Engelleme

Bu yazıda paylaştığımız kodlar yalnızca Domainhizmetleri hosting sunucularında test edilmiştir.
Farklı firma ve sunucularda konfigürasyon uyuşmazlığı kaynaklı çalışmayabilir. Alternatif çözüm olarak PHP ile Ülke Koduna Göre Ziyaretçi IP Adresi Engelleme makalemizi uygulayabilirsiniz.

İnternet sitenize gelen siber saldırılara karşı güvenlik sağlamak veya kişisel tercihlerinizden dolayı diğer ülkelerden internet sitenize erişilmesini engellemek istiyor olabilirsiniz. 

Domainhizmetleri Web Hosting’lerinde Türkiye Dışına Erişimi Engelleme

Aşağıda iletmiş olduğumuz kodları, projenizin kök dizini (public_html) içindeki .htaccess dosyanız içerisine ekleyerek Türkiye dışındaki tüm ülkelerden internet sitenize erişimi engelleyebilirsiniz.

<IfModule mod_geoip.c>
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(TR)$
RewriteRule ^(.*)$ - [F,L]
</IfModule>

Türkiye Dışına Erişim Engelle Fakat Google ASN’ye İzin Ver

Türkiye dışına erişim engelleme kodunu aktif ettiğinizde Google botları internet sitenize erişemeyecektir. Bu nedenle Google botlarının indekslemelerini engellemeden çalışmasını isterseniz aşağıda bulunan kodları kullanabilirsiniz.

<IfModule mod_geoip.c>
RewriteEngine On

RewriteRule ^ - [E=TR_DISI:False]
#TR dışını engelle
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(TR)$
RewriteRule ^ - [E=TR_DISI:True]

RewriteRule ^ - [E=ISP_NOT:False]
#Google ASN Number'a izin ver
RewriteCond %{ENV:GEOIP_ISP} !^(15169)$
RewriteRule ^ - [E=ISP_NOT:True]

#Yukarıdaki tüm koşullar mevcutsa 403 yasak ver
RewriteCond %{ENV:TR_DISI} =True
RewriteCond %{ENV:ISP_NOT} =True
RewriteRule ^(.*)$ - [F,L]
</IfModule>

Belirli Bir Ülkeye Erişimi Engelleme

# Aşağıdaki bölüm Fransa ve Almanya erişimlerini yasaklar
<IfModule mod_geoip.c>
RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(FR|DE)$
RewriteRule ^(.*)$ - [F,L]
</IfModule>

ASN Bloke Kuralları

Ülke engellemeleri dışında belirlemiş olduğunuz ISP’lerden internet sitenize erişimi engellemek isterseniz aşağıda iletmiş olduğumuz kodları kullanabilirsiniz. Engellemek istediğiniz ISP’nin ASN numarasını buradan öğrenebilirsiniz: https://dnslytics.com/search?q=

Örnek 1 – OVH ISP’sinden Erişimleri Engelleme

<IfModule mod_geoip.c>
RewriteEngine On
RewriteCond %{ENV:GEOIP_ISP} !^(16276)$
RewriteRule ^(.*)$ - [F,L]
</IfModule>

Örnek 2 – Hetzner ISP’sinden Erişimleri Engelleme

<IfModule mod_geoip.c>
RewriteEngine On
RewriteCond %{ENV:GEOIP_ISP} !^(24940)$
RewriteRule ^(.*)$ - [F,L]
</IfModule>

Örnek 3 – Her İki ISP’den Erişimi Engelleme

<IfModule mod_geoip.c>
RewriteEngine On
RewriteCond %{ENV:GEOIP_ISP} !^(16276|24940)$
RewriteRule ^(.*)$ - [F,L]
</IfModule>

 

Subscribe
Bildir
guest
12 Yorum
En Yeniler Eskiler
Inline Feedbacks
View all comments