Skocz do zawartości

Blokowanie ruchu spoza Polski lub z konkretnych krajów


Harry

Rekomendowane odpowiedzi

  

Witajcie

Przedstawiam wam poradnik, opisujący jak przy za pomocą .htaccess zablokować całkowicie ruch z danego państwa lub ze wszystkich państw z wyłączeniem jednego. W grudniu 2020 roku na jednym z for o zarabianiu przez internet zgłosił się do mnie użytkownik, który miał problem z niskiej jakości ruchem na stronie. Target strony na Polskę, a ruch wpada z Rumunii - dziwne... zapytał czy da radę jakoś to zablokować. Odkąd zablokowałem ruch z Rumunii wszystko ustało, problem zniknął, a user cieszy się ponownie konwersją w jednej z sieci afiliacyjnych ;)

Po tym małym wstępie...

 

Jeżeli chcesz zablokować ruch spoza Polski (czyli dopuszcza osoby z polskim IP), to w pliku .htaccess dodaj poniższy kod:

RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^PL$ [NC]
RewriteRule (.*) - [F] 

 

Jeśli natomiast chcesz zablokować tylko konkretny kraj, to do pliku .htaccess dodaj poniższy kod w miejsce "~~~KOD KRAJU~~~"

RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^[~~~KOD KRAJU~~~]$ [NC]
RewriteRule (.*) - [F]

 

Za przykład niech posłuży Rumunia. Żeby zablokować ruch z Rumunii wystarczy taka reguła

RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^[RO]$ [NC]
RewriteRule (.*) - [F]

 

Ruch z Rosji

RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^[RU]$ [NC]
RewriteRule (.*) - [F]

 

Ruch z USA

RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^[US]$ [NC]
RewriteRule (.*) - [F]

Jeżeli chcesz dodać więcej niż jedno państwo, to po znaku " | " dajesz kolejne, np.

 

Rumunia, Rosja, USA

RewriteEngine On
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^[RO|RU|US]$ [NC]
RewriteRule (.*) - [F]

 

W spoilerze lista podzielona na KOD | KRAJ

Lista KOD | KRAJ od A do K Lista KOD | KRAJ od L do Z

AD | Andora
AE | Zjednoczone Emiraty Arabskie
AF | Afganistan
AG | Antigua i Barbuda
AI | Anguilla
AL | Albania
AM | Armenia
AO | Angola
AP | Region Azji i Pacyfiku
AQ | Antarktyda
AR | Argentyna
AS | Samoa Amerykańskie
AT | Austria
AU | Australia
AW | Aruba
AX | Wyspy Alandzkie
AZ | Azerbejdżan

BA | Bośnia i Hercegowina
BB | Barbados
BD | Bangladesz
BE | Belgia
BF | Burkina Faso
BG | Bułgaria
BH | Bahrajn
BI | Burundi
BJ | Benin
BL | Saint Bartelemey
BM | Bermudy
BN | Brunei Darussalam
BO | Boliwia
BQ | Bonaire | Święty Eustatius i Saba
BR | Brazylia
BS | Bahamy
BT | Bhutan
BV | Wyspa Bouveta
BW | Botswana
BY | Białoruś
BZ | Belize

CA | Kanada
CC | Wyspy Kokosowe (Keelinga)
CD | Kongo | Republika Demokratyczna
CF | Republika Środkowoafrykańska
CG | Kongo
CH | Szwajcaria
CI | Wybrzeże Kości Słoniowej
CK | Wyspy Cooka
CL | Chile
CM | Kamerun
CN | Chiny
CO | Kolumbia
CR | Kostaryka
CU | Kuba
CV | Wyspy Zielonego Przylądka
CW | Curacao
CX | Wyspa Bożego Narodzenia
CY | Cypr
CZ | Republika Czeska

DE | Niemcy
DJ | Dżibuti
DK | Dania
DM | Dominika
DO | Republika Dominikany
DZ | Algieria

EC | Ekwador
EE | Estonia
EG | Egipt
EH | Sahara Zachodnia
ER | Erytrea
ES | Hiszpania
ET | Etiopia
EU | Europa

FI | Finlandia
FJ | Fidżi
FK | Falklandy (Malwiny)
FM | Mikronezja (Sfederowane Stany Mikronezji)
FO | Wyspy Owcze
FR | Francja

GA | Gabon
GB | Zjednoczone Królestwo (United Kingdom)
GD | Grenada
GE | Gruzja
GF | Gujana Francuska
GG | Guernsey
GH | Ghana
GI | Gibraltar
GL | Grenlandia
GM | Gambia
GN | Gwinea
GP | Gwadelupa
GQ | Gwinea Równikowa
GR | Grecja
GS | Georgia Południowa i Sandwich Południowy
GT | Gwatemala
GU | Guam
GW | Gwinea Bissau
GY | Gujana

HK | Hongkong
HM | Wyspy Heard i Wyspy McDonalda
HN | Honduras
HR | Chorwacja
HT | Haiti
HU | Węgry

ID | Indonezja
IE | Irlandia
IL | Izrael
IM | Wyspa Man
IN | Indie
IO | Brytyjskie Terytorium Oceanu Indyjskiego
IQ | Irak
IR | Iran | Islamska Republika
IS | Islandia
IT | Włochy

JE | Golf
JM | Jamajka
JO | Jordania
JP | Japonia

KE | Kenia
KG | Kirgistan
KH | Kambodża
KI | Kiribati
KM | Komory
KN | Saint Kitts i Nevis
KP | Korea | Demokratyczna Republika Ludowa
KR | Korea | Republika
KW | Kuwejt
KY | Kajmany
KZ | Kazachstan

LA | Laotańska Republika Ludowo-Demokratyczna
LB | Liban
LC | Święta Lucia
LI | Liechtenstein
LK | Sri Lanka
LR | Liberia
LS | Lesotho
LT | Litwa
LU | Luksemburg
LV | Łotwa
LY | Libijska Arabska Dżamahirija

MA | Maroko
MC | Monako
MD | Mołdawia (Republika Mołdawii)
ME | Czarnogóra
MF | Święty Marcin
MG | Madagaskar
MH | Wyspy Marshalla
MK | Macedonia
ML | Mali
MM | Myanmar
MN | Mongolia
MO | Makao
MP | Mariany Północne
MQ | Martynika
MR | Mauretania
MS | Montserrat
MT | Malta
MU | Mauritius
MV | Malediwy
MW | Malawi
MX | Meksyk
MY | Malezja
MZ | Mozambik

NA | Namibia
NC | Nowa Kaledonia
NE | Niger
NF | Wyspa Norfolk
NG | Nigeria
NI | Nikaragua
NL | Holandia
NO | Norwegia
NP | Nepal
NR | Nauru
NU | Niue
NZ | Nowa Zelandia

OM | Oman

PA | Panama
PE | Peru
PF | Polinezja Francuska
PG | Papua Nowa Gwinea
PH | Filipiny
PK | Pakistan
PL | Polska
PM | Saint-Pierre i Miquelon
PN | Pitcairn
PR | Portoryko
PS | terytorium palestyńskie
PT | Portugalia
PW | Palau
PY | Paragwaj

QA | Katar

RE | Zjazd
RO | Rumunia
RS | Serbia
RU | Federacja Rosyjska
RW | Rwanda

SA | Arabia Saudyjska
SB | Wyspy Salomona
SC | Seszele
SD | Sudan
SE | Szwecja
SG | Singapur
SH | Święta Helena
SI | Słowenia
SJ | Svalbard i Jan Mayen
SK | Słowacja
SL | Sierra Leone
SM | San Marino
SN | Senegal
SO | Somali
SR | Surinam
SS | Południowy Sudan
ST | Wyspy Świętego Tomasza i Książęca
SV | Salwador
SX | Sint Maarten
SY | Republika Syryjsko-Arabska
SZ | Suazi

TC | Wyspy Turks i Caicos
TD | Czad
TF | Francuskie Terytoria Południowe
TG | Togo (Republika Togijska)
TH | Tajlandia
TJ | Tadżykistan
TK | Tokelau
TL | Timor Wschodni
TM | Turkmenia
TN | Tunezja
TO | Tonga
TR | Turcja
TT | Trynidad i Tobago
TV | Tuvalu
TW | Tajwan
TZ | Tanzania | Zjednoczona Republika

UA | Ukraina
UG | Uganda
UM | Dalekie Wyspy Mniejsze Stanów Zjednoczonych
US | Stany Zjednoczone
UY | Urugwaj
UZ | Uzbekistan

VA | Stolica Apostolska (Państwo Watykańskie)
VC | Saint Vincent i Grenadyny
VE | Wenezuela
VG | Brytyjskie Wyspy Dziewicze
VI | Wyspy Dziewicze Stanów Zjednoczonych
VN | Wietnam
VU | Vanuatu

WF | Wallis i Futuna
WS | Samoa

YE | Jemen
YT | Majotta

ZA | Afryka Południowa
ZM | Zambia
ZW | Zimbabwe

 

 

Krótko acz treściwie ;) W razie problemów służę pomocą.

Pozdrawiam

  • Confused 1

Pomogłem? Podziękuj punktem reputacji ->

dzięki    
Odnośnik do komentarza
Udostępnij na innych stronach

A ta zmienna przekazująca kraj użytkownika skąd się birze na serwerze z Powietrza serwerowni ?

GEOIP_COUNTRY_CODE

Chcesz zamieszczać poradniki, to rób to kompleksowo, bo to co podajesz NIE MA żadnego zastosowania jeśli serwer HTTP nie ma zainstalowanych odpowiednich modułów do geolokalizacji IP  :spiteful:

 

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

@Mion nie wiem z jakich hostingów ty korzystasz / korzystałeś ale nigdy nie miałem problemów. W prawie każdym twoim poście idzie wyczuć pretensjonalny ton. Nie mam pojęcia dlaczego taki jesteś ale prowadząc firmę dziwię się jak można być takim zgorzkniałym i pretensjonalnym. Uważam, że powinieneś dbać o dobrą markę, więc zamiast pisać posty "pretensjonalne" oraz ukazujące twoją wyższość i wspaniałomyślność przestaw sobie włącznik w móżdżku na uprzejmość i bycie pomocnym. Jeśli widzisz problem, to go pomóż rozwiązać, wskaż błędy oraz drogę do rozwiązania, bo takimi postami robisz sobie antyreklamę. Masz napisanych 18207 postów, ile z tego jest poradnikiem (jakimkolwiek) lub postem pomocnym? a ile postów pretensjonalnych i offtopicu? Do wytykania błędów jesteś pierwszy. Musisz mieć serio smutne życie, współczuję... no dobra, jednak nie :lol2: Rozumiem - koronawirus, pandemia, kwarantanna - z domu ciężko wyjść ale człowieku ogarnij się i zachowuj jak dorosły, poważny facet, który prowadzi firmę, a nie jak stary maleńki z wybujałym ego.

 

2 godziny temu, okazwłoka napisał:

A czy taki pierwszy z brzegu htaccess nie wytnie robotów Googla na ten przykład? 

Dobre pytanie! Jak słusznie zauważyłeś opcja, która dopuszcza ruch tylko z Polski może blokować roboty indeksujące z innych państw (google, bing). Kilka razy zdarzyło mi się blokować ruch, głównie: Rosja, Chiny i raz dla jednego użytkownika z Rumunii. Problemów z blokowaniem nie miałem dlatego postanowiłem zamieścić taki krótki poradnik. ze względów "bezpieczeństwa" dobrze jest korzystać z tego tylko w wyjątkowych przypadkach. Jestem pewny, że można weryfikować google bota bazując na tym: https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers. Nigdy nie potrzebowałem, czy masz pomysł jak to rozwiązać? Może wszechwiedzące wielkie ego @Mion napisze w końcu coś mądrego :troll:

 

Bezpieczną alternatywą w blokowaniu jak najbardziej może się okazać:

Pozdrawiam serdecznie

  • Haha 1

Pomogłem? Podziękuj punktem reputacji ->

dzięki    
Odnośnik do komentarza
Udostępnij na innych stronach

10 minut temu, Harry napisał:

robisz sobie antyreklamę

Nie jestem aż taki mistrz w temacie ale nie spinaj się tak na początku bo "robisz sobie antyreklamę". 

Takie globalne blokowanie IP krajów jest przynajmniej dla mnie mało warte dla przeciętnej strony.

Przydaje się praktycznie min do blokowania "hakerów komandosów" czyli musisz to ograniczyć to do stron logowania czy kluczowych plików CMS-ów - od tego masz jednak firewall-a wiec przez .htaccess jest już nie potrzebne. Jakieś "rumuńskie roboty" nabijające słaby ruch to się pewnie inaczej da zablokować.

Na niektórych serwerach ci to nie zadziała np na home

Jeszcze inna trudność - jak ktoś korzysta z VPN-a to zwyczajnie cię nie odwiedzi a chyba nie jesteś wp.pl by sobie blokować CAŁY ruch z rumuńskich serwerów. Możesz mieć nawet klientów z "bezpiecznych" krajów którzy korzystają z VPN-ów.

 

3 godziny temu, Mion napisał:

rób to kompleksowo

temat blokowania słabej jakości ruchu to nie tylko globalne blokowanie po IP krajów. To jest tylko podejrzewam jedno rozwiązanie - nie musiałeś go rozpisywać tak dokładnie bo tu są specjaliści :pisze: 

Jak już jesteśmy przy .htaccess to zainteresuj się min uniwersalnym firewallem z tego zakresu 

https://perishablepress.com/7g-firewall/

 

Zabezpiecza się serwer z różnych powodów i zwykle robi to najlepiej i kompleksowo hostingodawca bo jest to w jego interesie by żadni "komandosi" nie robili mu najazdów. To z admiratorami hostingu najprędzej się dogadasz w temacie co i ja mają ci zablokować. 

  • Like 2

𝓒𝓸𝓰𝓲𝓽𝓸, 𝓪𝓻𝓻𝓲𝓹𝓲𝓸 𝓭𝓲𝓮𝓶, 𝓿𝓲𝓿𝓸, 𝓬𝓻𝓮𝓭𝓸, 𝓮𝓽 𝓼𝓹𝓮𝓻𝓸, 𝓱𝓾𝓶𝓪𝓷𝓲𝓽𝓪𝓽𝓮𝓶 𝓷𝓸𝓷 𝓭𝓮𝓼𝓽𝓻𝓾𝓬𝓽.

Odnośnik do komentarza
Udostępnij na innych stronach

 

43 minuty temu, Harry napisał:

nie wiem z jakich hostingów ty korzystasz / korzystałeś ale nigdy nie miałem problemów.

Np z  MyDevil, który jest bardzo cenionym i popularnym hostingiem NIE obsługuje tej zmiennej środowiska.
Dla zainteresowanych odpowiedź z BOK:

Cytat

Dobry wieczór, 

Nie, natomiast obsługujemy Maxminddb (Geoip2) jako moduł PHP, więc użycie zmiennych powinno odbyć się z poziomu skryptu PHP, nie w .htaccess.

 

Resztę zostawię bez komentarza  :wacko:

 

  • Sad 1

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności