Přesměrování: Porovnání verzí

Z Freenetis Wiki
Přejít na: navigace, hledání
Řádek 34: Řádek 34:
 
Uživateli se však místo toho zobrazí jeho jméno, v případě, že IP adresa návštěvníka patří nějakému členovi, jinak jsou zobrazeny tři otazníky ???. Podrobnější informace jsou opět v programové nápovědě.
 
Uživateli se však místo toho zobrazí jeho jméno, v případě, že IP adresa návštěvníka patří nějakému členovi, jinak jsou zobrazeny tři otazníky ???. Podrobnější informace jsou opět v programové nápovědě.
  
Pokud máte již Freenetis nainstalovaný, tak musíte ještě upravit váš soubor .htaccess. V něm přidejte povolení přístupu pro stránku redirection a smažte povolení přístupu pro stránku static. Výsledné pravidla pak může vypadat např. takto:
+
Pokud máte již Freenetis nainstalovaný, tak musíte ještě upravit váš soubor .htaccess. V něm přidejte povolení přístupu pro stránku redirection a smažte povolení přístupu pro stránku static. Výsledné pravidlo pak může vypadat např. takto:
  
 
   # URL containing these strings will not be rewrited.
 
   # URL containing these strings will not be rewrited.
Řádek 43: Řádek 43:
  
 
== Co je potřeba nastavit na straně centrálního routeru? ==
 
== Co je potřeba nastavit na straně centrálního routeru? ==
 +
 +
Toto nastavení je už komplikovanější, ale člověk trochu znalý Linuxu by to měl zvládnout. Je potřeba nainstalovat
 +
 +
* ipset (v Debianu 6 je už dostupný přes repozitář, jinak je nutná ruční instalace)
 +
* lighttpd (nebo jiný nenáročný web server pro HTTP redirect)
 +
 +
Do vhodného umístění (např. /usr/local/sbin) umístit synchronizační skript a nastavit jeho pravidelné spouštění v cronu.
 +
 +
Náš současný skript obsahuje zastaralé funkce a zatím nám na starém Debianu funguje. V novém Debianu bude potřebovat menší upgrade, aby fungoval.

Verze z 10. 7. 2011, 11:49

Úvod

Toto je finální verze k právě dodělanému modulu přesměrování (červenec 2011). V Unartu Slavičín jsme používali přesměrování napsané s poněkud provizorním návrhem, protože jsme poměrně akutně potřebovali blokovat lidi, kteří neplatili internet. Dříve jsme k tomuto účelu používali přesměrování pomocí firewallu v Mikrotiku, ale toto bylo velmi nešťastné a nepraktické řešení. Konfigurace více než stovky Mikrotiků byla problematická a v praxi to nebylo dlouhodobě použitelné. V roce 2008 během prázdnin, kdy jsme ve Freenetisu dopsali finanční část, která je založená na podvojném účetnictví, jsme potřebovali informace získané o kreditech členů nějak využít. Rozhodli jsme se zabudovat přesměrování do Freenetisu. Výsledný modul tehdy nebyl úplně nejlíp navržený, ale velmi nám pomohl udělat pořádek. Po čase začali růst požadavky a rostla potřeba nových vlastností. Do vývoje Freenetisu se zapojil Lubomír Buben z Hkfree a jeden z modulů, na kterém chtěl pracovat, bylo právě přesměrování. Bohužel ani jemu se nepodařilo dotáhnout výsledek do konce. Dokumentace na této stránce je napsaná až v červenci 2011, kdy konečně nová verze přesměrování byla dokončená.

K čemu to je dobré?

Přesměrování lze využít k blokování přístupu členů na internet z různých důvodů. Jednak je možné takto blokovat lidi, jejichž IP adresa zařízení není v databázi. Dále je možné zablokovat internet lidem, kteří si přerušili členství, anebo nemají zaplaceny členské příspěvky. Přesměrování lze také využít k informování členů o blížící se valné hromadě, o plánovaném výpadku připojení, o možnosti přechodu na novou bezdrátovou technologii apod.

Jak to funguje?

Na jedné straně je Freenetis, ve kterém je kompletní evidence o tom, čí IP adresy mají být přesměrovány. Toto všechno spravuje administrátor Freenetisu nebo hospodář nebo jiný člověk, který tyto věci ve sdružení řeší. On si určí, kdy koho chce zablokovat, kdy komu povolí internet a kdy dá někomu privilegium, aby se na něj přesměrování nevztahovalo.

Na druhé straně je centrální router nebo také brána do internetu. Obvykle je to nějaký stroj s Linuxem, přes který teče provoz ze sítě do internetu a na kterém běží firewall, případně další služby jako DNS atd. Na tomto stroji je cronem spouštěn synchronizační skript v pravidelném intervalu (u nás jedna minuta). Tento skript si stáhne ze speciálních stránek Freenetisu dvě informace. Seznam síťových adres s maskou a seznam povolených IP adres. Skript vezme tyto rozsahy a IP adresy a naplní jimi ipsety v jádře (k tomuto je modul ipset). Následně vygeneruje pravidla pro firewall iptables, na základě kterých pak dochází k přesměrování. Firewall tedy přesměruje ty IP adresy, které chtějí jít na internet, spadají do načtených rozsahů, ale nejsou v seznamu povolených IP adres. To znamená, že přesměrování se uplatňuje jen pro ty podsítě v systému, pro které chce administrátor. Přesměrovány jsou jednak neznámé IP adresy (jinak by byly poslány s v seznamu povolených) a pak ty, které chceme přesměrovat (z pohledu centrálního routeru jde o vyřazení ze seznamu povolených). Toto přesměrování provádí firewall na jiný port (u nás to je 36000) centrálního routeru. Na tomto portu běží lehký webový server, který na tomto portu dělá jednoduchý HTTP redirect na jinou stránku. V našem případě jde o stránku Freenetisu vyhrazenou k tomuto účelu, např. freenetis.domena.cz/redirection.

Vracíme se zpět k Freenetisu. Freenetis si podle IP adresy návštěvníka na této stránce dohledá ve své databázi důvod přesměrování a uživateli zobrazí příslušnou zprávu. Některé zprávy si může uživatel sám zrušit, toto se hodí pro zprávy pouze informativního charakteru. Uživatel v tomto případě klikne na příslušný odkaz a je mu zobrazen rozcestník, na kterém může pokračovat do internetu. Musí ovšem počkat dobu trvání synchronizačního cyklu (u nás jedna minuta) než dojde k aktualizaci informace přesměrování na centrálním routeru.


Typy zpráv

Existuje několik zpráv, které mají různé vlastnosti. Po instalaci obsahuje systém pouze systémové zprávy. Není možné je mazat, protože jsou vázané na konkrétní funkcionalitu v systému.

  • Neznámé zařízení
  • Přerušené členství
  • Dlužník
  • Upozornění na placení - člen ho může sám vypnout oproti přesměrování "Dlužník"
  • Uživatelské zprávy - administrátor si může nadefinovat vlastní zprávy s libovolnými vlastnostmi

Co je potřeba nastavit na straně Freenetisu?

Je potřeba vyplnit nastavení v menu Přesměrování. Informace o jednotlivých položkách je v programové nápovědě. Dále je potřeba napsat texty minimálně pro systémové zprávy. Je možné využít html tagů i speciálních tagů ve složených závorkách. Například {member_name} je speciální tag napsaný v editoru zprávy. Uživateli se však místo toho zobrazí jeho jméno, v případě, že IP adresa návštěvníka patří nějakému členovi, jinak jsou zobrazeny tři otazníky ???. Podrobnější informace jsou opět v programové nápovědě.

Pokud máte již Freenetis nainstalovaný, tak musíte ještě upravit váš soubor .htaccess. V něm přidejte povolení přístupu pro stránku redirection a smažte povolení přístupu pro stránku static. Výsledné pravidlo pak může vypadat např. takto:

 # URL containing these strings will not be rewrited.
 RewriteCond $1 ^(index\.php|robots\.txt|favicon\.ico|media|redirection|backuppc)
 RewriteRule ^(.*)$ - [PT,L]

Toto se netýká nových instalací Freenetisu, jim by už měl být .htaccess vygenerován správně instalátorem.

Co je potřeba nastavit na straně centrálního routeru?

Toto nastavení je už komplikovanější, ale člověk trochu znalý Linuxu by to měl zvládnout. Je potřeba nainstalovat

  • ipset (v Debianu 6 je už dostupný přes repozitář, jinak je nutná ruční instalace)
  • lighttpd (nebo jiný nenáročný web server pro HTTP redirect)

Do vhodného umístění (např. /usr/local/sbin) umístit synchronizační skript a nastavit jeho pravidelné spouštění v cronu.

Náš současný skript obsahuje zastaralé funkce a zatím nám na starém Debianu funguje. V novém Debianu bude potřebovat menší upgrade, aby fungoval.