Jak blokujeme nepovolené hazardní weby

Ačkoli kontroverzní zákon č. 186/2016 Sb o hazardních hrách, který v § 82 nařizuje poskytovatelům připojení k internetu zamezení v přístupu ke stránkám s nepovolenými hazardními hrami, platí už od prvního ledna letošního roku, teprve 26. července byl zveřejněn první seznam nepovolených her. Nyní běží 15denní lhůta, ve které by měly všechny povinné subjekty zahájit blokování internetové stránky 1xbet.com. V tomto příspěvku si představíme způsob, jakým zákonné blokování implementujeme v e-infrastruktuře CESNET.

Blokujeme pomocí DNS

V souladu s doporučením metodického pokynu blokujeme doménová jména na veřejných rekurzivních resolverech. Tato technika je nenáročná na prostředky a způsobuje jen minimální vedlejší škody.

Standardním řešením pro blokování určitých doménových jmen je technologie RPZ (Response Policy Zone). Jedná se o speciální zónový soubor, který namísto obyčejných DNS dat obsahuje instrukce k blokování, případně pozměňování odpovědí DNS serveru. Sdružení CESNET pro tyto účely zřídilo veřejně dostupnou zónu rpz.cesnet.cz na serveru nsa.cesnet.cz. Obsahuje jeden testovací a jeden ostrý záznam, včetně několika metadat:

blokovane.internetovehazardnihry.cz   IN CNAME *.poker.cesnet.cz.
1xbet.com             IN CNAME *.poker.cesnet.cz.
_info.1xbet.com       IN TXT "pub: 26.7.2017"
_sha256sum.1xbet.com  IN TXT ( "c44ff24b5148803d223d2d9495863"
                               "993c0cfe0f37775583f2ff953e0427e528b"
                               "Zverejnovane-udaje-ze-Seznamu-"
                               "nepovolenych-internetovych-her_v1.pdf" )

Takto nastavená RPZ zóna provádí naprosto minimální zásahy do DNS provozu. Pouze přesná shoda doménového jména vyvolá změnu IP adresy v odpovědi. To je výhoda například v porovnání s blokováním pomocí prázdných DNS zón, kdy by došlo k zablokování nejen určeného doménového jména, ale i všech případných subdomén. Blokování subdomén přitom ani zákon, ani metodický pokyn nepřikazují.

Informační stránka

Blokovaná doménová jména nahrazujeme v DNS odpovědích adresou serveru poker.cesnet.cz. Jedná se o samostatný server se základní instalací webserveru NGINX, který na jakýkoli dotaz vrátí informační stránku o blokování.

V souladu s RFC 7725 vrací stránka speciální stavový kód HTTP 451 – Nedostupné z právních důvodů, který byl přesně pro tento účel standardizován. Server také vkládá HTTP hlavičku, identifikující entitu, která provedla blokaci. Relevantní část konfigurace webserveru vypadá takto:

error_page 404 403 451 =451 /451.html;
add_header Link "<https://www.cesnet.cz/>; rel=\"blocked-by\"" always;

Použití v DNS serveru BIND

Vlastní nasazení blokace v DNS resolveru BIND je otázkou jen několika málo konfiguračních voleb. Nejprve je nutné nakonfigurovat RPZ zónu. V tomto případě jako sekundární, přenášenou zónovým přenosem z master serveru:

zone "rpz.cesnet.cz" {
    type slave;
    masters {
        2001:718:1:101::144:228;
        195.113.144.228;
    };
    file "rpz.cesnet.cz";
};

Pak už jen stačí přidat definici RPZ zóny do globální konfigurace:

options {
    …
    response-policy {
        zone "rpz.cesnet.cz";
    };
};

Použití v Unbound

DNS resolver Unbound bohužel dosud RPZ zóny nepodporuje. Na druhou stranu, zablokování konkrétního doménového jména je možné dosáhnout velmi triviálně v konfiguraci. Je však nutné nahrazovat přímo IP adresy (tedy A/AAAA záznamy). Použití aliasu (CNAME) možné není:

server:
    local-data: "1xbet.com IN A 78.128.216.33"
    local-data: "1xbet.com IN AAAA 2001:718:ff05:202::33"

Abychom se vyhnuli spravování dvojí databáze, používáme jednoduchý skript, který stáhne RPZ zónu a následně ji převede do podoby konfiguračního souboru. Takový skript spouštíme cronem jednou denně, což je pro účely blokování stránek uvedených na seznamu Ministerstva financí dostatečné.

Seznam blokovaných stránek spravujeme ručně

Ačkoli Ministerstvo financí tvrdí, že seznam nepovolených internetových her je vydáván ve strojově zpracovatelném formátu, nepodařilo se nám dosud přijít na způsob, jak ministerstvem zveřejněné seznamy bezpečně transformovat do RPZ zóny. Používáme tedy ruční postup s podporou utility rss2email. Bohužel, ani na RSS kanál ministerstva se nelze zcela spolehnout, jak ukázala první zkušenost. Během prvního dne se na webových stránkách ministerstva vystřídaly alespoň tři různé verze příslušného PDF dokumentu, přičemž jen ta poslední je opatřena skutečně validním elektronickým podpisem. V RSS kanálu se přitom tyto změny nijak neprojevily.

Řešení je k dispozici

Jak již bylo uvedeno, příslušná zóna rpz.cesnet.cz je na serveru nsa.cesnet.cz veřejně dostupná a je možné do ní nahlédnout například tímto příkazem:

$ dig rpz.cesnet.cz axfr @nsa.cesnet.cz

Každý tedy může ověřit, která doménová jména jsou rekurzivními resolvery filtrována, případně zónu použít jako zdroj dat pro své vlastní DNS servery.

 

Ondřej Caletka