Postup jak nastavit blokování reklam/sledování pomocí DNS Static v Mikrotiku se 128MB RAM
Na blokování škodlivých webových stránek a dalšího balastu z internetu je spousta nástrojů. Od doplňků do webového prohlížeče (adblock,ghostery,privacy badger) přes host soubor do systému až po speciální HW jako je pi-hole. Nějaké to blokování lze nastavit přímo i na routeru.
Což je skvělé v kombinaci mobilní telefon s OpenVPN. Mobil je přes VPN připojený na router a reklamy v aplikacích/hrách atd. jsou rovnou filtrovaný/blokovaný.
Nejjednodušší varianta pro import adres do DNS static
Použít můžeš už hotový script od Squidblacklist – tik-dns-ads.rsc – obsahuje cca 4.500 záznamů a v regulárním zápisu (obsahuje i nejznámější CZ domény) „edit 2020 – bohužel nás Benjamin na konci roku 2019 opustil a stránky jsou offline“ – import přes Winbox v terminálu:
/tool fetch address=www.squidblacklist.org host=www.squidblacklist.org mode=https src-path=/downloads/tik-dns-ads.rsc ; import tik-dns-ads.rsc
zkus nový postup na tomto webu: www.joshaven.com
Případně mnou mírně modifikovaný script (přidaný OpenDNS a blokace mobilních reklam) dns-block_ads.rsc
/tool fetch address=www.blog.d3d.org host=www.blog.d3d.org mode=http src-path=/dns-block_ads.rsc ; import dns-block_ads.rsc
A pokračuj s nastavením Firewallu a DNS.
Nebo použít starší postup – script na přidání vlastního listu blokovaných adres do DNS Static
– stránka původního sctiptu – z kterého jsem vycházel. Pokud je v souboru více jak 10.000 adres, router se 128MB RAM padá pro nedostatek paměti. Tak pozor na to.
Přes Winbox vytvoř skript. System -> Script (+ add) zkopírovat a dát uložit (apply)
:log warning "DNS bude aktualizovano"; :delay 20; :log warning "Stahuju soubor adblock list"; :local hostScriptUrl "http://blog.d3d.org/ads_block_d3d_lite.txt"; :local scriptName "Adblock"; do { /tool fetch mode=http url=$hostScriptUrl dst-path=("./".$scriptName); :delay 20; :if ([:len [/file find name=$scriptName]] > 0) do={ :log warning "Mazu stary zaznamy adblock listu"; /system logging disable 0 /ip dns static remove [/ip dns static find address=127.0.0.1]; /system logging enable 0 :log warning "Importuju novy adblock list"; /system logging disable 0 /import file-name=$scriptName; /file remove $scriptName; /system logging enable 0 :log warning "Adblock list byl uspesne nahran"; } else={ :log warning "Adblock list nebyl stazen, script byl zastaven"; } } on-error={ :log warning "Adblock list se nepodarilo stáhnout"; };
Tak a mám hotový script na stahování listu s adresami, který budu blokovat.
Adresu v řádku
:local hostScriptUrl "http://blog.d3d.org/ads_block_d3d_lite.txt";
lze nahradit za jinou, odkazující na seznam blokovaných adres. Jen musí být upraven pro Mikrotik. Třeba:
https://www.micu.eu/adblock/adblock_lite.php - cca 3000 adres https://www.micu.eu/adblock/adblock.php - cca 10.000 adres
nebo si vygenerovat svůj vlastní soubor na: www.stopad.cgood.ru
V obrázku je výsledek. Spustím script (Run Script) ať se do DNS Static nahraje list adres, které budu blokovat. Průběh můžu kontrolovat v LOGu.
Co script vlastně udělá?
Nejprve se stáhne soubor s blokovanými adresami. Ten jsem si vytvořil dle vlastních představ a má cca 2.600 záznamu. DNS STATIC – BLOCK LITE.
Nahlédne do stávajícího nastavení DNS Static a všechny adresy začínající 127.0.0.1 nejprve smaže a následně ze souboru nahraje nový list adres.
Ve svém souboru blokuju: #Adobe / #Windows Telemetry / #SMART TV SAMSUNG / #ASUS & TrendMicro #Mobile-Ad-Hosts / #Pinterest & Cloudflare / #Badd-Boyz-Hosts / #Pi-hole Turris CZ
Nastavení firewallu a DNS
Takže mám plný DNS Static, ale musím přesměrovat port 53 UDP/TCP na lokální (gateway) – to provedu příkazy v terminálu:
/ip firewall nat add chain=dstnat dst-port=53 action=redirect to-ports=53 protocol=tcp /ip firewall nat add chain=dstnat dst-port=53 action=redirect to-ports=53 protocol=udp
nebo použiju jen
/ip firewall nat add chain=dstnat dst-port=53 action=redirect in-interface=bridge protocol=udp
A v nastavení IP > DNS > zapnu „Allow remote requests“ (jinak nepojede překládání web stránek) a přidám alternativní DNS server. Buď ten co mám od providera připojení nebo raději použiju OpenDNS (208.67.222.222 a 208.67.220.220) případně Google DNS (8.8.8.8 a 8.8.4.4 )
Tady POZOR !! Při zapnutým „Allow remote requests“
Je nutné přidat následující FW pravidla jinak mám otevřený DNS a zaděláno na velké problémy – zahazovat DNS dotazy z internetu – příkazy v terminálu:
/ip firewall filter add chain=input action=drop protocol=udp in-interface-list=WAN dst-port=53 log=no /ip firewall filter add chain=input action=drop protocol=tcp in-interface-list=WAN dst-port=53 log=no nebo jen /ip firewall raw add action=drop chain=prerouting dst-port=53 in-interface-list=WAN protocol=udp
A poslední krok pro rozfungování blokování je nutný nastavit adresu v IP > DHCP Server >Network > DNS Serveres – je to ip adresa „gateway“ routeru / 192.168.1.1)
zdroje:
DNS based adblock using Mikrotik RouterOS | turris.cz black-list-nejen-ceske-zdroje | Generování DNS ADBlock souboru | StevenBlack-hosts | Mikrotik-blokovani-zakazanych/nevhodnych DNS | https://filterlists.com/ | https://raw.githubusercontent.com/jawz101/MobileAdTrackers/master/hosts | http://www.squidblacklist.org/downloads.html + script pro Mikrotik | https://sebsauvage.net/wiki/doku.php?id=dns-blocklist-en