Mikrotik – nastavení DNS static – blokování reklam a špehování

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 i přímo na routeru. Což pro mé potřeby, mobilní telefon + OpenVPN, je skvělá volba. 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 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) – 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

A pokračuj s nastavením Firewallu a DNS.

 

Nebo vytvoření scriptu 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řit skript. System -> Script (+ add) zkopírovat a 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";
};

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