Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

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

 

  • Ответов 148
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано
Поместите в файл /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-й порт свободен.

Опубликовано (изменено)

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

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 делал. Или я ставлю не на ту систему?

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

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

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

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

Опубликовано

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

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

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

Опубликовано

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

Опубликовано

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

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

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

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

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

  • 1 месяц спустя...
Опубликовано

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

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

Вот пример:

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

hjWejXKM.png

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

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

Вот пример:

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

hjWejXKM.png

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

Опубликовано
Это конечно что-то host <- http://winhelp2002.mvps.org/hosts.txt

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

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

Опубликовано

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

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

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

Опубликовано

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

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

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

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

Опубликовано

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

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

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

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

Опубликовано
vlad

-RT6856 MIPS34Kc @700MHz гига2

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

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

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

Опубликовано
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 месяц спустя...
Опубликовано

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

Опубликовано

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

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

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.