Chcete mít své stránky přístupné jen pro několik IP adres? Nebo naopak chcete nějaké adresy zablokovat a omezit jim tak přístup k webu? Žádný problém, je to otázka pár minut, zde máte k dispozici návod.
Jak zablokovat přístup na stránku podle IP?
Uděláme to pomocí .htaccess
. To je konfigurační soubor na serveru. Je to rychlé a bezpečné řešení. Stačí soubor editovat či vytvořit. Jen zkrátka – soubor vytvoříte třeba pomocí poznámkového bloku. Uložte si soubor třeba jako „test.txt“ a ten pak pomocí Total Commanderu přejmenujte na „.htaccess“. A ano, na konci žádná tečka není, ale před názvem ano.
Teď už víme skrze jaký soubor budeme dělat zamezení přístupu a jak ho vytvořit. Takže jdeme na to. V dalším odstavci už ukážu, jak zablokovat přístup určité IP, jak naopak udělat konkrétní IP výjimku a jak vytvořit vlastní zprávu pro návštěvníky, kterým se rozhodnete blokovat přístup.
Omezení přístupu na web dle IP skrze .htaccess
V této části uvedu příklad zablokování přístupu na web podle IP adresy. To znamená, že chcete, aby se někomu váš web nenačetl. To se hodí, když vás obtěžuje nějaký spam bot či otravný návštěvník. Až na něj budou mít všichni webovou stránku plně funkční a nepostřehnout žádný rozdíl.
Pro zablokování určité IP vložte kód do .htaccess
deny from 256.256.256.256
Kraťoučký kód zablokuje IP adrese 256.256.256.256
přístup na web. Nebude moci načíst stránky, obrázky, stahovat soubory… prostě cokoliv. Takto můžete zablokovat libovolné množství IP adres. Některé adresy jsou ovšem proměnné (dynamické IP) a třeba poslední trojčíslí se pořád mění. To vyřešíte tím, že namísto celé adresy zadáte jen její část.
Berte na vědomí, že zadáním jen části IP adresy odstřihnete všechny, kteří tu část mají stejnou. Pokud tedy zablokujete IP 25.654
– znepřístupníte web všem, co mají adresu, která začíná tímto číslem.
Jak povolit přístup na web jen konkrétní IP adrese
Tím se plynule dostáváme do bodu, kdy naopak chcete stránky znepřístupnit všem a zobrazovat je jen určitému počtu lidí. Třeba děláte nějaký projekt a nechcete, aby ho nikdo prohlížel i kdyby znal URL. Takže zablokujete přístup naprosto všem a jen vašemu týmu (podle jejich IP) uděláte výjimku.
Přesně tuto metodu používám na weblogu. Web spravuji sám a tak blokuji všem adresám přístup do administrace. I kdybyste věděli mé heslo, do administrace se nedostanete. Povolený přístup je totiž jen z jedné IP adresy, té mé. Doporučuji všem, kteří píšou na web ze stálého místa. A jak na to?
Pro povolení přístupu jen z jedné IP zadejte toto
order deny,allow
deny from all
allow from 256.256.256.256
První řádek serveru říká, že má zpracovat prvně zakázání (deny) a až pak řešit, kdo má povolený přístup. To je hrozně důležité, protože v opačném případě by server pustil všechny a pak řešil komu zamezit přístup. Což není nejšťastnější postup.
Druhý řádek zablokuje přístup na stránky naprosto všem. A třetí se už postará o výjimku pro naši adresu. Díky tomu máme ke stránkám přístup jen my a nemusíme se bát, že by si je prohlédl i někdo jiný. Povolených adres může být samozřejmě libovolné množství a nic vám nebrání udělat další řádek a vložit stejný kód (allow from…) s jinou IP adresou.
Tvoříme vlastní zprávu pro lidi, kteří jsou zablokovaní
Zablokovaným lidem se při přístupu na web ukazuje chyba 403 – nemáte oprávnění prohlížet tuto stránku. To však velkou informativní hodnotu nemá. Pokud někoho blokujete, bylo by fér říct něco ve stylu: „Přístup z této IP adresy byl zablokován na základě…“ a sepsat nějaké provinění.
V této části článku si ukážeme, jak na to. Níže uvádím jednoduchý kód, který zablokuje přístup jedné IP adrese a poté ji přesměruje jinam.
deny from 64.64.64.64
ErrorDocument 403 "http://...cz/pristup-odepren/"
První řádek už všichni známe (zablokuje IP adresu 64.64.64.64
), ten druhý přesměruje nežádoucího návštěvníka na stránku v uvozovkách. Je to trochu krkolomné řešení, protože budete na stránku přesměrovávat všechny, kteří se nějakým způsobem dostanou na chybu 403, ale funguje to. Druhým řádkem totiž nastavujete vlastní chybovou stránku a ta se může zobrazovat i lidem, kteří chodí tam, kam nemají (klasický příklad s umazáváním v URL).
Závěrem si dovolím snad zbytečné upozornění. Chybovou stránku musíte mít jinde než tam, kde návštěvníka blokujete. Protože by se mu nezobrazila. Pokud někomu blokujete celý web, budete muset hodit chybovou stránku do speciálního adresáře, který bude povolen všem. To znamená, že uděláte na webu nějakou složku, do ní vložíte další .htaccess
do kterého napíšete, že přístup mají všichni a do té složky vložíte chybovou stránku.
{ Komentáře k článku }
Blokace IP adresy je otázka pár minut. Horší je toho konkrétního člověka dohledat. Mě pár měsíců v diskusi otravoval jeden blbec a tohle to naštěstí vyřešilo. Vstup na mé stránky má zablokované a je klid.
PS: U toho rozsahu blokování bych se hodně zamyslel. Téměř s jistotou dojde k neoprávněnému zablokování úplně normálních návštěvníků.
Jak už jsem psal na Facebooku, raději bych tuto metodu používal na blokování IP adres nějakých robotů a spamerů. Obyčejný člověk si zapne anonymizer a jede dál. Třeba na jednom mém webu mi z jedné adresy chodil asi 200x za den robot, který mi spamoval diskusi. IP adresa byla zahraniční, takže to byl ideální kandidát na blokaci. Protože asi těžko bude někdo z Indie číst web v češtině.
Z tohoto pohledu jsem blokování IP na webu nikdy neřešil. Asi nemám dost velký web na to, abych stál robotům za snahu. Já jen potřeboval najít řešení, jak zablokovat přístup na web těm spamerům. Chtěl jsem se bránit a tohle naštěstí zafungovalo.
Používám ve WordPressu plugin WP-Ban a jsem spokojen.
Díky za tip. Já jsem člověk, který si vše raději dělá sám, takže jsem na tenhle plugin vůbec nenarazil. Naštěstí nemusím ani žádnou adresu blokovat, protože Akismet vyřeší naprostou většinu spamu. Jaké máš zkušenosti ty? Musíš nějaké adresy blokovat?
Akismet je super, ale já používám na SPAM komentáře plugin SK2 (Spam Karma 2). WP-Ban je dobrý v tom, že ti SPAM nevleze vůbec do DB (databáze). Na blogu komentáře nejsou vidět, ale v DB jsou uložené. Mazat komentáře se mi z DB stále nechce, proto používám WP-Ban, kde jednou za čas přidám IP adresu permanencích SPAMerů.
Jestli chceš vědět konkrétní IP adresy které blokuji, tak je to:
91.201.66.76
,91.201.66.6
,91.201.64.8
a46.21.144.52
.[1] Nejhorší je pokud dotyčný má dynamicky přidělovanou adresu. Naštěstí se mi to tak často nestává, ale pár krát do roka se najde blbeček co se snaží za-spamovat diskuzi.
Tomaš, osobne si myslím že toto je použitelné len pri weboch ako sú napríklad inzertné servery, kde ti „robot“ kradne data. Vtedy sa oplatí blokovať IP, lebo tam máš najčastejšie statickú IP. Ked si niekedy večer kontrolujem aké IP mi prišli tak ti poviem že asi 2-5x za mesiac je použivatel zo statickou IP.
Ako píšeš blokovať určitý rozsah IP je podla mna tragické, nevieš často čo to je za IP môže to byť siet internátu kde je množstvo wifi AP a siet je takto rozdelená na každé AP. Ty ju blokneš a tým pádom sa ti tam nedostane nikto napr zo 3000 študentov. Ako píšeš u WP je najlepšie Akismet, ale osobne by som k bloknutiu IP asi nepristúpil.
Osobne som scel statickú IP na optiku a prvá vec co mi bola spomenutá u providera ze nesmies na tej IP spustit akýkolvek server. Takze som to zabalil a dal si dynamickú načo si budeš platit statickú ked teoreticky ju nemáš na čo využívať.
Inak dobrý článok, a ten predchádzajúci bol super tiež. Posielam ti zasnežený pozdrav z Bratislavy :).
Moc ti děkuji za komplimenty. Jinak já bych na blokování přístupu někomu na web také nepřistoupil. Pokud by to tedy nebylo nevyhnutelné. Chtěl jsem zkrátka udělat návod, jak blokovat přístup, pokud to majitel uzná za vhodné a potřebuje takové řešení.
Blokování IP adresy není asi nejpřesnější způsob, jak někoho odstřihnout, ale zatím nevím nic o lepším řešení.
Osobne používam WP-ban najmä na ľudí, ktorí mi 200 krát reloadnú stránku. Čo tým sleujú, neviem. Ale ja radšej odstrihnem jeden internát, ako si nechať takto nabúravať blog.
Komentáře jsou pro tento článek již uzavřeny.