O aplikování AdBlocku již na routeru (namísto koncového přístroje) jsem již jednou psal - AdBlock již na routeru, šlo ale o rozšíření operačního systému OpenWRT. Tentokrát se jedná o blokování reklam na routeru od výrobce Mikrotik.
Existují dvě verze tohoto AdBlocku, které se liší počtem položek v blacklistu - blokovaný domén. Ta klasická verze vyžaduje router s alespoň 128 MB operační paměti (RAM). Druhá verze - Lite - si vystačí se zařízením které má alespoň 64 MB operační paměti.
Princip je velice jednoduchý, router Mikrotik funguje v lokální síti jako váš vlastní DNS server a reklamní weby nahrazuje místo skutečné adresy localhostem (IP adresou 127.0.0.1) čímž místo stažení reklamy nebo různých trackovacích prvků se nestáhne nic a dojde k rychlejšímu vykreslení webových stránek bez reklamních prvků.
Instalace
Po přihlášení do routeru přes aplikaci Winbox stačí spustit terminál (New Terminal v levém menu) a vložit následující kód:
/system script
add name=adblock policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\
log warning \"starting adblock update\";\r\
\n\
\n\
\n:delay 20;\r\
\n\
\n\
\n:log warning \"downloading adblock\";\r\
\n\
\n\
\n\
\n\
\n:local hostScriptUrl \"https://micu.eu/adblock/adblock.php\";\
\n\
\n\
\n\
\n\r\
\n:local scriptName \"adblock\";\
\n\
\n\
\n\
\n\r\
\ndo {\
\n\
\n /tool fetch mode=http url=\$hostScriptUrl dst-path=(\"./\".\$scriptName\
);\
\n\
\n\r\
\n:delay 20;\
\n\
\n\r\
\n:if ([:len [/file find name=\$scriptName]] > 0) do={\r\
\n\
\n\
\n :log warning \"removing old adblock list\";\
\n\
\n\r\
\n /ip dns static remove [/ip dns static find address=127.0.0.1];\
\n\
\n\r\
\n :log warning \"importing new adblock list\";\r\
\n\
\n\
\n /import file-name=\$scriptName;\r\
\n\
\n\
\n /file remove \$scriptName;\r\
\n\
\n\
\n :log warning \"adblock list imported\";\r\
\n\
\n\
\n } else={\
\n\
\n \r\
\n:log warning \"adblock list not downloaded, script stopped\";\r\
\n\
\n\
\n }\r\
\n\
\n\
\n} on-error={\
\n\
\n \r\
\n:log warning \"adblock list download FAILED\";\
\n\
\n\r\
\n};"
/system scheduler
add interval=1d name=adblock on-event=adblock policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
start-time=startup
add name=adblock_startup on-event=\
":delay 30;\r\
\n/system script run adblock" policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
start-time=startup
Pokud potřebujete Lite verzi, stačí nahradit URL adresu ve skriptu https://micu.eu/adblock/adblock.php za https://micu.eu/adblock/adblock_lite.php.
Uvedenými příkazy viz výše došlo k:
- vytvoření skriptu s názvem adblock (System => Scripts)
- vytvoření dvou spouštěčů, které zajišťují pravidelnou synchronizaci seznamu blokovaných stránek - 30s po startu routeru a jednou denně (System => Scheduler)
Nyní stačí již před DHCP server distribuovat jako DNS server IP adresu Mikrotiku čímž se začnou blokovat reklamy.
Komentáře