Blokace nevhodného obsahu ve vyhledávání pomocí nastavení DNS

3. 2. 2022
Doba čtení: 5 minut

Sdílet

 Autor: Depositphotos
Pokud jste správcem počítače nebo celé sítě, kterou používají děti, určitě jste přemýšleli, jak je nepustit k nevhodnému obsahu. Některé služby k tomu poskytují jednoduché nástroje.

Modelovým příkladem budiž síť na základní škole, kde je dnes předmět informatika samozřejmostí. Často mají děti k dispozici také místní Wi-Fi síť, ke které mohou připojit vlastní zařízení. Vedení školy má samozřejmě jasný požadavek: blokovat na síti nevhodný obsah, aby se k němu děti nedostaly. Omylem, ale ani záměrně.

Různých seznamů nevhodných webů je na internetu spousta, stačí si některý vybrat, případně jich sloučit víc dohromady. Blokace pak může probíhat na úrovni DNS či ve firewallu, řada škol platí za služby a nástroje, které dokáží znepřístupnit část internetu jedním kliknutím.

Vyhledávání ve službách

Pořád tu ale zůstává velká mezera v podobě vyhledávání u jednotlivých služeb. Například vyhledávač Google dovoluje mezi obrázky vyhledat i velmi explicitní obsah. Na tohle je blokace na síti samozřejmě krátká, protože vyhledání a zobrazení výsledků probíhá uvnitř služby. Museli bychom tedy provádět nějakou náročnou inspekci šifrovaného provozu, abychom zjistili, co je vyhledáváno a kdy to blokovat.

Tyto služby ale často poskytují takzvané bezpečné vyhledávání (safe search), což je funkce, která ve výsledcích hledání zablokuje nevhodný obsah. Můžete ji ručně aktivovat tak, že nejprve vyhledáte nějaký problematický výraz a po zobrazení výsledků na konec URL přidáte volbu &safe=active  a načtete stránku znovu.


Autor: Petr Krčmář, Root.cz

Google sám tuhle funkci popisuje tak, že pomáhá skrýt výsledky s explicitním obsahem, jako jsou násilné snímky. Přiznává, že to není stoprocentní řešení, ale funguje to velmi dobře a většina problematických výsledků se tímto způsobem skutečně skryje.

Samozřejmě to funguje jen ve zmíněných výsledcích vyhledávání a pokud by se podařilo někomu proklikat na nezablokovaný web, tento filtr už samozřejmě dál obsah nemění. Přesto je to velmi užitečné a účinné řešení.

Bezpečné vyhledávání lze vynutit několika způsoby: v jednotlivých prohlížečích na spravovaných zařízeních, u konkrétních účtů pod naší organizací nebo na úrovni sítě pomocí změny odpovědí z DNS. Podíváme se na poslední jmenovanou možnost, která je rychlá a univerzální.

Bezpečné hledání úpravou DNS

Různé vyhledávače poskytují speciální IP adresu, na které uživatelům bezpečné vyhledávání aktivují. Tuto adresu nabízejí prostřednictvím doménového jména, například Google má v DNS jméno forcesafesearch.google.com. Principem naší úpravy je tedy přesměrovat uživatele na tuto doménu či přímo IP adresu, místo běžného vyhledávání.

Nejjednodušší variantou je úprava souboru /etc/hosts v konkrétním počítači. Potřebujeme k tomu zjistit IP adresu, kterou nám výše uvedená doména vrací a tu začít vracet pro národní domény používané Googlem. Celé už to pro nás naštěstí někdo zkombinoval, takže stačí tenhle seznam vzít a vložit ho do  hosts.

Tohle řešení je sice jednoduché a pro jeden konkrétní počítač v dětském pokoji to bude fungovat, ale neškáluje to. Pokud chcete rozšířit chování na celou síť, budete potřebovat vlastní DNS resolver. Je pravděpodobné, že něco takového na síti provozujete, takže stačí jen vytvořit místní zónu pro vybrané domény a přidat do ní vlastní záznamy.

Řešení s DNS resolverem Bind

Pokud používáte populární Bind, budete v jeho konfiguraci muset přidat vlastní RPZ. To provedete připsáním následující konfigurace do  /etc/bind/named.conf.local.

zone "safesearch.rpz" {
        type master;
        file "/etc/bind/db.safesearch.rpz";
        allow-query { none; };
};

Aby zóna fungovala jako RPZ, je potřeba ji aktivovat v  /etc/bind/named.conf.options. Dovnitř sekce options je třeba připsat:

response-policy {
    zone "safesearch.rpz";
};

Poté už můžeme vytvořit vlastní zónový soubor pro vybrané domény. Rovnou stejnou metodu použijeme nejen pro Google, ale také pro YouTube, Bing a DuckDuckGo. Princip je stejný, potřebujeme jen vytvořit záznam typu CNAME a nasměrovat ho na správnou doménu. Vytvoříme tedy nový soubor /etc/bind/db.safesearch.rpz a do něj zapíšeme něco takového:

$ORIGIN safesearch.rpz.
$TTL 1H
@       IN       SOA       localhost. root.localhost. (
                           7546546 ;
                           1H ;
                           15m ;
                           30d ;
                           2h ;
                           )
NS localhost.

; force Google SafeSerach
google.com                IN CNAME forcesafesearch.google.com.
www.google.com            IN CNAME forcesafesearch.google.com.
google.cz                 IN CNAME forcesafesearch.google.com.
www.google.cz             IN CNAME forcesafesearch.google.com.
; force youtube safe search
www.youtube.com           IN CNAME restrict.youtube.com.
m.youtube.com             IN CNAME restrict.youtube.com.
youtubei.googleapis.com   IN CNAME restrict.youtube.com.
youtube.googleapis.com    IN CNAME restrict.youtube.com.
www.youtube-nocookie.com  IN CNAME restrict.youtube.com.
; force bing strict
www.bing.com              IN CNAME strict.bing.com.
; force duckduckgo safe search
duckduckgo.com            IN CNAME safe.duckduckgo.com.

Nyní je potřeba Bind restartovat a ověřit funkčnost:

# systemctl restart bind9
# dig cname www.google.cz
…
;; ANSWER SECTION:
www.google.com.     3600    IN  CNAME   forcesafesearch.google.com.

Řešení s DNS resolverem Unbound

Populární je také DNS resolver Unbound, který na vlastní síti nasadíte velmi rychle. Umí taky jednoduše provozovat vlastní místní zóny, takže konfigurace téhož je u něj hračkou. Stačí vytvořit nový konfigurační soubor /etc/unbound/unbound.conf.d/safesearch.conf a do něj zapsat:

server:
local-zone: "www.google.com" redirect
local-data: "www.google.com CNAME forcesafesearch.google.com"
local-zone: "www.google.cz" redirect
local-data: "www.google.cz CNAME forcesafesearch.google.com"
local-zone: "www.youtube.com" redirect
local-data: "www.youtube.com CNAME restrict.youtube.com"
local-zone: "www.bing.com" redirect
local-data: "www.bing.com CNAME strict.bing.com"
local-zone: "duckduckgo.com" redirect
local-data: "duckduckgo.com CNAME safe.duckduckgo.com"

Poté musíme Unbound restartovat a vše můžeme vyzkoušet v praxi.

# systemctl reload unbound

Zkouška u uživatele

Kromě toho, že můžeme vyhledat nějaký explicitní výraz a ověřit tím funkčnost, můžeme v Google klepnout vpravo nahoře na ozubené kolečko Nastavení a v pravém panelu najít položku Filtr explicitních výsledků. Za běžných okolností je vedle ní přepínač, kterým můžeme funkci zapnout.

ict ve školství 24


Autor: Petr Krčmář, Root.cz

Pokud jsme ale správně zavedli záznam do místního DNS resolveru, zmíněný přepínač zmizí a místo něj se objeví zámeček. Bezpečné vyhledávání je nyní zapnuté a uživatel si ho nemůže vypnout. Informuje ho o tom také stránka s dalšími informacemi.


Autor: Petr Krčmář, Root.cz

Odkazy

(Tip poslal Petr Macek.)

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.