Nastaviť si prístupy v súbore .htaccess je vhodné ak:
- jednoduchým spôsobom chcete obmedziť prístup k vašej stránke alebo serveru
- na vašej stránke množia spamové komentáre
- dochádza k častým pokusom o preniknutie od automatizovaných botov
- váš web bol napadnutý či inak zneužitý
- prípadne chcete z bezpečnostných dôvodov blokovať prístup z určitej krajiny
Ako prvé kroky k náprave by ste mali zvážiť nasledovné opatrenia:
- overiť stupeň napadnutia vášho webu nástrojom Vírus skener
- blokovať prístup na webovú stránku na základe krajiny, z ktorej IP adresa pochádza
- blokovať IP adresy, z ktorých útoky pochádzajú
Zablokovanie prístupu na základe krajiny
Je dôležité analyzovať prístupy na stránku, z ktorej napadnutie pochádza. Možné je to externým, ale veľmi využívaným nástrojom Google Analytics alebo cez offline analýzu pomocou nami doporučeného nástroja Apache viewer .
V tomto kroku je potrebné zistiť GeoIP kód krajiny (podľa normy iso3166). Pri tejto analýze tiež pomôže klasifikácia podľa nasledujúceho zoznamu krajín. Po zistení priameho kódu krajiny viete riadiť prístup direktívami v súbore .htaccess, pričom každú neželanú krajinu viete pridať jednoduchým príkazom:
<IfModule mod_geoip.c>
GeoIPEnable On
</IfModule>
<IfModule mod_setenvif.c>
SetEnvIf GEOIP_COUNTRY_CODE PL dny
SetEnvIf GEOIP_COUNTRY_CODE RU dny
SetEnvIf GEOIP_COUNTRY_CODE CN dny
</IfModule>
<RequireAll>
Require all granted
Require not env dny
</RequireAll>
Tento kód napríklad blokuje prístup z Poľska, Ruska a Číny. Tento postup je možné kopírovať pre viac krajín, prípadne direktívu tzv. „otočiť“.
V prípade potreby môžeme povoliť prístup len z vybraných krajín. Kód uvedený nižšie povoľuje prístup z Holandska a Nemecka.
SetEnvIf GEOIP_COUNTRY_CODE NL AllowCountry SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry Deny from all Allow from env=AllowCountry
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, či už z dôvodu bezpečnosti alebo testovania webu. Prístup je možné riadiť pomocou súboru .htaccess pomocou direktív uvedených nižšie. Direktíva „Require ip“ povoľuje prístup z IP adresy, „Require not ip“ prístup blokuje.
Pokiaľ teda potrebujete napríklad blokovať prístup z konkrétnej IP 35.120.32.76, pridáte do .htaccess nasledujúci kód:
<RequireAll>
Require all granted
Require not ip 35.120.32.76
</RequireAll>
Tieto direktívy sa spracúvajú v troch krokoch, poradie spracovania určuje direktíva Order.
Taktiež je možné použiť rôzne bezplatné nástroje (väčšinou v Angličtine) na generovanie kódu, ktorý cez htaccess súbor môžete použiť. Nami odporúčaná stránka je countryipblocks.net.
Narozdiel od typického firewallu platí vždy posledné zachytené pravidlo. Direktívy sú spracované v skupinách, najprv Require, potom Require not, alebo naopak.
Prvé sú spracované direktívy Require, následne Require not. Akákoľvek IP adresa, ktorá spadá pod Require not bude zamietnutá, ak nespadá aj pod direktívu Allow. Ak požiadavka nespadá ani pod Require not, ani pod Require, je povolená.
Pokiaľ prístup spadá pod pravidlá definované v Require not, bude prístup blokovaný bez ohľadu na to, či spadá aj pod pravidlá z direktív Require. Ak IP adresa nespadá ani pod jednu z direktív, je blokovaná.