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

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

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

Вот тут: https://forum.keenetic.ru/topic/14411-можно-ли-настроить-на-роутере-viva-kn-1910-доступ-к-отдельным-доменам-исключительно-по-ipv4/ я интересовался, можно ли сделать так, чтобы роутер давал доступ к определённым сайтам только по протоколу IPv4, так как, например, я столкнулся с тем, что с включённым в настройках 6in4-туннелем до брокера IP4Market у меня некорректно открывается сайт hd.kinopoisk.ru, как будто я пытаюсь зайти на него из-за границы (я тупо не могу смотреть с него фильмы и сериалы по подписке ни в браузере? ни в приложении для Android TV).

К сожалению, мне не ответили ни что такого невозможно, ни, если это всё же возможно, не сказали как это можно сделать.

Сегодня решил ещё раз погуглить и, кажется, наткнулся на что-то похожее на решение моей проблемы: https://forum.ixbt.com/topic.cgi?id=14:65482

У меня к роутеру подключена флешка с Entware и в числе установленных пакетов есть iptables. Однако я не умею писать шелл-скрипты и не знаю как использовать на моём роутере предложенное решение. Если кому-то интересно решить подобную задачу, я прошу помощи.

В идеале хотелось бы, чтобы скрипт проверял, есть ли сайт, к которому обращается устройство или приложение, в файле (мне не лень будет заполнить его руками), содержащем список имён сайтов, к которым надо запретить доступ по протоколу IPv6, и если сайт в списке есть, то применял правило iptables для такого сайта, запрещающее протокол IPv6. Но меня устроит и просто скрипт, добавляющий в iptables соответствующее правило при запуске роутера, без отдельного файла со списком сайтов. 

Изменено пользователем Dim McAlastair
Опубликовано
3 часа назад, Dim McAlastair сказал:

Вот тут: https://forum.keenetic.ru/topic/14411-можно-ли-настроить-на-роутере-viva-kn-1910-доступ-к-отдельным-доменам-исключительно-по-ipv4/ я интересовался, можно ли сделать так, чтобы роутер давал доступ к определённым сайтам только по протоколу IPv4, так как, например, я столкнулся с тем, что с включённым в настройках 6in4-туннелем до брокера IP4Market у меня некорректно открывается сайт hd.kinopoisk.ru, как будто я пытаюсь зайти на него из-за границы (я тупо не могу смотреть с него фильмы и сериалы по подписке ни в браузере? ни в приложении для Android TV).

К сожалению, мне не ответили ни что такого невозможно, ни, если это всё же возможно, не сказали как это можно сделать.

Сегодня решил ещё раз погуглить и, кажется, наткнулся на что-то похожее на решение моей проблемы: https://forum.ixbt.com/topic.cgi?id=14:65482

У меня к роутеру подключена флешка с Entware и в числе установленных пакетов есть iptables. Однако я не умею писать шелл-скрипты и не знаю как использовать на моём роутере предложенное решение. Если кому-то интересно решить подобную задачу, я прошу помощи.

В идеале хотелось бы, чтобы скрипт проверял, есть ли сайт, к которому обращается устройство или приложение, в файле (мне не лень будет заполнить его руками), содержащем список имён сайтов, к которым надо запретить доступ по протоколу IPv6, и если сайт в списке есть, то применял правило iptables для такого сайта, запрещающее протокол IPv6. Но меня устроит и просто скрипт, добавляющий в iptables соответствующее правило при запуске роутера, без отдельного файла со списком сайтов. 

Вы путаете мух с котлетами. Iptables вам тут не поможет. Вам надо настроить dns, что бы он всегда возвращал только ipv4 адрес. Знаю у dnsmasq есть такой флаг.

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

Скажите, а можно как-то приспособить для кинетика вот это вот решение с использованием bind: https://openwrt.org/docs/guide-user/services/dns/bind-server-filter-aaaa? Чтоб как и в описанном примере bind работал, как дополнение к прошивочному DNS и занимался обработкой запросов только на конкретные домены?

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

Попробовал установить и настроить сервер Bind9, как написано по ссылке в предыдущем посте, а он не запускается по причине того, что не может загрузить файл конфигурации. С "родным" конфигом "из коробки" утилита named-checkconf выдаёт ошибку:  "/opt/etc/bind/named.conf:18: parsing failed: file not found", а с поправленным конфигом: "/opt/etc/bind/named.conf:26: parsing failed: file not found" или "/opt/etc/bind/named.conf:28: parsing failed: file not found".

Потыкавшись по просторам интернета я попробовал скопировать содержание исправленного конфига в буфер обмена, удалил его и, создав новый файл в mcedit, вставил в него скопированный текст и сохранил как named.conf. После чего named-checkconf выдала следующее сообщение:

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

~ # named-checkconf /opt/etc/bind/named.conf
/opt/etc/bind/named.conf:9: unknown option '<------>directory'
/opt/etc/bind/named.conf:11: unknown option '<------>// If your ISP provide...'
/opt/etc/bind/named.conf:16: unknown option '<------>listen-on-v6'
/opt/etc/bind/named.conf:17: unknown option '<------>forward'
/opt/etc/bind/named.conf:18: unknown option '<------>forwarders'
/opt/etc/bind/named.conf:25: unknown option '<------>auth-nxdomain'"

Ну и соответственно:
 

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

~ # /opt/etc/init.d/S09named start
 Starting named...              done.
~ # /opt/etc/init.d/S09named check
 Checking named...              dead.

В сислоге появилось вот такое сообщение:

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

Jun 22 23:58:01 KEENETIC-VIVA root: Started named from .
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: starting BIND 9.18.1 (Stable Release) <id:30be439>
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: running on Linux mips 4.9-ndm-5 #0 SMP Tue Jun 21 16:39:31 2022
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: built with  '--target=mipsel-openwrt-linux' '--host=mipsel-openwrt-linux' '--build=x86_64-pc-linux-gnu' '--program-prefix=' '--program-suffix=' '-
-prefix=/opt' '--exec-prefix=/opt' '--bindir=/opt/bin' '--sbindir=/opt/sbin' '--libexecdir=/opt/lib' '--sysconfdir=/opt/etc' '--datadir=/opt/share' '--localstatedir=/opt/var' '--mandir=/opt/
man' '--infodir=/opt/info' '--with-openssl=/build/me/E.mipsel/staging_dir/target-mipsel_mips32r2_glibc-2.27/opt' '--without-lmdb' '--enable-epoll' '--without-gssapi' '--without-readline' '--
sysconfdir=/opt/etc/bind' '--with-json-c=no' '--with-libxml2=no' '--enable-doh' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=mipsel-openwrt-linux' 'target_alias=mipsel-openwrt-linux' 'CC=mi
psel-openwrt-linux-gnu-gcc' 'CFLAGS=-O2 -pipe -mno-branch-likely -mips32r2 -mtune=mips32r2 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft
-float -I/build/me/E.mipsel/staging_dir/target-mipsel_mips32r2_glibc-2
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: running as: named -c /opt/etc/bind/named.conf
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: compiled by GCC 8.4.0
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: compiled with OpenSSL version: OpenSSL 1.1.1n  15 Mar 2022
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: linked to OpenSSL version: OpenSSL 1.1.1n  15 Mar 2022
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: compiled with zlib version: 1.2.12
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: linked to zlib version: 1.2.12
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: ----------------------------------------------------
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: BIND 9 is maintained by Internet Systems Consortium,
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: Inc. (ISC), a non-profit 501(c)(3) public-benefit
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: corporation.  Support and training for BIND 9 are
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: available at https://www.isc.org/support
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: ----------------------------------------------------
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: adjusted limit on open files from 4096 to 1048576
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: found 4 CPUs, using 4 worker threads
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: using 4 UDP listeners per interface
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: config.c: option 'trust-anchor-telemetry' is experimental and subject to change in the future
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: loading configuration from '/opt/etc/bind/named.conf'
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: /opt/etc/bind/named.conf:9: unknown option '<------>directory'
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: /opt/etc/bind/named.conf:11: unknown option '<------>// If your ISP provide...'
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: /opt/etc/bind/named.conf:16: unknown option '<------>listen-on-v6'
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: /opt/etc/bind/named.conf:17: unknown option '<------>forward'
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: /opt/etc/bind/named.conf:18: unknown option '<------>forwarders'
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: /opt/etc/bind/named.conf:25: unknown option '<------>auth-nxdomain'
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: loading configuration: file not found
Jun 22 23:58:01 KEENETIC-VIVA named[16031]: exiting (due to fatal error)


ЧЯДН?

Изменено пользователем Dim McAlastair
Опубликовано
В 23.06.2022 в 00:40, Dim McAlastair сказал:

После чего named-checkconf выдала следующее сообщение:

mcedit вместо [TAB]`ов вставил печатные символы "<------>" со всеми вытекающими...

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

В общем, я, кажется, разобрался, почему не запускался Bind

Стартовый конфиг выглядел так:

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

// This is the primary configuration file for the BIND DNS server named.

options {
    directory "/opt/tmp";

    // If your ISP provided one or more IP addresses for stable
    // nameservers, you probably want to use them as forwarders.
    // Uncomment the following block, and insert the addresses replacing
    // the all-0's placeholder.

    // forwarders {
    //  0.0.0.0;
    // };

    auth-nxdomain no;    # conform to RFC1035
};

include "/opt/etc/bind/named-rndc.conf";

include "/opt/tmp/bind/named.conf.local";

// prime the server with knowledge of the root servers
zone "." {
    type hint;
    file "/opt/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
    type master;
    file "/opt/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
    type master;
    file "/opt/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
    type master;
    file "/opt/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
    type master;
    file "/opt/etc/bind/db.255";
};

И ругалась named-checkkonf на строчки "include", поскольку упомянутых в них файлов на указанных в этих строчках местах не было. Не знаю, так ли необходимы эти файлы, так как, вроде бы, судя по статьям о Bind из интернета, всё то, что содержится в указанных в этих двух строчках файлах, можно внести в основной файл named.conf.

В результате, мой named.conf стал выглядеть вот так:  
 

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

// This is the primary configuration file for the BIND DNS server named.

plugin query "/opt/lib/bind/filter-aaaa.so" {
  filter-aaaa-on-v4 yes;
  filter-aaaa-on-v6 yes;
};

options {

    directory "/opt/tmp";

    // If your ISP provided one or more IP addresses for stable.
    // nameservers, you probably want to use them as forwarders...
    // Uncomment the following block, and insert the addresses replacing.
    // the all-0's placeholder.

    listen-on port 2053 { 127.0.0.1; };
    listen-on-v6 port 2053 { ::1; };
                   forward only;
                   forwarders {
                      9.9.9.10;
                      94.140.14.140;
                      94.140.14.141;
                      149.112.112.10;
        };

    auth-nxdomain no;    # conform to RFC1035
};

// include "/opt/etc/bind/named-rndc.conf";

// include "/opt/tmp/bind/named.conf.local";

key "rndc-key" {
    algorithm hmac-sha256;
    secret "8r7ABoOr2ahB6SFwVFn0zLa+OpDz0TbrOrKzzV5p5ls=";
};

controls {
                   inet 127.0.0.1 port 953
                   allow { 127.0.0.1; } keys { "rndc-key"; };
};

// prime the server with knowledge of the root servers
zone "." {
    type hint;
    file "/opt/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
    type master;
    file "/opt/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
    type master;
    file "/opt/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
    type master;
    file "/opt/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
    type master;
    file "/opt/etc/bind/db.255";
};

Этот  конфиг проверку прошёл, я стартанул bind, и он запустился.

После этого, я проверил, работу сервиса, как указанно в той статье:

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

root@KEENETIC-VIVA:/opt/etc/init.d$ dig @127.0.0.1 -p 2053 kinopoisk.ru AAAA

; <<>> DiG 9.18.1 <<>> @127.0.0.1 -p 2053 kinopoisk.ru AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35433
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: c1299acc104c427e0100000062b5f83487863f77ba5179d2 (good)
;; QUESTION SECTION:
;kinopoisk.ru.                  IN      AAAA

;; Query time: 652 msec
;; SERVER: 127.0.0.1#2053(127.0.0.1) (UDP)
;; WHEN: Fri Jun 24 20:45:24 MSK 2022
;; MSG SIZE  rcvd: 69

root@KEENETIC-VIVA:/opt/etc/init.d$ dig @9.9.9.10 -p 53 kinopoisk.ru AAAA

; <<>> DiG 9.18.1 <<>> @9.9.9.10 -p 53 kinopoisk.ru AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8099
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;kinopoisk.ru.                  IN      AAAA

;; ANSWER SECTION:
kinopoisk.ru.           96      IN      AAAA    2a02:6b8::473

;; Query time: 92 msec
;; SERVER: 9.9.9.10#53(9.9.9.10) (UDP)
;; WHEN: Fri Jun 24 20:45:47 MSK 2022
;; MSG SIZE  rcvd: 69

 Но, к сожалению, сочетать его работу с встроенным в прошивку DNS-сервером не получается: роутер (через веб-интерфейс, по крайней мере) не позволяет добавить настройку, заставляющую направлять запрос IP-адреса сайта kinopoisk.ru на  bind (127.0.0.1:2053).

Можно ли это сейчас сделать через CLI? Можно ли добавить такую опцию в будущих релизах прошивок? Поставить dnsmasq на замену встроенного DNS-сервера, чтобы сделать всё в точности, как в той статье, не предлагайте -- мне хватило возни с одним bind-ом. 

А может, можно каким-то образом прикрутить к встроенному в прошивку DNS-прокси аналог плагина filter-AAAA для bind, чтобы в настройках "Интернет-фильтра" при добавлении dns-сервера для запросов IP определённого домена, можно было выставить флажок "получать только  адрес IPv4"?

И кстати, вопрос: а вот эта возможность в системном профиле "Интернет-фильтра" добавить адрес DNS-сервера для отдельного домена, она имеет высший приоритет, в смысле, если я в адресной строке браузера набираю имя определённого сайта, для которого я установил отдельный DNS-сервер, то запрос IP-адреса шлётся именно на этот сервер, и если вдруг он не отвечает, значит страница сайта не откроется? Или сначала на этот сервер, а если не получает ответа, то запрашивает другие?

Изменено пользователем Dim McAlastair
Опубликовано
В 22.06.2022 в 22:04, Dim McAlastair сказал:

Скажите, а можно как-то приспособить для кинетика вот это вот решение с использованием bind: https://openwrt.org/docs/guide-user/services/dns/bind-server-filter-aaaa? Чтоб как и в описанном примере bind работал, как дополнение к прошивочному DNS и занимался обработкой запросов только на конкретные домены?

Лично я бы не стал связываться с bind ради такой мелочи, легче будет сладить с конфигом dnsmasq. К счастью, нужный для вас функционал dnsmasq'а появился в последних релизах adguardhome. Я оставил ссылку с примером в предыдущей теме.

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

Спасибо. Попробую Adguard Home.

Upd.: Ещё раз спасибо. Adguard Home работает как я и хотел.

Изменено пользователем Dim McAlastair

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

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

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

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

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

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

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

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

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

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

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

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