Riadenie prístupov na webovú stránku

Návod pre mierne pokročilých

V prípade ak sa na Vašej stránke množia spamové komentáre, dochádza k častým pokusom o preniknutie od automatizovaných robotov, Váš web bol napadnutý, resp. iným spôsobom znenužitý alebo jednoducho chcete pre bezpečnosť z určitej krajiny jednoduchým spôsobom prístup zamedziť, budú ako prvé kroky k náprave potrebné:


  • overiť stupeň napadnutia Vášho webu nástrojom Webscanner
  • blokovať prístup na webovú stránku na základe krajiny, z ktorej IP adresa pochádza
  • blokovať IP adresy, z ktoý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 – je to možné buď 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>

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 napríklad blokuje prístup z Ukrajiny, Ruska a Číny. Tento postup je možné kopírovať pre viac krajín, prípadne direktívu tzv. „otočiť“. 

Ak by sme teda chceli povoliť prístup iba zo Slovenska:

<IfModule mod_geoip.c>
GeoIPEnable On 
</IfModule>

SetEnvIf GEOIP_COUNTRY_CODE SK alw
Deny from all

Allow from env=alw

V prípade potreby môžeme povolit prístup len z vybraných krajín. Kód uvedený nižšie povoľuje prístup zo Slovenka, Poľska, Č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>

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.


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

Aktualizované 8. júla 2022

Bol pre vás tento návod nápomocný?

Mohlo by vás tiež zaujímať:

Spýtajte sa nás, radi poradíme
Po - Ne 8:00-22:00
Kontaktovať podporu