Blokovat reklamy (a malware) v OS nebo neblokovat? To je etická otázka, kterou si musí každý vyřešit sám. Pokud jste se rozhodli blokovat, tak čtěte dále.
Tento článek píšu proto, že poslední dobou mi psalo dost lidí, proč skončil projekt EditHosts, který blokoval reklamy a malware prostřednictvím souboru /etc/hosts v operačním sytému Linux. EditHosts jsem dělal před lety, abych se něco naučil a dost věcí jsem řešil špatně.
Proč je blokování skrze /etc/hosts horší než blokování přes DNS
EditHosts fungoval tak, že periodicky upravoval soubor /etc/hosts v operačním systému. Pro každou reklamní nebo malwarovou doménu to byl jeden řádek. Při počtu několik tisíc záznamů přestal být efektivní. Fungovalo to jako jednoduché DNS – doménu přeložilo na IP adresu. Ale když už tady máme dnes veřejný DNS server zdarma, který blokuje, co potřebujeme, EditHosts ztratil smysl. Mnohem efektivnější je totiž blokovat reklamy přímo na úrovni DNS, a ušetřit ty desítky tisíc řádků, které při každém načtení stránky musel počítač projít, aby zjistil, jestli tam není náhodou blokovaná doména.
Blokování skrze DNS
Blokování přes DNS je obdobné tomu, jak fungovat EditHosts, prohlížeč se zeptá počítače na IP adresu domény, kde je nějaký soubor. Nevyužívá se ale lokální seznam, ale DNS server, který je na velké počty záznamů optimalizovaný. Pokud je doména blokovaná, skript, který má reklamu načíst, se vůbec nedostane do počítače a reklama se nestáhne a nenačte. Ušetříte data, která by vám zabralo stahování skriptů i samotné reklamy, šetříte i výkon svého počítače, které by to zpracovávání a zobrazování reklamy zabralo. A samozřejmě zabráníte i případným zlým skriptům a reklamám vám propašovat něco nepěkného do počítače, nebo třeba těžit v prohlížeči kryptoměny pro cizí osobu. Ale při blokování skrze DNS prostě můžete vypustit ty tisíce řádků, které by počítač musel projít, pokud byste blokovali na úrovni lokálního souboru.
Pokud zablokujeme například doménu padead2.googlesyndication.com, skript z domény padead2.googlesyndication.com se nestáhne do počítače, protože při blokování skrz DNS dostane prohlížeč úmyslně chybnou informaci o IP adrese – dostane IP adresu 0.0.0.0, na kterou se dále neptá přes internet a spojení je odmítnuto. Prohlížeč při této odpovědi nezhavaruje, ale pokračuje dál ve vykreslení toho, co vykreslit může.
Ne všechny reklamy je možné ale odfiltrovat přes DNS, například pokud jsou ze stejné domény, jako je web, kde je reklama použita. Pro tento účel – blokování prvků na stránce je dobré použít jiný typ blokátoru – například osvědčený Ublock Origin. Ten ale funguje jen ve webovém prohlíčeči, což ne vždy můžete dělat, například těžko budete blokovat reklamu skrze doplněk v Google Chrome na Androidu. Na androidu můžeme blokovat reklamu rovněž prostřednictvím DNS. K tomu se ale dostaneme v nějakém pokračování. Teď vám ukážu něco, co je absolutně super. Blokování reklamy na jedno kliknutí pro všechna zařízení ve vaší síti. Tedy pokud jste šťastlivci, jako já, a máte router Turris.
Jak jednoduše blokovat reklamy prostřednictvím DNS díky routeru
Blokování reklam v routeru Turris
Blokování skrze DNS je velmi univerzální. Teď si ukážeme, jak jednoduše blokovat reklamy v jakémkoliv OS ve vaší síti, bez toho, aniž byste museli instalovat cokoliv do počítačů. Pro tuto ukázku použiji router Turris. Nejprve vytvoříme soubor /etc/resolver/dns_servers/88_adguard.conf. Například takto:
cat <<'EOF'>/etc/resolver/dns_servers/88_adguard.conf
name="88_adguard.conf"
description="adguard"
enable_tls="0"
port="53"
ipv4="94.140.14.14 94.140.15.15"
ipv6="2a10:50c0::ad1:ff 2a10:50c0::ad2:ff"
ca_file="/etc/ssl/certs/ca-certificates.crt"
hostname="dns.adguard.com"
EOF
Vytvořením souboru se nám aktivuje možnost v rozhraní foris, abychom mohli toto nové dns aktivovat.
Na téže stránce můžete rovnou DNS server adguardu otestovat.
Všechna zařízení, která máte v síti, pokud nepoužívají nějaké vlastní DNS servery – nemají například nastavené natvrdo 4 osmičky, tak se budou na IP adresy ptát vašeho routeru Turris.
Blokování reklam na O2 Smart Boxu
A když nemáte router Turris, můžete i tak často ve svých routerech používat vlastní DNS server. Stačí nastavit IP adresy DNS na dns.adguard.com.
Nyní se podíváme, jak se reklamy dají blokovat na O2 Smart Boxu. Přejděte do Konfigurační Centrum ve webovém prohlížeči:
Od teď by měly být reklamy blokovány na O2 SmartBoxu pro vnitřní síť.
Příště napíšu, jak blokovat reklamu na Linuxu prostřednictvím DNS a systemd-resolved. A někdy, až bude příhodná chvíle, tak si můžeme ukázat, jak blokovat reklamu na Androidu nebo v OpenVPN tunelu.
Mám rád počítače a moderní technologie, Linux, zejména Ubuntu, Debian a CentOS. Pracuji jako externí systémový inženýr (samozřejmě Linux) v dvoupísmenkové bance, kde mám pod palcem cca 6000 serverů. Privátně se starám o několik webových serverů, například zpravodajský investiční portál Centrum investic, který je můj, a také příležitostně o nějaký ten eshop.