Ako blokovať určité webové stránky v jednotlivých učebniach počas vyučovania

Proxy server okrem toho, že ukladá webové stránky do medzipamäte a urýchľuje komunikáciu, dokáže pomocou kombinácie určitých druhov zoznamov tzv. ACL (access control list) riadiť prístup k internetu. Okrem iného umožňuje pomocou troch pravidiel blokovať niektoré stránky na základe ich adries alebo IP adries a to na konkrétnych počítačoch (s určitými doménovými menami alebo IP adresami) počas trvania vyučovania.

Ak chcete stránky filtrovať podľa obsahu, slúži na to iný nástroj, ktorému sa budeme venovať v kapitole Ako nastaviť na školskom serveri filtrovanie webových stránok podľa obsahu.

Táto časť predpokladá nainštalovaný proxy server Squid na vašom serveri. Návod nájdete na stránke Ako nastaviť ukladanie webových stránok na školský server.

V rozhraní Webmin rozbalíme ponuku Servery a klikneme na odkaz Squid Proxy Server.  Na stránke, ktorá sa otvorí, vyberieme Acces Control.

Ak si spomínate, v predchádzajúcej časti sme tu definovali parametre našej siete. Pod zoznamom pravidiel prístupu v rozbaľovacom poli sme vybrali Client Address a ťukli na tlačidlo Create new ACL. Vysvetlenie ďalších ACL pravidiel, ktoré môžeme použiť, je možné nájsť na konci tohto článku. Teraz si na konkrétnych príkladoch ukážeme ich použitie.

Definovanie zoznamov pre jednotlivé učebne


Za predpokladu, že máme na počítačoch nastavené IP adresy - buď ručne alebo pomocou DHCP servera (Ako nastaviť školský server, aby prideloval IP adresy na základe MAC adries)- môžeme zadefinovať pravidlá pre jednotlivé učebne.

Urobíme to presne tak isto ako keď sme definovali pravidlo pre celú vnútornú sieť, no teraz zadáme len rozsah adries počítačov z učebne.

V našom návode sme si zadefinovali učebňu informatiky v rozsahu 192.168.1.10-192.168.1.20, čo predstavuje 11 počítačov - jeden učiteľský (192.168.1.10) a 10 žiackych.

Pod zoznamom pravidiel prístupu teda v rozbaľovacom poli vyberieme Client Address a ťukneme na tlačidlo Create new ACL a zadáme:

ACL name : ucebna_studenti
From IP : 192.168.1.11
To IP : 192.168.1.20
Netmask :24

A potom zoznam uložíme stlačením tlačidla Save.

Takýmto spôsobom môžme vytvoriť zoznamy pre všetky učebne, kabinety, zborovňu alebo knižnicu - fantázii sa medze nekladú.

Definovanie zoznamov pre časové obdobia


Teraz zadefinujeme čas, počas ktorého prebieha vyučovanie. Pod zoznamom pravidiel prístupu, teda v rozbaľovacom poli, vyberieme Date and Time, ťukneme na tlačidlo Create new ACL a zadáme:

ACL name : vyucovanie
Days of weak : pomocou klávesy CTRL+ kliknutie myšou označíme všetky položky od monday po friday (pondelok až piatok)
Hours of the Day : zadáme začiatok a koniec vyučovania napr.: 7:00 to 15:00

Definovanie zoznamov zakázaných web serverov


Jednou z najnavštevovanejších stránok, ktorá počas vyučovania rozptyľuje žiakov od práce a navyše znižuje priepustnosť interntetu, je stránka youtube. Môžme teda vytvoriť pravidlo problemove_stranky a vypísať do neho všetky adresy problémových serverov (môže ich byť i viac).

Pod zoznamom pravidiel prístupu teda v rozbaľovacom poli vyberieme Web Server Hostname, ťukneme na tlačidlo Create new ACL a zadáme:

ACL Name : problemove_stranky
Domains : .youtube.com

ACL problemove stranky

Ak by ste potrebovali do zoznamu vložiť iba určitú časť webu, napríklad akčné hry na onlinegames na adrese http://www.onlinegames.sk/index.php?cath=2, použite pravidlo URL Regexp (viď zoznam pravidiel na konci kapitoly).

Zadefinovanie obmedzujúceho Proxy pravidla


Samotné zoznamy, ktoré sme vytvorili ešte nezabezpečia, že bude prístup na stránky (spĺňajúce kritéria zoznamu) zablokovaný alebo povolený. Je ešte potrebné vytvoriť obmedzujúce pravidlo:

Prepneme sa teda hore na záložku Proxy restriction a pod zoznamom pravidiel ťukneme na odkaz Add proxy restrictions

Uvidíme dva stĺpce. V ľavom stĺpci Match ACLs vyberieme ACL zoznamy, ktoré sa majú zhodovať s požiadavkou klienta a vpravom stlpci Don't Match ACLs vyberieme ACL zoznamy, ktoré sa nesmú zhodovať s požiadavkou klienta. Vybrať môžeme i viacero ACL zoznamov naraz.

Ak teda chceme zablokovať problemove_stranky počas vyucovanie na počítačoch ucebna_studenti, v ľavom stĺpci vyberieme pomocou CTRL+klik práve tieto ACL zoznamy, prepínač prepneme do polohy Deny a uložíme stlačením tlačidla Save.

Typy zoznamov ACL na riadenie prístupu


Browser Regexp

Regulárny výraz, ktorý sa zhoduje s typom prehliadača klienta v hlavičke. To umožňuje vytvárať ACL na základe používaného prehliadača. Pomocou tohto typu ACL môžete napríklad vytvoriť iné pravidlá pre používateľov Firefoxu a iné pravidlá pre používateľov Internet Explorera. Toto môže byť využité napríklad na presmerovanie používateľov Firefoxu na stránky určené pre Firefox a používateľov IE na stránky určené pre Explorer. Príklad nie je síce rozumné riešenie,  ale dokumentuje flexibilitu Squidu.

Client IP Address

IP adresa vyžiadaného klienta alebo IP adresa klienta. Táto možnosť odkazuje na zdrojové ACL v konfiguračnom súbore Squidu. Je potrebné zadať IP adresu a sieťovú masku, ale je tiež možné zadať rozsah adries.

Client Hostname

Zhoda na základe doménového mena klienta. Táto možnosť korešponduje so srcdomain ACL a môžete zadať jedno meno domény, zoznam doménových mien alebo súbor, ktorý obsahuje zoznam doménových mien. Tento typ ACL môže zvýšiť oneskorenie a významne znížiť priestupnosť nahranej vyrovnávacej pamäte, pretože Squid musí preložiť adresu na meno pre každý záznam, preto sa miesto tohoto pravidla uprednostňuje pravidlo typu Client IP Address.

Client Hostname Regexp

Zhoda na základe doménového mena klienta (s použitím regulárnych výrazov). Táto voľba korešponduje so srcdom_regex ACL a môžete zadať jedno meno domény, zoznam doménových mien alebo súbor, ktorý obsahuje zoznam doménových mien.

Date and Time

Tento typ plne zodpovedá názvu- dátum a čas, čo znamená že umožňuje vytvoriť ACL, ktoré sú aktívne počas zadaného času v príslušných dňoch týždňa. Táto funkcia je často používaná na blokovanie niektorých typov obsahov alebo niektorých častí internetu počas pracovnej doby alebo vyučovania. Veľa spoločností blokuje pornografiu, Many companies block pornography, zábavu, šport a iné mimopracovné stránky počas pracovnej doby, ale po jej skončení sa odblokujú. To môže v niektorých prípadoch zvýšiť efektivitu práce (alebo môže často uraziť a znechutiť žiakov a zamestnancov). Tento typ ACL umožňuje zadať dni v týždni a časové obdobie alebo vybrať všetky hodiny vo vybraných dňoch.

Dest AS Number

Číslo autonómneho systému cieľa je číslo AS servera, na ktorý sa bude odosielať požiadavka. ACL typ Číslo autonómneho systému sa zvyčajne používa pri Cache Peer, alebo ICP obmedzeniach prístupu. Číslo autonómneho systému sa používa v organizáciách, ktoré majú viacero internetových pripojení a routerov pracujúcich pod jednoduchou administračnou autoritou, ktorá používa rovnaký protokol brány. Ak nerozumiete autonómnym systémom, je najlepšie nepoužívať tento druh ACL.

Source AS Number

Číslo autonómneho systému zdroja  je iný typ ACL závislý na AS čísle zdroja odosielajúceho požiadavku.

Ethernet Address

Ethernetová alebo MAC adresa žiadajúceho klienta. Táto možnosť funguje iba pre klientov v rovnakej lokálnej podsieti a iba na určitých platformách. Tento typ ACL je podporovaný v operačných systémoch Linux, Solaris a niektorých variantách BSD. Tento ACL môže poskytnúť o trochu viac bezpečnú metódu na kontrolu prístupu, pretože MAC adresy sú ťažšie podvrhnuteľné ako IP adresy a môžete tým zabezpečiť, že klient bude z lokálnej siete (otherwise no ARP resolution can take place).

External Auth

Tento typ ACL zavolá externý autentifikačný proces, aby určil, či má byť požiadavka povolená. Pre Squid je dostupných mnoho pomocných autentifikačných programov, vrátane PAM, NCSA, Unix passwd, SMB, NTLM (iba pre Squid 2.4), atď. Autentifikačné programy však nemôžu pracovať ak je zapnuté transparentné proxy (tak ako sme to urobili v našom návode) alebo HTTP akcelerátor.

External Auth Regex

Podobne ako predchádzajúce, aj toto ACL volá externý autentifikačný proces, ale umožňuje použiť vzory regulárnych výrazov alebo nerozlišuje malé a veľké písmená.

Proxy IP Address

Lokálna IP adresa, ku ktorej existuje pripojenie od klienta. Toto ACL umožňuje iba jednu fyzickú sieť, ak sú dostupné viaceré proxy rozhrania.

RFC931 User

Meno používateľa je dané démonom ident, ktorý beží na počítači klienta. To  si vyžaduje, aby bol ident spustený na všetkých klientských počítačoch, ktoré sa chcú touto cestou autentifikovať. Ident nemusí byť bezpečný, okrem prípadov privátnych sietí, keď na jeho bezpečnosti veľmi nezáleží. Väčšina Linuxových a BSD distribúcií obsahuje Ident server a pre Windows sa dajú najsť ident servery zadarmo.

Request Method

Tento typ ACL pracuje s HTTP metódami vo vyžiadaných hlavičkách. To zahŕňa i metódy GET, PUT, atď.

URL Path Regex

Toto ACL pracuje s URL cestami bez protokolu, portu a adresy počítača. Napríklad pri zadaní "http://www.swelltech.com/pokus" bude objektom ACL iba /pokus.

URL Port

Toto ACL platí pre cieľový port požiadavky.

URL Protocol

Toto ACL platí pre protokol požiadavky ako napríklad ftp, HTTP, ICP, atď.

URL Regexp

Toto ACL používa regulárne výrazy nad URL adresami. Môže byť použité na poskytnutie prístupu  na základe častí URL alebo porovnávanie bez rozlišovania veľkosti písmen, atď. Regulárne výrazy, ktoré Squid používa, sú z knižnice GNU Regex library.

Web Server Address

Toto ACL pracuje na základe cieľovej IP adresy Web servera. Môže to  byť jedna IP adresa Squidu, sieťová IP adresa s maskou ale tiež rozsah adries.

Web Server Hostname

Toto ACL platí pre meno cieľového webového servera.

Web Server Regexp

Rovnaké ako predchádzajúce len je možné použit regulárne výrazy.

Poznámka: Viac o regulárnych výrazoch sa môžete dozvedieť na stránke http://www.regularnivyrazy.info/