Jump to content

Recommended Posts

Posted

Это решение позволяет заблокировать баннеры, счётчики на веб-страницах, рекламу в 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
Posted
Поместите в файл /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-й порт свободен.

Posted (edited)

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

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
Posted
Не хочет устанавливаться.
Поднимите глаза на название темы, слово в квадратных скобках.
Есть команда opkg dns-override. Она гасит внутренний прокси (он начинает работать в RPC-режиме), когда подключают /opt. И 53-й порт свободен.
Ага, спасибо за напоминание. В первом посте темы надо лишь подправить правило iptables для того, чтобы не терять все плюшки встроенной в прошивку DNS-службы. Необходимо заворачивать не весь трафик на 53 порт, а только исходящий от самого роутера. Только, вот, в iptables я мягко говоря, не силён.
Posted
Поднимите глаза на название темы, слово в квадратных скобках.

Да, у меня не [Entware], а keenopt. Сорри.

Posted

как проверить работу 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

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

Posted
как проверить работу 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
Posted
как проверить работу 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 и без проблем захожу с любого девайса из локальной сети.

Posted
как проверить работу 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. ;)

Posted

У меня схема работает, реклама блокируется.. Может вам стоит прописать 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

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

В логах веб-морды видно, что 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-кэша операционной системы и браузера.

Posted

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 запросы из локальной сети.

Posted

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

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

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

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

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

  • 1 month later...
Posted

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

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

Вот пример:

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

hjWejXKM.png

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

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

Вот пример:

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

hjWejXKM.png

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

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

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

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

  • Thanks 1
Posted

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

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

Posted

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

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

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

Posted

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

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

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

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

Posted

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

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

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

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

Posted

vlad

-RT6856 MIPS34Kc @700MHz гига2

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

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

Posted
vlad

-RT6856 MIPS34Kc @700MHz гига2

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

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

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

Posted
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 был отдан обратно.

  • 1 month later...
Posted

Поместите в файл /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) нет где его взять?

Posted

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

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

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 руками, то все работает

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...

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.