Nginx

Jak blokovat hotlinking pomocí Nginx

Jak blokovat hotlinking pomocí Nginx
Nginx je lehký webový server schopný zpracovat obrovský počet požadavků v danou dobu, aniž by byl server zaneprázdněn. Obsahuje sofistikované funkce, jako je asynchronní zpracování, podpora protokolu ipv6, načítání mezipaměti, podpora http / 2, blokování hotlinků, podprocesy, SPDY a SSL a mnoho dalších. Jednou z nejdůležitějších funkcí každé webové stránky obecně je blokování hotlinků. Hotlinking je škodlivá praxe, kterou často dělají někteří malí weboví mistři, když si nemohou dovolit náklady na šířku pásma, a tak si ji nakonec vezmou odjinud. To brání legitimním webovým mistrům využívat šířku pásma, za kterou zaplatili. Kromě toho může být propojený zdroj nedostupný pro uživatele, kteří navštíví původní web, když dojde šířka pásma přidělená původnímu správci webu a vlastník webu za nadměrně spotřebovanou šířku pásma neplatí. Abychom zachovali integritu, měla by být zastavena dostupnost horkých odkazů na web a tato příručka vás naučí, jak to snadno provést.

Příprava

V přípravném segmentu jsou obecné pokyny pro obě později zmíněné metody odstraněny. Je zřejmé, že je důležité mít konzolu pro přístup k serveru přes SSH a správný textový editor jako nano pro otevření konfiguračního souboru Nginx. Jakmile jsou obě získány, použijte následující příkazy k otevření, uložení a použití změn. Následující kroky předpokládají, že uživatel již přistupoval k serveru přes SSH.

nano / etc / nginx / sites-available / default

Metoda 1: Obecná metoda

Obecná metoda je velmi snadno implementovatelná a srozumitelná, protože obsahuje pouze blok umístění. Kromě toho blokuje požadavky pouze na určité formáty souborů namísto blokování všech požadavků od neplatných odkazujících na server.

  1. Zkopírujte následující fragment kódu.
  2. Otevřete výchozí soubor nginx, jak je vidět ve fázi „Příprava“.
  3. Vložte zkopírovaný fragment kódu pod první blok umístění nalezený ve výchozím souboru. V nginx je regulární výraz necitlivý na velká a malá písmena (~ *) vždy upřednostňován před lomítkem (/), a proto je následující fragment kódu spuštěn před blokem lomítka lomítka.
  4. Uložte a zavřete výchozí soubor a poté proveďte 3, 4 kroky ve fázi „Příprava“, aby se změny projevily.

V následujícím příkladu blokuje požadavky na soubory css, gif, ico, jpeg, js, png, woff, woff2, ttf, ttc, otf a eot. V bloku umístění je 10 podmíněných příkazů. První podmíněné prohlášení umožňuje přímé prohlížení zdrojů prostřednictvím webového prohlížeče, 2nd a 3rd bloky umožňují prohlížení zdrojů přes původní web (jak nahé, tak subdomény www), zbytek bloků kromě vyhledávání?q a poslední blok umožňují prohledávačům vyhledávačů přístup a indexují zdroje, což je velmi důležité pro indexování obrázků v obrázcích google i obrázcích bing. Výzkum?q umožňuje službě mezipaměti google přístup a ukládání zdrojů spolu se stránkou, a tím lze na stránku přistupovat přímo prostřednictvím výsledku vyhledávání google, když je web offline.

umístění ~ * \.(css | gif | ico | jpeg | jpg | js | png | woff | woff2 | ttf | ttc | otf | eot) $
if ($ http_referer !~ "^ $")
nastavit $ pravidlo_0 1 $ pravidlo_0;

if ($ http_referer !~ "^ http: // nucuta.com /.* $ ")
nastavit $ pravidlo_0 2 $ pravidlo_0;

if ($ http_referer !~ "^ http: // nucuta.com $ ")
nastavit $ pravidlo_0 3 $ pravidlo_0;

if ($ http_referer !~ * "google.")
nastavit $ pravidlo_0 4 $ pravidlo_0;

if ($ http_referer !~ * "vyhledávání?q = mezipaměť ")
nastavit $ pravidlo_0 5 $ pravidlo_0;

if ($ http_referer !~ * "msn.")
nastavit $ pravidlo_0 6 $ pravidlo_0;

if ($ http_referer !~ * "yahoo.")
nastavit $ pravidlo_0 7 $ pravidlo_0;

if ($ http_user_agent !~ * "googlebot")
nastavit $ pravidlo_0 8 $ pravidlo_0;

if ($ http_user_agent !~ * "msnbot")
nastavit $ pravidlo_0 9 $ pravidlo_0;

if ($ http_user_agent !~ * "usrkávat")
nastavit $ pravidlo_0 10 $ pravidlo_0;

if ($ rule_0 = "10987654321")
návrat 403;
přestávka;

Metoda 2: Metoda Valid_Referers

Nejpohodlnější je platný odkazovač a široce uznávaná metoda pro snadné blokování neplatných odkazovačů. Obsahuje jen dva řádky ve srovnání s předchozí metodou a je velmi flexibilní. Je to ale trochu těžké strávit, protože jde o regulární výrazy a jiný mechanismus blokování požadavků od neplatných refererů.

  1. Zkopírujte následující fragment kódu mezi a na samém začátku hlavního bloku umístění.
  2. Nahraďte seznam názvů domén povolenými názvy domén, například google, bing nebo vlastními doménami atd.
  3. Uložte a zavřete výchozí soubor a poté proveďte 3, 4 kroky ve fázi „Příprava“, aby se změny projevily.

valid_referers žádný blokovaný server_names

*.linux.com linux.* www.linux.com / o /
~ \.linux \.;
 
if ($ invalid_referer)
návrat 403;

Má hlavně dva bloky kódu, valid_referers a podmíněný výraz if s proměnnou invalid_referer. Ve výchozím nastavení se tento blok kódu používá mezi a na samém začátku bloku umístění před provedením jakéhokoli jiného kódu, ale lze jej použít i na jakémkoli jiném místě, například mezi blokem kódu umístění s regulárními výrazy detekovat konkrétní formáty souborů, aby bylo blokování relevantní pro výše uvedené formáty souborů, jako v metodě 1. Jak bylo vysvětleno dříve, metoda obsahuje pouze dva bloky kódu, první blok kódu obsahuje 3 klíčová slova, první je „žádné“, když v požadavku HTTP chybí pole refereru, druhé je „blokováno“, když je pole refereru odstraněno jakoukoli prostřední stranou, jako je proxy, firewall atd., třetí klíčové slovo je pro zadání platných doménových jmen.

Když název domény začíná symbolem „~“, považuje se to za regulární výraz, a lze tedy použít velmi složité vzory, ale může být obtížné pochopit, pokud regulární výrazy nejsou dobře známy. Pokud v příkazu valid_referers není splněna žádná z podmínek, proměnná invalid_referer je nastavena na prázdný řetězec, jinak je nastavena na 1, co to znamená, pokud nadcházející požadavek neobsahuje žádné pole refereru, nebo pokud nginx zjistil, že pole refereru je odstraněno firewallem nebo proxy serverem, nebo pokud je pole refereru nastaveno na zadané domény (platný seznam názvů domén), pak je neplatná proměnná refereru nastavena na prázdný řetězec, a tedy její podmínka if není provedena. Pokud však požadavek přichází z domény, která není ve výrazu valid_referers uvedena jako platná doména, je blokována.

ZÁVĚR

Nezapomeňte tento obsah zvážit a zabraňte tomu, aby na vašich hostovaných webech Nginx byly hotlinking.

Jak používat Xdotool ke stimulaci kliknutí myší a klávesových zkratek v systému Linux
Xdotool je bezplatný a otevřený nástroj příkazového řádku pro simulaci kliknutí myší a stisknutí kláves. Tento článek se bude věnovat krátkému průvodc...
Top 5 ergonomických produktů pro počítačové myši pro Linux
Způsobuje dlouhodobé používání počítače bolest zápěstí nebo prstů? Trpíte ztuhlými klouby a neustále si musíte třást ruce? Cítíte pálivou bolest pokaž...
Jak změnit nastavení myši a touchpadu pomocí Xinput v Linuxu
Většina linuxových distribucí je ve výchozím nastavení dodávána s knihovnou „libinput“ pro zpracování vstupních událostí v systému. Může zpracovávat v...