Jump to content

Блокировка рекламы на роутере


Recommended Posts

Это решение позволяет заблокировать баннеры, счётчики на веб-страницах, рекламу в Android-приложениях с помощью hosts-файла.

Было:

4d262a31311et.jpg

Стало:

5643795dd011t.jpg

Установите необходимые пакеты:

opkg install dnsmasq-full iptables ndmq

Поместите в файл /opt/etc/ndm/netfilter.d/010-intercept-dns.sh следующее содержимое:

#!/bin/sh

[ "$table" != "nat" ] && exit 0

lan_ip=$(ndmq -p 'show interface Bridge0' -P address)

iptables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination $lan_ip:65053
iptables -t nat -I PREROUTING -p tcp -m tcp --dport 53 -j DNAT --to-destination $lan_ip:65053

и сделайте скрипт исполняемым:

chmod +x /opt/etc/ndm/netfilter.d/010-intercept-dns.sh

Отредактируйте файл /opt/etc/dnsmasq.conf, добавив в него строки:

no-resolv
server=77.88.8.88#1253
server=77.88.8.2#1253
port=65053

Скачайте подходящий чёрный список с рекламными хостами и поместите его в файл /opt/etc/hosts. В примере ниже указан один из самых популярных:

wget -O /opt/etc/hosts http://winhelp2002.mvps.org/hosts.txt

Всё! Перегрузите роутер для того, чтобы настройки вступили в силу.

 

0. Убедитесь, что на ПК не прописаны вручную в св-вах сетевого соединения сторонние DNS-серверы. Если вы в сетевых настройках ПК ничего не меняли, то можете это не проверять.

1. Очистите DNS-кеш операционной системы (для Windows - ipconfig /flushdns)

2. Очистите DNS-кеш браузера, достаточно его закрыть и открыть по новой.

На скриншотах выше погода с Gismeteo, если решение работает, то рекламные баннеры будут отсутствовать.

 

 

С помощью правила iptables любые DNS-запросы от роутера (и его клиентов) «заворачиваются» на dnsmasq. Последний разрешает DNS-имена, при этом используя hosts-файл /opt/etc/hosts с чёрным списком доменов. С настройками по умолчанию для разрешения остальных DNS-имён будет использоваться Яндекс.DNS вместо провайдерских DNS.

 

 

1. Теряем возможности встроенного в прошивку DNS-сервера/прокси. В частности, возможность кеширования DNS-запросов на роутере и возможность обращения к ресурсом локалки по DNS-именам. Если нынче DNS-запросы и без того замечтательно кешируются операционкой ПК и браузером, то разрешение DNS-имён в локалке может стать проблемой. Скажем, придётся обращаться к NAS'у в локалке не по имени \\MyNas\, а по IP: \\192.168.1.4\.

2. В связи с тем, что мы отказываемся от провайдерских DNS-серверов, мы теряем возможность разрешения DNS-имён для локальных ресурсов провайдера. Если для установления L2TP/PPTP-соединения сервер задан DNS-именем, например, l2tp.beeline.ru, то лучше вписать в веб-интерфейс кинетика адрес сервера в виде ip.

Пункт «Что теряем» можно будет исключить, если поправить правила iptables так, чтобы заворачивались только DNS-запросы от самого роутера.

 

  • Thanks 1
Link to comment
Share on other sites

Поместите в файл /opt/etc/ndm/netfilter.d/010-intercept-dns.sh следующее содержимое:

#!/bin/sh

[ "$table" != "nat" ] && exit 0

lan_ip=$(ndmq -p 'show interface Bridge0' -P address)

iptables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination $lan_ip:65053
iptables -t nat -I PREROUTING -p tcp -m tcp --dport 53 -j DNAT --to-destination $lan_ip:65053

...

Есть команда opkg dns-override. Она гасит внутренний прокси (он начинает работать в RPC-режиме), когда подключают /opt. И 53-й порт свободен.

Link to comment
Share on other sites

Установите необходимые пакеты:

opkg install dnsmasq-full iptables ndmq

/opt/root # opkg install dnsmasq-full iptables ndmq
Unknown package 'dnsmasq-full'.
Package iptables (1.4.12-2) installed in root is up to date.
Package ndmq (2.06.A.6.0-12) installed in root is up to date.
Collected errors:
* opkg_install_cmd: Cannot install package dnsmasq-full.
/opt/root #

Не хочет устанавливаться.

opkg update, opkg upgrade делал. Или я ставлю не на ту систему?

Edited by Guest
Link to comment
Share on other sites

Не хочет устанавливаться.
Поднимите глаза на название темы, слово в квадратных скобках.
Есть команда opkg dns-override. Она гасит внутренний прокси (он начинает работать в RPC-режиме), когда подключают /opt. И 53-й порт свободен.
Ага, спасибо за напоминание. В первом посте темы надо лишь подправить правило iptables для того, чтобы не терять все плюшки встроенной в прошивку DNS-службы. Необходимо заворачивать не весь трафик на 53 порт, а только исходящий от самого роутера. Только, вот, в iptables я мягко говоря, не силён.
Link to comment
Share on other sites

как проверить работу iptables?

iptables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.0.1:65053

не вижу этой цепочки в таблице по команде iptables --list|grep 65053

Ну и что-то не завелось...

Link to comment
Share on other sites

как проверить работу iptables?

iptables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.0.1:65053

не вижу этой цепочки в таблице по команде iptables --list|grep 65053

Ну и что-то не завелось...

кэп подсказывает, надо iptables -t nat --list
Link to comment
Share on other sites

как проверить работу iptables?

iptables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.0.1:65053

не вижу этой цепочки в таблице по команде iptables --list|grep 65053

Ну и что-то не завелось...

кэп подсказывает, надо iptables -t nat --list

:facepalm: спасибо

Тогда не в iptables дело. Но не пойму все равно, где затык.

Мой dnsmasq.conf:

no-resolv

server=8.8.8.8#1253

server=8.8.4.4#1253

port=65053

addn-hosts=/opt/etc/hosts

log-queries

ЗЫ. А где этот лог посмотреть?

Беру любой хост из /opt/etc/hosts и без проблем захожу с любого девайса из локальной сети.

Link to comment
Share on other sites

как проверить работу iptables?

iptables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.0.1:65053

не вижу этой цепочки в таблице по команде iptables --list|grep 65053

Ну и что-то не завелось...

кэп подсказывает, надо iptables -t nat --list

:facepalm: спасибо

Тогда не в iptables дело. Но не пойму все равно, где затык.

Мой dnsmasq.conf:

no-resolv

server=8.8.8.8#1253

server=8.8.4.4#1253

port=65053

addn-hosts=/opt/etc/hosts

log-queries

ЗЫ. А где этот лог посмотреть?

Беру любой хост из /opt/etc/hosts и без проблем захожу с любого девайса из локальной сети.

У меня схема работает, реклама блокируется.. Может вам стоит прописать dns от яндекс.? Реклама блокируется даже если нахожусь в другой сети, например на работе,при условии если включен openvnp. ;)

Link to comment
Share on other sites

У меня схема работает, реклама блокируется.. Может вам стоит прописать dns от яндекс.? Реклама блокируется даже если нахожусь в другой сети, например на работе,при условии если включен openvnp. ;)

Поменял, но в этом не было особо смысла. Где-то проблема в другом месте. :?:

В логах веб-морды видно, что dnsmasq читает список хостов

dnsmasq[512] read /opt/etc/hosts - 13549 addresses

, но к нему не приходят запросы.

Пробовал повесить на стандартный 53-й порт, но естественно не запустился .

dnsmasq[364] failed to create listening socket for port 53: Address already in use

команда opkg dns-override не проходит

/opt/etc/ndm/netfilter.d # opkg dns-override
opkg: unknown sub-command dns-override

Link to comment
Share on other sites

Где-то проблема в другом месте. :?:

В логах веб-морды видно, что dnsmasq читает список хостов

dnsmasq[512] read /opt/etc/hosts - 13549 addresses

, но к нему не приходят запросы.

Пробовал повесить на стандартный 53-й порт, но естественно не запустился .

Здесь участвуют всего два звена: правило iptables и dnsmasq.

Проверка iptables

Проверить то, что iptables-правило сработало можно с помощью:

iptables-save | grep 65053

Если правила нет, то можете запустить его руками и посмотреть где ошибка:

table=nat /opt/etc/ndm/netfilter.d/010-intercept-dns.sh

Проверка работы dnsmasq

Проверить то, что dnsmasq запущен можно с помощью:

pidof dnsmasq

Если PID процесса не выводится, значит, процесса нет. Надо посмотреть в системном журнале на что жалуется dnsmasq при старте:

/opt/etc/init.d/S56dnsmasq start

Проверьте также, что в настройках кинетика отключены DNS-службы Yandex.DNS/SkyDNS.

Клиенты кинетика должны получать DNS автоматически.

Настройки вступят в силу после сброса DNS-кэша операционной системы и браузера.

Link to comment
Share on other sites

iptables - OK

/opt/etc # iptables-save | grep 65053
-A PREROUTING -p tcp -m tcp --dport 53 -j DNAT --to-destination 192.168.0.1:65053
-A PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.0.1:65053

dnsmasq - OK

PID есть и netstat говорит, что 65053 слушает.

# netstat -ltnp|grep 65053
tcp        0      0 0.0.0.0:65053           0.0.0.0:*               LISTEN      512/dnsmasq
tcp        0      0 :::65053                :::*                    LISTEN      512/dnsmasq

В Журнале сообщений системы ошибок нет.

Никаких SkyDNS и подобных не активировано.

Для локальной сети по DHCP выдается DNS 192.168.0.1, кеш сбрасывается каждый раз и для теста пробую новые хосты из скачанного файла.

$ nslookup www.winaproduct.com
Server:		192.168.0.1
Address:	192.168.0.1#53

Non-authoritative answer:
www.winaproduct.com	canonical name = winaproduct.com.
Name:	winaproduct.com
Address: 72.37.217.251

Единственное, что в настройках роутера указаны DNS провайдера и гугля:

gmvvG0YSxZz55m_800.jpgi.gif

НО! Если ставлю 192.168.0.1, то DNS запросы перестают ходить и на Зухеле и в локальной сети. Nslookup - can't resolve

А в логах Зухеля валится:

Feb 20 13:04:44ndnproxy Proxy loop detected: 192.168.0.1 <-> 192.168.0.1, request dropped.
Feb 20 13:04:44ndnproxy DNS server 192.168.0.1 inactivated.

Тогда могу запустить dnsmasq на стандартном 53-м порту, но все равно не работает.

Осталась идея запустить захват пакетов на Зухеле и посмотреть куда идут DNS запросы из локальной сети.

Link to comment
Share on other sites

Привет форумчане!Помогите решить проблему.Имеется zyxel Keenetic 2 прошивка v2.05(AAFG.8)C2 с установленной entware-ng. Установил Блокировку рекламы,все работает хорошо на айфоне,реклама блокируется,интернет работает,но на ноутбуке пропал интернет.Выдает ошибку DNS_PROBE_FINISHED_BAD_CONFIG,подскажите как решить эту проблему??Если я включаю гостевую сеть,то через нее интернет на ноутбуке появляется,но по проводу и через защищенную сеть вай фай этого не происходит.Пробовал прописать dns на ноутбуке,не помогло,пробовал прописать dns на роутере так же не помогло...

Link to comment
Share on other sites

Привет форумчане!Помогите решить проблему.Имеется zyxel Keenetic 2 прошивка v2.05(AAFG.8)C2 с установленной entware-ng. Установил Блокировку рекламы,все работает хорошо на айфоне,реклама блокируется,интернет работает,но на ноутбуке пропал интернет.Выдает ошибку DNS_PROBE_FINISHED_BAD_CONFIG,подскажите как решить эту проблему??Если я включаю гостевую сеть,то через нее интернет на ноутбуке появляется,но по проводу и через защищенную сеть вай фай этого не происходит.Пробовал прописать dns на ноутбуке,не помогло,пробовал прописать dns на роутере так же не помогло...

Я один с такой проблемой????

Link to comment
Share on other sites

Отсутствие ответа означает строго одно: отсутствие интереса к вопросу.

Придется пользоваться только гостевым wi-fi(

Link to comment
Share on other sites

  • 1 month later...

Подскажите, пожалуйста, при использовании описанного здесь метода блокировки рекламы, воспроизводится ли у вас видео на youtube, в котором предусмотрен показ рекламы (вставочки такие, которые желтой полоской на полосе с бегунком обозначены)?

У меня не воспроизводится. Ни в приложении под iOS, ни на сайте.

Вот пример:

Плеер просто висит с черным экраном в таком виде:

hjWejXKM.png

Link to comment
Share on other sites

Подскажите, пожалуйста, при использовании описанного здесь метода блокировки рекламы, воспроизводится ли у вас видео на youtube, в котором предусмотрен показ рекламы (вставочки такие, которые желтой полоской на полосе с бегунком обозначены)?

У меня не воспроизводится. Ни в приложении под iOS, ни на сайте.

Вот пример:

Плеер просто висит с черным экраном в таком виде:

hjWejXKM.png

У меня видео воспроизводится нормально,реклама блокируется как на тв так и на гаджетах.Никаких черных вставок не было ни разу.

Link to comment
Share on other sites

Это конечно что-то host <- http://winhelp2002.mvps.org/hosts.txt

более 15000 строчек типа 0.0.0.0 имя :facepalm: и наверное не предел для мощности роутера прогонять через себя.

Загрузка цп 3% оперативной памяти 25%. Спокойно тянет. Роутер giga 3

  • Thanks 1
Link to comment
Share on other sites

Загрузка цп 3% оперативной памяти 25%. Спокойно тянет. Роутер giga 3

Giga 3 это хорошо, как бы узнать например 7620.

Link to comment
Share on other sites

Загрузка цп 3% оперативной памяти 25%. Спокойно тянет. Роутер giga 3

Giga 3 это хорошо, как бы узнать например 7620.

До giga 3 стоял keenetic 2, нагрузка такая же была.!

Link to comment
Share on other sites

Загрузка цп 3% оперативной памяти 25%. Спокойно тянет. Роутер giga 3

Giga 3 это хорошо, как бы узнать например 7620.

До giga 3 стоял keenetic 2, нагрузка такая же была.!

На гига 2 все равно мощнее процессор чем девайсы на 7620.

Link to comment
Share on other sites

Giga 3 это хорошо, как бы узнать например 7620.

До giga 3 стоял keenetic 2, нагрузка такая же была.!

На гига 2 все равно мощнее процессор чем девайсы на 7620.

Почему мощнее?

Link to comment
Share on other sites

vlad

-RT6856 MIPS34Kc @700MHz гига2

-MT7620A MIPS24Kc @580MHz это о чем говорим ,

разница заметна?

Разница заметна. Даже такой проц легко потянет блокировку рекламы..

Link to comment
Share on other sites

vlad

-RT6856 MIPS34Kc @700MHz гига2

-MT7620A MIPS24Kc @580MHz это о чем говорим ,

разница заметна?

K-II - RT6856 MIPS34Kc @700MHz

Я заметил разницу при сравнении K-II и Viva (в течении нескольких дней обычной эксплуатации) на PPPoE (на канале 100) при подключенных/не подключенных wi-fi клиентах, так же проверил и на PPTP (на канале 50Мбит). Если на роутер смотреть как на черную коробку и не заглядывать в WEB не использовать USB то обычный пользователь может и не заметит разницы, страницы открываются и ладно.

В моем случае Viva был отдан обратно.

Link to comment
Share on other sites

  • 1 month later...

Поместите в файл /opt/etc/ndm/netfilter.d/010-intercept-dns.sh следующее содержимое:

#!/bin/sh

[ "$table" != "nat" ] && exit 0

lan_ip=$(ndmq -p 'show interface Bridge0' -P address)

iptables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination $lan_ip:65053
iptables -t nat -I PREROUTING -p tcp -m tcp --dport 53 -j DNAT --to-destination $lan_ip:65053

и сделайте скрипт исполняемым:

chmod +x /opt/etc/ndm/netfilter.d/010-intercept-dns.sh

если этого файла (010-intercept-dns.sh) нет где его взять?

Link to comment
Share on other sites

прошу подсказку

в логе вываливается

Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: exit code 127.
Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: exit: line 3: Illegal number: 0.
Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: exit code 2.

при запуске правила в консоли table=nat /opt/etc/ndm/netfilter.d/010-intercept-dns.sh

пишет что файл скрипта не найден

при этом если вбивать цепочки iptables руками, то все работает

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...