Filtrujeme webové stránky aneb URL filtering na Mikrotiku
Po internetu brouzdáme všichni a pro většinu z nás na tom dokonce závisí naše práce. Denně vyhledáváme informace, provádíme rešerše, komunikujeme mezi sebou a sledujeme videa. Jenže internet není bezpečným místem a je jen otázkou času, kdy se členové naší rodiny, studenti nebo naši zaměstnanci dostanou na pochybné stránky. S pomocí funkce filtrování URL adres (odkazů na webové stránky) můžeme tyto hrozby minimalizovat a udržovat tak uživatele na své straně v bezpečí.
Co to je filtrování URL adres?
URL Filtering je dnes doménou hlavně Next-Generation Firewallů (dále jen NGFW). Ty kromě základních funkcí firewallu mají totiž napojení na databáze na straně výrobce, kde jsou udržovány obrovské seznamy webových stránek roztřízených do kategorií. Jednoduchým klikátkem si pak na svém NGFW nastavíte, že chcete zablokovat všechny webové stránky spadající do kategorie High-risk (velmi nebezpečné, phishingové, podvodné). Nebo zablokujete všechny weby, kde se prodává alkohol a hrají hazardní hry. Jednoduše si také nastavíte blokování Facebooku a dalších sociálních sítí během pracovní doby nebo vyučování. Naopak po skončení je povolíte. Doma můžete zakázat Youtube a další streamovací služby po dvacáté hodině večer určitým uživatelů.
Teorie je pěkná, ale především pro domácí uživatele malé firmy je takový NGFW drahý. Na českém trhu jsou běžně používané NGFW od výrobců Check Point, Palo Alto a Fortinet. Všechny mají ale jedno společné. Pro plnohodnotné fungování to znamená koupit si HW v ceně cca 20 000 Kč a k tomu licence pro next-gen funkce, které stojí na 3 roky stejně nebo více jako je cena HW. Pokud je ale řešení pro vás zajímavé a vaše firma je ochotna investovat finance do zabezpečení, tak mě neváhejte kontaktovat. Já se nyní ale dále budu věnovat řešení na Mikrotiku, který bohužel žádné next-gen funkce nemá.
Jak to udělat na Mikrotiku
Vše si tu musíte nastavit sami. Metod, jak to udělat je více. Pokud se nebojíte, rozhodně vyzkoušejte metodu číslo 4.
1. Blokování IP adres
Jde o nejméně účinnou metodu, kdy blokujete jednotlivé IP adresy dané služby. Problém je, že může jít o desítky různých IP adres, které se časem navíc mohou měnit. Tuhle metodu nedoporučuji.
2. Blokování pomocí položky content
Jde o blokování určitého slova v URL, nevýhodou je, že musíte blokovat všechny varianty daného webu s www i bez www. Metoda za jistých okolností lidem funguje, já s ní ale dobré zkušenosti nemám. Nicméně jednu ukázku sem dávám. Jde o řešení, které mi poskytl pan Aleš Koc, se kterým jsme uvedenou problematiku nedávno konzultovali.
/ip firewall filter add chain=forward content=“seznam.cz” action=drop comment="Drop Seznam” add chain=forward content="www.seznam.cz” action=drop comment="Drop Seznam” add chain=forward content=“seznam” action=drop comment="Drop Seznam” add chain=forward content=“seznam.*” action=drop comment="Drop Seznam”
3. Blokování na základě Address Listu
Jde o metodu, kdy do určitého Aaddress Listu vyjmenujete URL adresy webových stránek. Mikrotik si k nim IP adresu již dohledá sám a dynamicky si je udržuje. V ACL pravidle pak zakážete komunikaci na uvedený Address List. Tato metoda je již celkem použitelná, má ale úskalí, že občas něco propustí a špatně se to hlídá a troubleshootuje.
/ip firewall address-list add address=www.youtube.com list=block-youtube add address=googlevideo.com list=block-youtube /ip firewall filter add action=drop chain=forward dst-address-list=block-youtube
4. Blokování pomocí Layer 7 Protocols
Podle popisu ze stránek Mikrotiku tento nástroj shromažďuje prvních 10 packetů nebo 2 KB provozu a hledá v nasbíraných datech daný vzor. Pokud vzor nenajde, tak dále přestane kontrolovat. Přidělená paměť je uvolněna a protokol je prohlášen za neznámý/nezajímavý. Pokud daný vzor najde, tak komunikaci vyhodnotí jako zájmovou a vykoná nastavené pravidlo. Je potřeba brát v úvahu, že velké množství spojení výrazně zvyšuje využití paměti a zátěž procesoru. Proto pravidlo opravdu promyslete a umístěte jej tak, aby se skrze něj nevyhodnocoval veškerý provoz. Jinak řečeno, postavte obyčejná pravidla před filtrem 7.vrstvy pro snížení dat předávaných právě 7.vrstvě. Dalším úskalím je pak nutnost procesu 7.vrstvy vidět do obou směrů (input i output), to znamená jej tvořit pod forward chain.
Vypadá to sice nejsložitěji, ale funguje to nejvíc podle očekávání a metoda mi přijde nejjistější, a hlavně tak nějak bezúdržbová. Vzor, jak blokovat Facebook nebo seznam.cz je takovýto:
/ip firewall layer7-protocol add name=Facebook regexp="^.+(facebook.com|fbcdn.net).*\$" add name=Seznam regexp="^.+(seznam.cz).*\$" /ip firewall filter add action=drop chain=forward layer7-protocol=Facebook add action=drop chain=forward layer7-protocol=Seznam
Jak správně napsat Regex příkaz
Pokud nejste v této oblasti zběhlý, tak bude postupovat jako já metodou pokus omyl. Za sebe mohu doporučit webové stránky l7-filter.sourceforge.net/protocols. Zde si najdete jaký, pattern byste chtěli blokovat, rozkliknete a na stránce co se otevře si zkopírujete potřebný text.
Zde ještě malá ukázka z uvedených stránek:
RDP: rdpdr.*cliprdr.*rdpsnd
xboxlive: ^\x58\x80........\xf3|^\x06\x58\x4e
Youtube: (GET \\/videoplayback\\\?|GET \\/crossdomain\\.xml)
>> Líbil se Vám článek? Ohodnoťte mě <<