Jump to content
Александр Рыжов

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

140 posts in this topic

...

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

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

Команду

opkg dns-override

нужно указывать в файле конфигурации прошивки (там где включается opkg disk т.е. в cli telnet режима).

Share this post


Link to post
Share on other sites

Сидел мучился, оказалось чтобы у меня заработало надо было указывать адреса в виде

server=8.8.8.8

server=208.67.220.220

,а не как в примере

server=8.8.8.8#1253

server=208.67.220.220#1253

Кстати, а откуда автор взял #1253 ?

Share this post


Link to post
Share on other sites
В 2 июля 2016 г. в 21:22, pinkfloyd сказал:

Кстати, а откуда автор взял #1253 ?

Тоже интересует этот вопрос.

Без #1253 заработало.

Share this post


Link to post
Share on other sites

Скорее всего просто опечатался, и сработал злостный копипаст, т.к. параллельно писался топик/мануал о настройке SkyDNS, который как раз использует соответствующий порт ;)

Share this post


Link to post
Share on other sites

Всем добрый вечер!

server=8.8.8.8

server=208.67.220.220

Вопрос, а если вбить туда действующие DNS провайдера не лучше будет ?
И для чего необходимо 2 раза сервер вбивать ?

 

https://hosts-file.net/?s=Download

Более 400 000 тысяч записей.

Edited by Павел Цыбырна
Добавление ссылки на огромный файл hosts

Share this post


Link to post
Share on other sites
10 часов назад, Павел Цыбырна сказал:

Вопрос, а если вбить туда действующие DNS провайдера не лучше будет ?

И для чего необходимо 2 раза сервер вбивать ?

Какие DNS серверы использовать решать исключительно вам. У меня, скажем, местный провайдер блокирует реестр РКН с помощью DNS спуфинга, поэтому в первом посте я указал серверы Яндрекс.DNS на нестандартных портах.

Сервер можно указать и один. Несколько серверов указывают для отказоустойчивости: при падении одного сервера у вас не отвалится DNS резолвинг.

Share this post


Link to post
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

Как только делаю права на запуск , то пропадает доступ в Интернет ( DNS_PROBE_FINISHED_BAD_CONFIG ).

В /opt/etc/dnsmasq.conf в конец дописал:

no-resolv
server=8.8.8.8
port=65053

В  /opt/etc/hosts  поместил список блокируемых хостов.

Вот что пишет журнал Кинетика:

Nov 05 12:59:31ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 2: [filter: not found.
Nov 05 12:59:31ndmCore::Server: started Session 127.0.0.1:60545.
Nov 05 12:59:31ndmCore::Session: client disconnected.
Nov 05 13:00:45ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 2: [filter: not found.
Nov 05 13:00:45ndmCore::Server: started Session 127.0.0.1:60547.
Nov 05 13:00:45ndmCore::Session: client disconnected.
Nov 05 13:00:47ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 2: [filter: not found.
Nov 05 13:00:47ndmCore::Server: started Session 127.0.0.1:60548.
Nov 05 13:00:47ndmCore::Session: client disconnected.
Nov 05 13:02:00ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 2: [filter: not found.
Nov 05 13:02:00ndmCore::Server: started Session 127.0.0.1:60549.
Nov 05 13:02:00ndmCore::Session: client disconnected.
Nov 05 13:02:02ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 2: [filter: not found.
Nov 05 13:02:02ndmCore::Server: started Session 127.0.0.1:60550.
Nov 05 13:02:02ndmCore::Session: client disconnected.
Nov 05 13:02:21ndmCore::Server: started Session 127.0.0.1:60552.
Nov 05 13:02:21ndmCore::Session: client disconnected.
Nov 05 13:02:21ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 2: [filter: not found.

В iptables много повторяющихся правил

 # iptables -t nat --list\
>
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  anywhere             anywhere             tcp dpt:domain to:192.168.0.1:65053
DNAT       udp  --  anywhere             anywhere             udp dpt:domain to:192.168.0.1:65053
DNAT       tcp  --  anywhere             anywhere             tcp dpt:domain to:192.168.0.1:65053
DNAT       udp  --  anywhere             anywhere             udp dpt:domain to:192.168.0.1:65053
DNAT       tcp  --  anywhere             anywhere             tcp dpt:domain to:192.168.0.1:65053
DNAT       udp  --  anywhere             anywhere             udp dpt:domain to:192.168.0.1:65053
DNAT       tcp  --  anywhere             anywhere             tcp dpt:domain to:192.168.0.1:65053
DNAT       udp  --  anywhere             anywhere             udp dpt:domain to:192.168.0.1:65053
DNAT       tcp  --  anywhere             anywhere             tcp dpt:domain to:192.168.0.1:65053
DNAT       udp  --  anywhere             anywhere             udp dpt:domain to:192.168.0.1:65053
DNAT       tcp  --  anywhere             anywhere             tcp dpt:domain to:192.168.0.1:65053
DNAT       udp  --  anywhere             anywhere             udp dpt:domain to:192.168.0.1:65053

и т.д.

Если нужна дополнительная информация, спрашивайте. Но помогите настроить блокировку.

Edited by slava.trifonov

Share this post


Link to post
Share on other sites

Попробуйте почитать тут и проверить что все ок.

Проверка 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-кэша операционной системы и браузера.

Edited by TheBB

Share this post


Link to post
Share on other sites

Я починил. Добавил пару строк в dnsmasq.conf (тут в теме кто-то их выкладывал).

И у меня шелл не умеет обрабатывать конструкции [  ], пришлось делать через case.

И opkg dns-override  в cli выполнил. 

Share this post


Link to post
Share on other sites

Добрый вечер форумчане. А я не починил (как отписался предшествующий оратор :)) ). Вручную, через Putty, фильтрация работает.... Что я делаю:

в консоли копипастой по очереди запускаю

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

и фильтр работает, НО в журнале имею:

Nov 11 19:52:27ndm  Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: Try `iptables -h' or 'iptables --help' for more information.
Nov 11 19:52:27ndm  Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: Try `iptables -h' or 'iptables --help' for more information.
Nov 11 19:52:27ndm  Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: exit code 2.
 

Что не так-то? Сильно подозреваю, что с синтаксисом во 2-й строке косяк, но т.к. в "этих-ваших-линуксах" слабо понимаю, то сообразить где ошибка - не могу. Версия EnterWare - последняя доступная, может доустановить что-то из репозитория, или роутер сбросить "на завод" и всё с нуля попробовать ??

Edited by TheBB
дополнение

Share this post


Link to post
Share on other sites
37 минут назад, -aMk- сказал:

... Версия EnterWare - последняя доступная...

??? судя по v2.06 -  Entware-ng или Entware-Keenetic (как и Entware-3x для 2.07+), являются актуальными. Что вы умудрились поставить?

44 минуты назад, -aMk- сказал:

... роутер сбросить "на завод" и всё с нуля попробовать ??

не вариант, т.к.

46 минут назад, -aMk- сказал:

... в "этих-ваших-линуксах"...

пакет iptables установлен?

Share this post


Link to post
Share on other sites
2 минуты назад, TheBB сказал:

??? судя по v2.06 -  Entware-ng или Entware-Keenetic (как и Entware-3x для 2.07+), являются актуальными. Что вы умудрились поставить?

не вариант, т.к.

пакет iptables установлен?

Как проверить версию EnterWare и установлен-ли пакет iptables? Я делал всё по инструкции в 1-м посте, никакой отсебятины... И повторюсь - вручную всё работает, но непонятная хрень в журнале. Если не сложно - отпишите, что набрать в консоли, логи с меня, могу принт-скрины приложить, очень хочется автоматизировать процесс фильтрации ибо 2-е детишек с планшетами\смартами :(

Share this post


Link to post
Share on other sites
1 час назад, -aMk- сказал:

Как проверить версию...

Версию Entware можно определить по url, с которого идет скачивание пакетов, в файле /opt/etc/opkg.conf :

Entware-ng - http://pkg.entware.net/binaries/mipsel

Entware-Keenetic - http://pkg.entware-keenetic.ru/binaries/keenbe для mips;   http://pkg.entware-keenetic.ru/binaries/keenle  для mipsel 

Entware-3x - http://entware-3x.zyxmon.org/binaries/mips  для mips;   http://entware-3x.zyxmon.org/binaries/mipsel  для mipsel

1 час назад, -aMk- сказал:

... установлен-ли пакет iptables?...

opkg list-installed - выводит список установленных пакетов

upd 40 min later

подправил первый пост (побился при переезде) и проверил на DSL 2.08 -  решение рабочее

Edited by TheBB
upd

Share this post


Link to post
Share on other sites
2 часа назад, TheBB сказал:

Версию Entware можно определить по url, с которого идет скачивание пакетов, в файле /opt/etc/opkg.conf :

src/gz keenle http://pkg.entware-keenetic.ru/binaries/keenle
dest root /
lists_dir ext /opt/var/opkg-lists

Вот ЭТО  лежит внутри  файла /opt/etc/opkg.conf. Ызвыняйте, что ничего  более конкретного   предоставить  не  могу, действую "по уставу"...

2 часа назад, TheBB сказал:

opkg list-installed

 

Скрытый текст

1.JPG

 

Share this post


Link to post
Share on other sites

terminal (install/prepare)

Скрытый текст

~ # ndmq -p "show version" -P release
v2.06(AAFS.5)C1
~ #
~ # ndmq -p "show version" -P device
Keenetic Giga II
~ # 
~ # opkg install dnsmasq-full iptables
Installing dnsmasq-full (2.76-7) to root...
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/dnsmasq-full_2.76-7_keenle.ipk.
Installing iptables (1.4.21-2) to root...
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/iptables_1.4.21-2_keenle.ipk.
Configuring iptables.
Configuring dnsmasq-full.
~ #
~ # cat > /opt/etc/ndm/netfilter.d/010-intercept-dns.sh <<EOF
> #!/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
> 
> EOF
~ #
~ # chmod +x /opt/etc/ndm/netfilter.d/010-intercept-dns.sh
~ #
~ # cat >> /opt/etc/dnsmasq.conf <<EOF
> no-resolv
> server=77.88.8.88#1253
> server=77.88.8.2#1253
> port=65053
>
> EOF
~ #
~ # wget -O /opt/etc/hosts http://winhelp2002.mvps.org/hosts.txt
Connecting to winhelp2002.mvps.org (216.155.126.40:80)
hosts                100% |***********************|   490k  0:00:00 ETA
~ #
~ # reboot 
Connection to 192.168.52.2 closed by remote host.
Connection to 192.168.52.2 closed.

 

syslog

Скрытый текст

...
[I] Nov 11 23:38:22 dropbear[406]: Running in background
[I] Nov 11 23:38:23 ndm: kernel: eth2.1: no IPv6 routers present
[I] Nov 11 23:38:23 root: Started dropbear from .
[I] Nov 11 23:38:23 ndm: kernel: br0: no IPv6 routers present
[I] Nov 11 23:38:23 root: Started dnsmasq from .
[I] Nov 11 23:38:23 dnsmasq[423]: started, version 2.76 cachesize 150
[I] Nov 11 23:38:23 dnsmasq[423]: compile time options: IPv6 GNU-getopt no-RTC no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify
[I] Nov 11 23:38:23 dnsmasq[423]: using nameserver 77.88.8.2#1253
[I] Nov 11 23:38:23 dnsmasq[423]: using nameserver 77.88.8.88#1253
[I] Nov 11 23:38:24 dnsmasq[423]: read /opt/etc/hosts - 13286 addresses
[I] Nov 12 00:10:06 ndm: Core::System::Clock: system time has been changed.
[I] Nov 12 00:10:06 ndm: Ntp::Client: time synchronized with "2.pool.ntp.org".
[I] Nov 12 00:10:11 ndm: kernel: ra0: no IPv6 routers present
[I] Nov 12 00:10:12 ndm: Cifs::ServerNQ: service started.

 

пройдитесь еще раз внимательно и все получится )))

Share this post


Link to post
Share on other sites
Цитата

 

Все сделал, как вы предложили, стало хуже:

Скрытый текст

Putty:

login as: root
root@192.168.1.1's password:


BusyBox v1.24.2 () built-in shell (ash)


        |.    .|      |.    .|  |.    .|
        |||,.|||      |||,.|||  |||,.|||
        |' || '|      |' || '|  |' || '|
       ____||____        ||________||
      | ===  = = |       | == == == |
      |__________|       |__________|
  ______  _________        ___    ____  ____
 |    | \| |_   _| \  /\  / / \  |  _ `|    |
 | ~~,'  ' | | |  \ \/  \/ / _ \ | |_),| ~~,'  __
 | ~~'. ;  | | |   \  /\  / ___ \| ._ \| ~~'. |__|
 |____|_|\_| |_|    \/  \/_/   \_|_| \_|____|
     _  ______________  ______________  ___
    | |/ /|    |    | \| |    |_   _| |/ __\
    | ' / | ~~,' ~~,'  ' | ~~,' | | | | |  '
    | ; \ | ~~'. ~~'. ;  | ~~'. | | | | |__,
    |_|\_\|____|____|_|\_|____| |_| |_|\___/

Ultimate repo for ZyXEL routers the Keenetic series
~ # ndmq -p "show version" -P release
v2.06(AAFS.8)C1
~ # ndmq -p "show version" -P device
Keenetic Giga II
~ # opkg install dnsmasq-full iptables
Package dnsmasq-full (2.76-7) installed in root is up to date.
Package iptables (1.4.21-2) installed in root is up to date.
~ # cat > /opt/etc/ndm/netfilter.d/010-intercept-dns.sh <<EOF
> !/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
> EOF
~ # chmod +x /opt/etc/ndm/netfilter.d/010-intercept-dns.sh
~ # cat >> /opt/etc/dnsmasq.conf <<EOF
> no-resolv
> server=77.88.8.88#1253
> server=77.88.8.2#1253
> port=65053
> EOF
~ # wget -O /opt/etc/hosts http://winhelp2002.mvps.org/hosts.txt
Connecting to winhelp2002.mvps.org (216.155.126.40:80)
hosts                100% |***************************************************|   490k  0:00:00 ETA
~ #
~ #

 

Скрытый текст

Syslog:

Nov 11 19:45:07 ndm: Opkg::Manager: /tmp/mnt/500gb mounted to /tmp/mnt/500gb.
Nov 11 19:45:07 ndm: Opkg::Manager: /tmp/mnt/500gb mounted to /opt/.
Nov 11 19:45:07 ndm: Opkg::Manager: /tmp/mnt/500gb initialized.
[E] Nov 11 19:45:07 ndm: Opkg::Manager: invalid initrc "/opt/opkg dns-override": no such file or directory, trying /opt/etc/init.d/.
Nov 11 19:45:07 dropbear[309]: Running in background
Nov 12 14:47:05 ndm: Core::System::Clock: system time has been changed.
Nov 12 14:47:05 root: Started dropbear from .
[C] Nov 12 14:47:05 dnsmasq[316]: error at line 674 of /opt/etc/dnsmasq.conf
[C] Nov 12 14:47:05 dnsmasq[316]: FAILED to start up

Nov 12 14:47:05 pppd[295]: System time change detected.
Nov 12 14:47:06 ndm: Core::Server: started Session 127.0.0.1:57199.
Nov 12 14:47:06 miniupnpd: HTTP listening on port 35743
Nov 12 14:47:06 miniupnpd: listening for NAT-PMP traffic on port 5351
Nov 12 14:47:06 ndm: kernel: ra0: no IPv6 routers present
Nov 12 14:47:07 ndm: Core::Server: started Session 127.0.0.1:57201.
Nov 12 14:47:07 ndm: Cifs::ServerNQ: service started.
Nov 12 14:47:09 transmissiond: Transmission 2.84 (14307) started
Nov 12 14:47:09 transmissiond: RPC Server Adding address to whitelist: *.*.*.*
Nov 12 14:47:09 transmissiond: RPC Server Serving RPC and Web requests on port 127.0.0.1:10000/transmission/
Nov 12 14:47:09 transmissiond: RPC Server Whitelist enabled
Nov 12 14:47:09 transmissiond: RPC Server Password required
Nov 12 14:47:09 transmissiond: Port Forwarding Stopped
Nov 12 14:47:09 transmissiond: DHT Reusing old id
Nov 12 14:47:09 transmissiond: DHT Bootstrapping from 108 IPv4 nodes
Nov 12 14:47:09 transmissiond: Using settings from "/tmp/mnt/500gb//uT/"
Nov 12 14:47:09 transmissiond: transmissiond requiring authentication
Nov 12 14:47:09 transmissiond: Watching "/tmp/mnt/500gb//uT//watch" for new .torrent files
Nov 12 14:47:13 ndm: Core::System::Clock: system time has been changed.
Nov 12 14:47:13 ndm: Ntp::Client: time synchronized with "3.pool.ntp.org".
Nov 12 14:47:17 root: Failed to start dnsmasq from .
[E] Nov 12 14:47:17 ndm: Opkg::Manager: /opt/etc/init.d/S56dnsmasq: exit code 255.
[C] Nov 12 14:47:17 dnsmasq[374]: error at line 674 of /opt/etc/dnsmasq.conf
[C] Nov 12 14:47:17 dnsmasq[374]: FAILED to start up
Nov 12 14:47:23 ndm: kernel: SWNAT bind table cleared
Nov 12 14:47:23 ndm: Core::System::DriverManager: unloading hw_nat.ko...
Nov 12 14:47:29 root: Failed to start dnsmasq from .
[E] Nov 12 14:47:29 ndm: Opkg::Manager: /opt/etc/init.d/rc.unslung: exit code 255.
Nov 12 14:47:29 ndm: Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 1: !/bin/sh: not found.
Nov 12 14:48:22 ndm: Core::Syslog: last message repeated 4 times.
Nov 12 14:49:08 ndm: kernel: IPv4 conntrack: flushed 1 entries with address 192.168.1.40
Nov 12 14:49:08 ndm: kernel: SWNAT bind table cleared
Nov 12 14:49:08 ndm: Core::System::DriverManager: unloading hw_nat.ko...
Nov 12 14:49:09 ndm: Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 1: !/bin/sh: not found.
Nov 12 14:49:39 wmond: WifiMaster0/AccessPoint0: (RT2860) STA(74:04:2b:71:35:21) had deauthenticated.

 

 И вот ещё - подскажите, какой командой перезапустить службу, в моём случае dnsmasq, без перезагрузки роутера. Спасибо заранее

Edited by -aMk-
дописка

Share this post


Link to post
Share on other sites
3 минуты назад, -aMk- сказал:

Все сделал, как вы предложили, стало хуже:

Вот он бездумный копи-паст. Я не предлагал, а привел вывод с терминала и сислог из морды кинетика, все работает. )))

Что и как вы там вводите - известно только вам. Читаете первый пост темы, внимательно, шаг за шагом, проходите все этапы:

создаете файл /opt/etc/ndm/netfilter.d/010-intercept-dns.sh

наполняете его содержимым

делаете его исполняемым

дописываете в файл /opt/etc/dnsmasq.conf  4 (четыре строки)

загружаете список wget -O /opt/etc/hosts http://winhelp2002.mvps.org/hosts.txt

еще раз внимательно читаете в конце первого поста скрытый текст

перезагружаете кинетик

 

Share this post


Link to post
Share on other sites

Так и делаю. Буду пробовать. Как перезапустить службу, какая команда используется для перезапуска DNSMASQ ?

 

Пробую в консоли ввести ["$table" != "nat"], вылезает ошибка:

sh: missing ]

Edited by -aMk-
дополню

Share this post


Link to post
Share on other sites

Попробуйте так:

~ # cat /opt/etc/ndm/netfilter.d/010-intercept-dns.sh
#!/bin/sh
case "$table" in
nat)
        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
        ;;
*)
        exit 0
esac

Такой dnsmasq.conf

no-resolv
server=8.8.8.8
server=8.8.4.4
port=65053
addn-hosts=/opt/etc/hosts
log-queries

Файл hosts у меня другой, на 28000 строк, загрузка проца 1-2%. С учетом того что polipo+tor работают.

Share this post


Link to post
Share on other sites
23 часа назад, slava.trifonov сказал:

Попробуйте так:


~ # cat /opt/etc/ndm/netfilter.d/010-intercept-dns.sh
#!/bin/sh
case "$table" in
nat)
        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
        ;;
*)
        exit 0
esac

Такой dnsmasq.conf


no-resolv
server=8.8.8.8
server=8.8.4.4
port=65053
addn-hosts=/opt/etc/hosts
log-queries

Файл hosts у меня другой, на 28000 строк, загрузка проца 1-2%. С учетом того что polipo+tor работают.

Всё заработало, Слава - спасибо :)

Скрытый текст

I] Nov 14 22:10:46 dnsmasq[321]: read /opt/etc/hosts - 498004 addresses
Nov 14 22:10:53 dnsmasq[321]: read /opt/etc/hosts - 498004 addresses
Nov 14 22:10:53 dnsmasq[321]: query[A] i.instagram.com from 192.168.1.36
Nov 14 22:10:53 dnsmasq[321]: forwarded i.instagram.com to 77.88.8.2
Nov 14 22:10:53 dnsmasq[321]: forwarded i.instagram.com to 77.88.8.88
Nov 14 22:10:53 dnsmasq[321]: query[A] clients3.google.com from 192.168.1.36
Nov 14 22:10:53 dnsmasq[321]: forwarded clients3.google.com to 77.88.8.2
Nov 14 22:10:53 dnsmasq[321]: forwarded clients3.google.com to 77.88.8.88

У меня тоже HOSTS скачан, ссылка была выше, ну и лог временно посмотрю и отключу позже. Кстати, загрузка ЦП и Ram:

Скрытый текст
Модель
Keenetic Giga II Сервисный код 797-604-641-321-677 Версия NDMS v2.06(AAFS.8)C1 Обновления
Нет
Время работы 00:05:44 Текущее время 14/11/2016 22:15:46 Загрузка ЦП 0% Память 25% (63/256 МБ) Файл подкачки 0 из 0 МБ Имя устройства Keenetic

 

Share this post


Link to post
Share on other sites
В 12.11.2016 в 15:34, TheBB сказал:

/opt/etc/init.d/S56dnsmasq restart

зачищайте тему, Слава спас ситуацию

PS тема буде зачищена

 

Share this post


Link to post
Share on other sites

Вставлю свои 5-копеек

1.

/ # opkg install dnsmasq-full
Installing dnsmasq-full (2.76-7) to root...
Downloading http://entware-3x.zyxmon.org/binaries/mipsel/dnsmasq-full_2.76-7_mipsel-3x.ipk.
Configuring dnsmasq-full.
/ #

2. чтоб dnsmasq запускался на стандартном 53 порту

(config)> opkg dns-override
(config)> system configuration save

3. файл "/opt/etc/dnsmasq.conf"

no-resolv
server=IP_DNS1
server=IP_DNS2
addn-hosts=/opt/etc/tmp/hosts0

4. создать файл "/opt/etc/hosts0" из "wget -O /opt/etc/hosts0 http://winhelp2002.mvps.org/hosts.txt"

5. проверить файл "/opt/etc/hosts"

127.0.0.1 localhost
::1 localhost #[IPv6]

6. перезапуск роутера

7. при правильной настройки в лог

Nov 29 19:56:12dnsmasq[2917] started, version 2.76 cachesize 150
Nov 29 19:56:12dnsmasq[2917] compile time options: IPv6 GNU-getopt no-RTC no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify
Nov 29 19:56:12dnsmasq[2917] using nameserver IP_DNS1#53
Nov 29 19:56:12dnsmasq[2917] using nameserver IP_DNS2#53
Nov 29 19:56:12root Started dnsmasq from .
Nov 29 19:56:12dnsmasq[2917] read /opt/etc/hosts - 13286 addresses

Примечание, доп. настройки

файл "/opt/etc/hosts" для сопоставления имен хостов IP-адресам, если не хотим его использовать то опция

no-hosts

дополнительно с  "/opt/etc/hosts" то опция

addn-hosts=/path/to/file

использовать свой список DNS-серверов

resolv-file=/path/to/file

просто указать несколько DNS-серверов, для форвард запросов

server=8.8.8.8
server=8.8.4.4
...

 

 

 

  • Thanks 2

Share this post


Link to post
Share on other sites

Хочется добавить следующее: насколько я понял dnsmasq не умеет сам разрешать IPv6 запросы (типа AAAA) и все их редиректит (с указанными в первом посте настройками на серверы яндекса). Часа 2 сейчас боролся с рекламой на телефоне, а она все проходила. Все никак не мог понять, почему при наличии в файле hosts записи googleads.g.doubleclick.net его АААА запрос разрешался в pagead46.l.doubleclick.net, который в свою очередь уже разрешался в IPv6 адрес. Пришлось у себя отключить IPv6 от HE. От него выходит пользы мало (если вообще есть), а рекламу он пропускает отлично.

Так что это нужно учесть при настроенном на роутере IPv6 и использовании данного способа блокировки - все заблокировать не получится.

Share this post


Link to post
Share on other sites

Владельцы белых ip-шников. Не забудьте себя обезопасить.

Пару дней прдвергаюсь днс-флуду.

Не забудьте дропать все запросы на 53 порт извне. И, если используете dnsmasq на нестандартном порту, в правиле iptables таблицы nat укажите адреса с которых будут днс запросы заворачиваться на dnsmasq.

  • Thanks 2

Share this post


Link to post
Share on other sites

беру за основу:

~ # cat /opt/etc/ndm/netfilter.d/010-intercept-dns.sh
#!/bin/sh
case "$table" in
nat)
        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
        ;;
*)
        exit 0
esac
Скрытый текст

Jan 29 13:08:41rootStarted dnsmasq from .
Jan 29 13:08:41ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 1: /: Permission denied.
Jan 29 13:08:41ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 3: syntax error: unexpected word (expecting "in").
Jan 29 13:08:41ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: exit code 2.
Jan 29 13:08:42ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 1: /: Permission denied.
Jan 29 13:08:42ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 3: syntax error: unexpected word (expecting "in").
Jan 29 13:08:42ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: exit code 2.
Jan 29 13:08:42ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 1: /: Permission denied.
Jan 29 13:08:42ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: line 3: syntax error: unexpected word (expecting "in").
Jan 29 13:08:42ndmOpkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: exit code 2.

Подскажите в чём ошибка?

Уже несколько раз переделывал, с использованием нескольких версий файлов dnsmasq.conf и 010-intercept-dns.sh

Если записать в 010-intercept-dns.sh текст из первого сообщения, то ошибка как у -aMk- 

Цитата

Добрый вечер форумчане. А я не починил (как отписался предшествующий оратор :)) ). Вручную, через Putty, фильтрация работает.... Что я делаю:

в консоли копипастой по очереди запускаю

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

и фильтр работает, НО в журнале имею:

Nov 11 19:52:27ndm  Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: Try `iptables -h' or 'iptables --help' for more information.
Nov 11 19:52:27ndm  Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: Try `iptables -h' or 'iptables --help' for more information.
Nov 11 19:52:27ndm  Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: exit code 2.
 

Что не так-то? Сильно подозреваю, что с синтаксисом во 2-й строке косяк, но т.к. в "этих-ваших-линуксах" слабо понимаю, то сообразить где ошибка - не могу. Версия EnterWare - последняя доступная, может доустановить что-то из репозитория, или роутер сбросить "на завод" и всё с нуля попробовать ??

При этом руками команды из 010-intercept-dns.sh, то работает тоже

 

У меня складывается ощущение, что файлик 010-intercept-dns.sh то ли чем-то занят, то ли не совсем верно записан, и  dnsmasq тупо не может прочитать свои команды.

При этом dns стоит получать от провайдера. Всякие яндекс и sky днс выключены. настроен только проброс портов во внутреннюю сеть для торентов.

 

Скрытый текст

~ # opkg list-installed
dnsmasq-full - 2.76-7a
dropbear - 2016.74-1
findutils - 4.6.0-1
glib2 - 2.49.7-1
iptables - 1.4.21-2
ldconfig - 2.23-7
libattr - 20160302-1
libblkid - 2.28-1b
libc - 2.23-7
libffi - 3.2.1-2
libgcc - 5.4.0-7
libiconv-full - 1.11.1-3
libintl-full - 0.19.8.1-1
libmnl - 1.0.4-1
libmount - 2.28-1b
libndm - 1.1.0-1a
libnetfilter-conntrack - 1.0.6-1
libnfnetlink - 1.0.1-1
libopenssl - 1.0.2j-1a
libpthread - 2.23-7
librt - 2.23-7
libslang2 - 2.3.1-1
libssh2 - 1.7.0-1
libssp - 5.4.0-7
libstdcpp - 5.4.0-7
libuuid - 2.28-1b
locales - 2.23-7
mc - 4.8.18-1a
ndmq - 1.0.2-1a
opt-ndmsv2 - 1.0-6a
terminfo - 6.0-1c
zlib - 1.2.8-1
zoneinfo-asia - 2016j-1
zoneinfo-europe - 2016j-1
~ #

Установленная версия NDMS: v2.09(AAUX.1)A2

Edited by ykutik
дополнил инфу

Share this post


Link to post
Share on other sites
В 19.02.2016 в 17:15, ndm сказал:

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

т.е. Вам правила переадресации 53 порта на 65053 для nat, в случае использования opkg dns-override, просто не нужны. Сделайте в cli opkg dns-override , настройте Ваш dnsmasq на 53 порту и не забудьте прописать в нем свои DNS-ы (например Вашего провайдера). Вот и весь секрет.

p.s. Скрипты "копи/пастенные" ... я так понимаю работаете из-под винды (must Die) , имеют свои "скрытые" особенности по концу строки ... В винде конец строки "/n/r" а в *nix системах "/n". Из-за этого во многих *nix системах возникают ошибки при выполнении скриптов созданных, например в notepad, может и в putty есть такие "особенности" ... 

Edited by Dorik1972
  • Thanks 1

Share this post


Link to post
Share on other sites
20 часов назад, ykutik сказал:

При этом руками команды из 010-intercept-dns.sh, то работает тоже

Как предположил Dorik1972, скорее всего правите файлик в винде, вот и возникают проблемы, решение простое, редактировать файлик в консоле, к примеру через nano, для установки выполнить opkg install nano

пользоваться просто, к примеру для открытия файла  hosts, в командной строке достаточно ввести nano /opt/etc/hosts после необходимых правок(кстати копи паст в putty нормально работает), нажать Ctrl+o, спросит сохранить, нажать Enter, для выхода нажать Ctrl+x.

Так же хочу отметить, что как написал Dorik1972, скрипт использовать не обязательно, просто при подключении в cli (через telnet, не путать с ssh), выполнить команду  opkg dns-override .

Способ без скрипта описал vasek00, несколькими постами выше 

достаточно выполнить шаги с 1 по 6, только обратите внимание, у него на шаге 3 или 4 допущена оЧепятка, вместо 

addn-hosts=/opt/etc/tmp/hosts0

необходимо указывать 

addn-hosts=/opt/etc/hosts0

либо в 4 пункте файл  "hosts0"  создавать по пути  "/opt/etc/tmp/hosts0" вместо написанного  "/opt/etc/hosts0", но проще всего сделать правку в пункте 3, вообщем на выбор, править текст в 3 или в 4 пункте.

Share this post


Link to post
Share on other sites

всем спасибо, вчера сам догадался и выключил DNS-прокси на роутере командой  "opkg dns-override". И всё заработало.

Но у меня 4 вопроса,

1. зачем мы создаем файл с блокируемыми адресами:

addn-hosts=/opt/etc/hosts0

Почему нельзя всё записать в "оригинальный"  /opt/etc/hosts ? ( я сделал так)

2. И правильно ли я понимаю, что если мой подключенный диск по каким-то причинам отвалится или падет система "Opkg", то служба ДНС работать перестанет и интернета как такового не будет? тогда её надо будет включить в "CLI" ?

3. Вопрос по содержимому файла hosts, я взял файл из ссылки https://hosts-file.net/?s=Download  , правильно ли я взял самый первый, где больше всего записей? ~530 000 штук? Не заметил что роутер как-то тормозил из-за этого. Правильно дли я понимаю, что эта база содержит набор адресов с рекламой, с распространителями зловредов, следящими трекерами и прочей гадости?..

4. (Наверно глупый вопрос) Доступен ли по умолчанию из нета мой  Entware  по ssh сейчас , при условии что я не пробрасывал порты и не давал каких-либо разрешений на это? Я боюсь стать часть ботнета :)

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×