Przed stronami na hostingu działa firewall, który blokuje znaczną część automatycznych ataków i podejrzanego ruchu, zanim dotrze on do Twojego serwisu. Czasem ta ochrona zadziała też wobec prawdziwego użytkownika, na przykład gdy ktoś wchodzi z zagranicy. Wtedy zamiast strony pojawia się błąd 403. Ten poradnik wyjaśnia, skąd się bierze i jak go rozwiązać.
Skąd bierze się błąd 403
Jednym z elementów firewalla jest filtr geograficzny (GeoIP), który ogranicza ruch z określonych krajów. Jeśli odwiedzający (albo Ty) łączy się z adresu IP przypisanego do zablokowanego kraju, serwer zwraca błąd 403 (dostęp zabroniony). Dotyczy to też sytuacji, gdy korzystasz z VPN kończącego połączenie za granicą.
To celowe zabezpieczenie: duża część niechcianego ruchu i prób włamań pochodzi z zagranicznych sieci, więc ich ograniczenie realnie odciąża i chroni stronę.
Jak odblokować dostęp
Reguły geograficzne dla swojej strony ustawiasz we własnym pliku .htaccess w katalogu głównym witryny. Poniżej gotowe wzory dla najpopularniejszych przypadków.
WordPress: wp-admin i xmlrpc.php
Dostęp do wp-admin domyślnie dozwolony jest tylko z Polski. xmlrpc.php jest zablokowany całkowicie.
Odblokowanie wp-admin dla konkretnego adresu IP:
SetEnvIf Remote_Addr ^10\.20\.30\.40 fw_wp_bypass=1
Odblokowanie wp-admin dla dodatkowego kraju (kod dwuliterowy, np. DE dla Niemiec, US dla USA, GB dla Wielkiej Brytanii):
SetEnvIf COUNTRY_CODE DE fw_wp_bypass=1
Całkowite wyłączenie blokady wp-admin:
SetEnvIf Request_Method GET fw_wp_bypass=1
SetEnvIf Request_Method POST fw_wp_bypass=1
Odblokowanie xmlrpc.php dla konkretnego kraju:
SetEnvIf COUNTRY_CODE DE fw_wp_xmlrpc_bypass=1
Całkowite wyłączenie blokady xmlrpc.php:
SetEnvIf Request_URI "xmlrpc.php$" fw_wp_xmlrpc_bypass=1
Uwaga
WordPress przy zapisie ustawień bezpośrednich odnośników (Ustawienia → Bezpośrednie odnośniki) może nadpisać plik .htaccess. Umieść reguły firewalla poza sekcjami # BEGIN WordPress i # END WordPress, najlepiej na samym początku pliku. Wtedy aktualizacje permalink ich nie usuną.
Joomla
Domyślnie panel /administrator dostępny jest tylko z Polski.
Odblokowanie dla konkretnego adresu IP:
SetEnvIf Remote_Addr ^10\.20\.30\.40 fw_joomla_bypass=1
Odblokowanie dla dodatkowego kraju:
SetEnvIf COUNTRY_CODE DE fw_joomla_bypass=1
Całkowite wyłączenie blokady:
SetEnvIf Request_Method GET fw_joomla_bypass=1
SetEnvIf Request_Method POST fw_joomla_bypass=1
PrestaShop, Invision Community i inne systemy
Dla paneli tych systemów stosowana jest analogiczna zmienna fw_presta_bypass:
SetEnvIf Remote_Addr ^10\.20\.30\.40 fw_presta_bypass=1
SetEnvIf COUNTRY_CODE DE fw_presta_bypass=1
Całkowite wyłączenie:
SetEnvIf Request_Method GET fw_presta_bypass=1
SetEnvIf Request_Method POST fw_presta_bypass=1
Blokowanie lub otwieranie całej strony dla wybranych krajów
Domyślnie brak blokady regionalnej dla treści strony. Możesz ją dodać samodzielnie.
Zablokowanie dostępu dla wybranych krajów (poniżej: Rosja i Białoruś):
SetEnvIf COUNTRY_CODE RU BlockCountry
SetEnvIf COUNTRY_CODE BY BlockCountry
<RequireAll>
Require all granted
Require not env BlockCountry
</RequireAll>
Zezwolenie wyłącznie dla wybranych krajów (poniżej: Polska i Ukraina):
SetEnvIf COUNTRY_CODE PL AllowCountry
SetEnvIf COUNTRY_CODE UA AllowCountry
Require env AllowCountry
Aktualną listę kodów krajów i dodatkowe warianty znajdziesz zawsze na webh.pl/hosting-firewall.
Problem z logowaniem do panelu klienta
Logowanie do panelu klienta standardowo nie ma włączonej blokady geograficznej, więc zwykle zalogujesz się z dowolnego kraju i adresu IP. Jeśli jednak na Twoim koncie włączono takie zabezpieczenie i blokuje Ci ono dostęp (np. przy zmiennym adresie IP albo połączeniu zza granicy), możemy je wyłączyć - wystarczy, że napiszesz do nas przez panel lub mailowo.
Wskazówka
Zanim zmienisz reguły, sprawdź, z jakiego kraju widziany jest Twój adres IP (wyszukiwarki pokazują to po wpisaniu „mój adres IP"). Czasem operator internetu lub VPN kieruje ruch przez serwery w innym kraju, niż się spodziewasz, i to wystarcza, by trafić na blokadę.