V případě, že se na Vaší stránce množí spamové komentáře, dochází k častým pokusům o proniknutí od automatizovaných robotů, Váš web byl napadnutý, resp. jiným způsobem zneužitý nebo jednoduše chcete pro bezpečnost z určité země jednoduchým způsobem přístup zamezit, budou jako první kroky k nápravě potřebné:
- ověřit stupeň napadení Vašeho webu nástrojem Webscanner
- blokovat přístup na webovou stránku na základě země, ze které IP adresa pochází
- blokovat IP adresy, z kterých útoky pochádzejí
Zablokování přístupu na základě země
Je důležité analyzovat přístupy na stránku, z které napadení pochází – je to možné buď externím, ale velmi využívaným nástrojem Google Analytics nebo přes offline analýzu pomocí námi doporučeného nástroje Apache viewer . V tomto kroku je potřebné zjistit GeoIP kód země (podle normy iso3166). Při této analýze též pomůže klasifikace podle následujícího seznamu zemí Po zjištění přímého kódu země můžete řídit přístup direktivami v souboru .htaccess , přičemž každou nežádoucí zemi můžete přidat jednoduchým příkazem:
<IfModule mod_geoip.c> GeoIPEnable On </IfModule> SetEnvIf GEOIP_COUNTRY_CODE UA dny SetEnvIf GEOIP_COUNTRY_CODE RU dny SetEnvIf GEOIP_COUNTRY_CODE CN dny Deny from env=dny
Tento kód například blokuje přístup z Ukrajiny, Ruska a Číny. Tento postup je možné kopírovat pro více zemí, případně direktivu tzv. „otočit“.
Pokud bychom tedy chtěli povolit přístup pouze ze Slovenska:
<IfModule mod_geoip.c> GeoIPEnable On </IfModule> SetEnvIf GEOIP_COUNTRY_CODE SK alw Deny from all Allow from env=alw
V případě potřeby můžeme povolit přístup jen z vybraných zemí. Kód uvedený níže povoluje přístup ze Slovenka, Polska, Česka a Maďarska.
<IfModule mod_geoip.c> GeoIPEnable On </IfModule> <IfModule mod_authz_core.c> Require expr "%{ENV:GEOIP_COUNTRY_CODE} in { 'SK', 'PL', 'CZ', 'HU' }" </IfModule>
Taktéž je možné použít různé bezplatné nástroje (většinou v Angličtině) na generování kódu, který přes htaccess soubor můžete použít. Námi doporučená stránka je countryipblocks.net.
Zablokovanie prístupu na základe ip adresy
V niektorých prípadoch môže byť potrebné obmedziť prístup k webu z niektorej IP adresy alebo naopak prístup povoliť iba pre niektorú IP adresu, či už z dôvodu bezpečnosti alebo testovania webu. Prístup je možné riadiť pomocou súboru .htaccess pomocou direktív Order, Allow a Deny spomenutých už vyššie pre prístup z určitej lokácie. Direktíva Allow povoľuje prístup z IP adresy, Deny prístup blokuje.
Pokiaľ teda potrebujete napríklad blokovať prístup z IP 93.23.11.7 , pridáte do .htaccess
Deny from 93.23.11.7
Tieto direktívy sa spracúvajú v troch krokoch, poradie spracovania určuje direktíva Order.
Narozdiel od typického firewallu platí vždy posledné zachytené pravidlo, direktívy sú spracované v skupinách, najprv Allow, potom Deny, alebo naopak. Možné poradia určené direktivou Order sú:
Order Deny,Allow
Prvé sú spracované direktívy Deny, následne Allow, Akákoľvek adresa, ktorá spadá pod Deny bude zamietnutá, ak nespadá aj pod direktívu Allow. Ak požiadavka nespadá ani pod Deny, ani pod Allow, je povolená.
Order Allow,Deny
Ako prvé sú spracované direktívy Allow a následne Deny. Pokiaľ prístup spadá pod pravidlá definované v Deny, bude prístup blokovaný bez ohľadu na to, či spadá aj pod pravidlá z direktív Allow. Ak IP adresa nespadá ani pod jednu z direktív, je blokovaná.
V nasledovnom kóde je prístup povolený iba z IP 37.13.22.16, z ostatných adries je prístup zamietnutý:
Order Deny,Allow Deny from all Allow from 37.13.22.16