Blokování reklam v operačních systémech I

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.

Ukázka, jak se zeptat linuxovým programem dig na IPv4 adresu domény:

dig pagead2.googlesyndication.com
Ukázka, jak se zeptat linuxovým programem dig na IPv4 adresu domény.

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.

Vytvořením souboru se nám aktivuje možnost v rozhraní foris, abychom mohli toto nové dns aktivovat.

V kolonce DNS přeposílání vybereme adguard, který tam přibyl.
V kolonce DNS přeposílání vybereme adguard, který tam přibyl.

Na téže stránce můžete rovnou DNS server adguardu otestovat.

Test připojení s DNS serverem adguardu byl úspěšný
Test připojení s DNS serverem adguardu byl úspěšný

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.

Kontrola IPv4 a IPv6 dns záznamů programem dig a kontrola reverzních záznamů v jednom:

dig aaaa dns.adguard.com +short|while read line; do printf "$line"'\t'; dig -x $line +short; done
2a10:50c0::ad1:ff	dns.adguard.com.
2a10:50c0::ad2:ff	dns.adguard.com.
Kontrola IPv4 a IPv6 dns záznamů programem dig a kontrola reverzních záznamů v jednom

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:

Vstup do webového rozhraní O2 Smart Boxu

http://10.0.1.138/configurator/advConfigNetworkDns.html
Vstup do webového rozhraní O2 Smart Boxu
V konfiguračním centru vybereme rozšířené > nastavení sítě > DNS a zadáme IP adresy adguardu do sloupce Static DNS Servers a dáme enable.
V konfiguračním centru vybereme rozšířené > nastavení sítě > DNS a zadáme IP adresy adguardu do sloupce Static DNS Servers a dáme enable.

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.

Did you like this?
Tip Jiří Meitner, ml. with Cryptocurrency

Donate Bitcoin to Jiří Meitner, ml.

Scan to Donate Bitcoin to Jiří Meitner, ml.
Scan the QR code or copy the address below into your wallet to send some bitcoin:

Donate Bitcoin Cash to Jiří Meitner, ml.

Scan to Donate Bitcoin Cash to Jiří Meitner, ml.
Scan the QR code or copy the address below into your wallet to send bitcoin:

Donate Ethereum to Jiří Meitner, ml.

Scan to Donate Ethereum to Jiří Meitner, ml.
Scan the QR code or copy the address below into your wallet to send some Ether:

Donate Litecoin to Jiří Meitner, ml.

Scan to Donate Litecoin to Jiří Meitner, ml.
Scan the QR code or copy the address below into your wallet to send some Litecoin:

Donate Monero to Jiří Meitner, ml.

Scan to Donate Monero to Jiří Meitner, ml.
Scan the QR code or copy the address below into your wallet to send some Monero:

Donate ZCash to Jiří Meitner, ml.

Scan to Donate ZCash to Jiří Meitner, ml.
Scan the QR code or copy the address below into your wallet to send some ZCash:

Edithosts, projekt pro blokování reklam, zvýšení bezpečnosti a ochranu soukromí

Děláme vše pro svoji bezpečnost? Využíváme naplno a efektivně rychlost Internetu?

EditHosts banner

V dnešním světě hackerů, všudypřítomné reklamy a permanentního sledování je dobré se zamyslet nad tím, zdali děláme pro svou bezpečnost maximum a zdali bychom mohli mít rychlejší internet a zdali bychom ho dokázali využívat produktivněji, pokud bychom odstranili většinu reklam.

Pokud dospějete k názoru, že byste chtěli mít bezpečný internet s blokovanými malware doménami, omezit otravné reklamy a zrychlit internet, vidět čistější a přehlednější webové stránky, tak můžete zvážit projekt Edithosts. Edithosts odstraní reklamy, zablokuje domény, které šíří malware, a zablokuje sledovací weby.
Je určen výhradně pro operační systém Linux. Používáte jiný operační systém? Nevadí, pokud budete mít zájem, Linux vám mohu nainstalovat, a to včetně projektu Edithosts, více ZDE.

Edithosts je editor souboru /etc/hosts, periodicky stahuje a aktualizuje černou listinu nebezpečných, reklamních a sledovacích webů. Program se umí sám aktualizovat.
Ve výchozím nastavení nemusí uživatel nic měnit nebo nastavovat. Program stačí nainstalovat.

Program je ideální možností pro blokování otravných reklam, sledování a zvýšení bezpečnosti již na úrovni operačního systému.

Na rozdíl od doplňků pro prohlížeče pracuje již na úrovni operačního systému a nezpomaluje prohlížeče tak jako doplňky typu Adblock Plus. Edithosts funguje nezávisle na prohlížeči.
Program jednoduše nainstalujete a již se nemusíte o nic starat. Funguje bezúdržbově a automaticky.

Program umí i dočasnou deaktivaci blokování, po nastavené době v konfiguračním souboru se blokování opět zapne.

Popis jednotlivých částí programu pro zájemce je ZDE.

Cena Edithosts

Pokud Linux již máte, můžete si Edithosts nainstalovat sami + přispět pár kaček autorovi (mě) na jeho vývoj, a to darem přes PayPal (nemusíte tam mít účet, lze platit i platební kartou), převodem na účet u české Fio Banky nebo mBank. 

Fio banka: 2100068351/2010
mBank: 670100-2201542227/6210

Postup pro instalaci

  • ujistěte se, že máte operační systém Linux
  • máte nainstalovaný git
  • jste root nebo máte právo sudo
  • v terminálu zadejte níže uvedené

cd /tmp
git clone https://github.com/jiri001meitner/edithosts.git
edithosts/install.sh


Web projektu Edithosts


Did you like this?
Tip Jiří Meitner, ml. with Cryptocurrency

Donate Bitcoin to Jiří Meitner, ml.

Scan to Donate Bitcoin to Jiří Meitner, ml.
Scan the QR code or copy the address below into your wallet to send some bitcoin:

Donate Bitcoin Cash to Jiří Meitner, ml.

Scan to Donate Bitcoin Cash to Jiří Meitner, ml.
Scan the QR code or copy the address below into your wallet to send bitcoin:

Donate Ethereum to Jiří Meitner, ml.

Scan to Donate Ethereum to Jiří Meitner, ml.
Scan the QR code or copy the address below into your wallet to send some Ether:

Donate Litecoin to Jiří Meitner, ml.

Scan to Donate Litecoin to Jiří Meitner, ml.
Scan the QR code or copy the address below into your wallet to send some Litecoin:

Donate Monero to Jiří Meitner, ml.

Scan to Donate Monero to Jiří Meitner, ml.
Scan the QR code or copy the address below into your wallet to send some Monero:

Donate ZCash to Jiří Meitner, ml.

Scan to Donate ZCash to Jiří Meitner, ml.
Scan the QR code or copy the address below into your wallet to send some ZCash: