Контрол на посетителите по държави чрез mod_geoip
Здравейте в този пост ще се опитам да ви обясня с няколко примера как можете да контролирате кои държави имат и кои държави няма да имат достъп до вашият сайт, като използвате mod_geoip.
Mod_GeoIP ви позволява да блокирате/разрешавате IP адресите за дадена държава само по нейният буквен код( пр. Bulgaria = BG пълен списък може да намерите на адрес: тук** ) без да е нужно да правите огромен .htaccess файл пълен с много IP адреси/Мрежи на дадената държава.**
Да речем например, че не желаете вашият сайт да бъде достъпен за потребители от Китай и Япония. Нужно е да създадете файл с името “.htaccess” в главната папка на вашият сайт(DocumenRoot при повечето доставчици на споделен хостинг тя е public_html или www) и да добавите следните редове в него:
Order allow,deny
Allow from all
<IfModule mod_geoip.c>
GeoIPEnable On SetEnvIf GEOIP_COUNTRY_CODE (CN|JP) DenyCountry
</IfModule>
Deny from env=DenyCountry
Ако пък искате да блокирате всички освен една или повече държави, може да погледнете следващият пример. Той ще блокира всички с изключение на България и Германия:
Order deny,allow
Deny from all
<IfModule mod_geoip.c>
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE (BG|DE) AllowCountry
</IfModule>
Allow from env=AllowCountry
По този начин лесно и с няколко реда можете да контролирате посетителите на сайта си. Ако пък във вашият случай искате да забраните всички освен BG, US, DE и няколко IP адреса и някаква мрежа, то следващият пример е за вас.
Order deny,allow
Deny from all
<IfModule mod_geoip.c>
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE (BG|US|DE) AllowCountry
</IfModule>
Allow from env=AllowCountry
Allow from 192.168.1.1
Allow from 192.168.2.1
Allow from 192.168.3.1
Allow from 10.0.0.0/8
Този модул можете да ползвате ако примерно редовно имате проблеми с Турски хакери, които правят мизерии по вашият сайт. Можете да забраните само тях. Ето и пример:
Order allow,deny
Allow from all
<IfModule mod_geoip.c>
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE TR DenyCountry
</IfModule>
Deny from env=DenyCountry
А е възможно да имате нужда да забраните няколко държави, няколко IP адреса и една или повече мрежи. Следващият пример е точно такъв, в него забраняваме Турция, Китай, Япония и Русия заедно с 2 IP адреса и 2 мрежи:
Order allow,deny
Allow from all
<IfModule mod_geoip.c>
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE (TR|CN|JP|RU) DenyCountry
</IfModule>
Deny from env=DenyCountry
Deny from 194.145.63.2
Deny from 194.145.63.12
Deny from 188.200.0.0/16
Deny from 195.225.252.0/24
Надявам се, че тази статия ви е помогнала да разберете основните принципи за контрол на посетители с помощта на mod_geoip. Ако имате въпроси и предложения очакваме ги в коментарите.
Етикети: #geoip #blokirane #darzhavi [#modgeoip](https://www.icn.bg/bg/blog/?tag=modgeoip){: .tag-link} #razreshavane #posetiteli #allowdeny-country #kontrol-na-posetiteli-po-darzhavi