Openwrt dns: Порядок настройки роутера с прошивкой OpenWRT SkyDNS

Виконую встановлення, налаштування, супроводження серверів. Для деталей використовуйте форму зворотнього звʼязку

Останнім часом clamav почав дуже довго (інколи пару хвилин) оновлювати свої бази (поки не зʼясував, чому саме) і в ці моменти відповідно, clamav socket недоступний для exim’y. Як результат, в paniclog отримуємо запис

2022-10-13 12:02:46.101 [679872] 1oiu73-002qrg-V8 malware acl condition: clamd /run/clamav/clamd.ctl : unable to connect to UNIX socket (/run/clamav/clamd.ctl): Connection refused

і, якщо не почистити вручну paniclog, то кожен день будемо отримувати такі сповіщення:

Читати далі →

Цей запис оприлюднено у Почтовые системы, Разное, мелочи о автором skeletor.

Нещодавно дізнався про configuration registry у cisco router’ах (у свічів такого параметру немає). Якщо коротко, то це означає, як і з якими параметрами буде завантажено

Cisco IOS. Щось на зразок grub boot options у Linux/Solaris.

Неправильно виставлений configuration registry може призводити до того, що поточний налаштування не зберігаються, навіть якщо ви виконуєте wr mem або copy run start. Згідно з документацією якщо він має значення 0x2142, то він ігнорує всі зміни, бо там чітко вказано:

Ignores the contents of Non-Volatile RAM (NVRAM) (ignores configuration)

Цей запис оприлюднено у Cisco о автором skeletor.

testdisk

TestDisk is powerful free data recovery software! It was primarily designed to help recover lost partitions and/or make non-booting disks bootable again when these symptoms are caused by faulty software: certain types of viruses or human error (such as accidentally deleting a Partition Table).

Partition table recovery using TestDisk is really easy.

ddrescue

GNU ddrescue is a data recovery tool. It copies data from one file or block device (hard disc, cdrom, etc) to another, trying to rescue the good parts first in case of read errors.

dd_rescue

Like dd, dd_rescue does copy data from one file or block device to another. You can specify file positions (called seek and Skip in dd).

More recover tools

Цей запис оприлюднено у Разное, мелочи о автором skeletor.

BCC is a toolkit for creating efficient kernel tracing and manipulation programs, and includes several useful tools and examples. It makes use of extended BPF (Berkeley Packet Filters), formally known as eBPF, a new feature that was first added to Linux 3.15. Much of what BCC uses requires Linux 4.1 and above.

bpftrace is a high-level tracing language for Linux enhanced Berkeley Packet Filter (eBPF) available in recent Linux kernels (4. x)

Цей запис оприлюднено у Linux, Разное, мелочи, Шлюз, инет о автором skeletor.

Дана стаття є вільним перекладом цієї .

Якщо вас якимось чином не влаштовує стандартний стек TCP, то, починаючи з 13.0, можна використовувати свій власний. В даній статті ми розглянемо RACK-TLP TCP стек. Основна суть якого, в передачі timestamps, і при втраті пакету за рахунок цього швидше відновлюється передача даних. Тобто, даний стек буде біль ефективним в мережах з частими обривами звʼязку. У стабільних мережах, його немає сенсу застосовувати.

Читати далі →

Цей запис оприлюднено у test о автором skeletor.
1) Install Linux (Debian)
2) Install grub-iso
3) upload liveCD mfsBSD.iso
4) set network settings via kFreeBSD. mfsbsd.ifconfig in /boot/grub/grub.cfg
menuentry "$file1" {
set isofile=/boot/images/$file1
loopback loop (hd0,1)\$isofile
kfreebsd (loop)/boot/kernel/kernel.gz -v
kfreebsd_module (loop)/boot/kernel/ahci.ko
kfreebsd_module (loop)/mfsroot.gz type=mfs_root
set kFreeBSD.vfs.root.mountfrom="ufs:/dev/md0"
set kFreeBSD.mfsbsd.hostname="$hostname"
set kFreeBSD.mfsbsd.mac_interfaces="ext1"
set kFreeBSD.mfsbsd.ifconfig_ext1_mac="${iface_mac}"
set kFreeBSD.mfsbsd.ifconfig_ext1="inet $ip/${ip_mask_short}"
set kFreeBSD.mfsbsd.defaultrouter="${ip_default}"
set kFreeBSD.mfsbsd.nameservers="8.8.8.8 1.1.1.1"
set kFreeBSD.mfsbsd.ifconfig_lo0="DHCP"
...
}
5) Reboot

Даний мануал не мій, знайшов в мережі інтернет.

Цей запис оприлюднено у FreeBSD, Разное, мелочи о автором skeletor.

Одразу скажу, що нормального вирішення саме по квотам для цілого домену я не знайшов, тому зробив декілька workaround’ів. Я використовую звʼязку exim (+dovecot delivery) + dovecot + postfixadmin.

postfixadmin

Тут все достатньо просто. Вмикаємо підтримку квот в конфігу:

$CONF['quota'] = 'YES';
$CONF['domain_quota'] = 'YES';

Читати далі →

Цей запис оприлюднено у Почтовые системы о автором skeletor.

Тут будуть описані деякі методи, які краще використовувати у HighLoad, замість класичних, оскільки вони менше навантажують ПЗ.

  • truncate

Дозволяє обрізати файл до розміру, який вказано, наприклад, до 5Gb (зараз файл займає, наприклад, 10Gb):

$ truncate -s 5G file

Зауваження.

Чим цей метод краще, ніж, echo > file. Тим, що echo це робить дуже агресивно і дуже навантажує диски, а також блокує файловий дескриптор. truncate можна виконувати, наприклад, поєтапно, за 1 раз “обрізаючи” по

1Gb, або менше.

Читати далі →

Цей запис оприлюднено у Базы данных, Разное, мелочи о автором skeletor.

Не так багато існує варіантів, щоб реалізувати тему, тому запишу сюди:

  • nginx + https://github.com/zhouchangxun/ngx_healthcheck_module
  • envoy ( https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/udp_filters/udp_proxy )
  • haproxy 2.3+ ( https://www.haproxy.com/blog/announcing-haproxy-2-3/ )
  • dns proxy https://github.com/AdguardTeam/dnsproxy
Цей запис оприлюднено у Разное, мелочи о автором skeletor.

Якщо у вас при завантаженні ОС kernel panic на якийсь модуль ядра, то це достатньо просто відключити в grub’і:

-B disable-mpt_sas=true

, де mpt_sas – імʼя модуля ядра

Цей запис оприлюднено у Solaris, Разное, мелочи о автором skeletor.

Article — Немного практической анонимности: DoH на OpenWRT.

Тема анонимности в сети Интернет будет жить вечно. Этому неоспоримому факту благоприятно способствуют … ( я позже придумаю, что способствует, этому факту , а также продолжу философствовать на тему блаприятности, а сейчас — ближе к телу сути, потому что на предисловие не хочется тратить время и фантазию
Сейчас у меня появилось желание поймать хайп от написания статьи, а желания должны исполняться.
Наверное, сейчас невозможно найти пользователя этого (и не только этого) форума, который не слышал о технологии DNS over HTTPS (DoH). Название говорит само за себя: вся суть заключается в пропускании запросов DNS не через традиционный 53 порт по протоколу UDP, а через шифрованный HTTPS. Запросы DNS при этом минуют сервера провайдера, что делает нашу жизнь в Интернете чуточку более

приятной

приватной.
Технология DoH уже более полугода встроена в популярные браузеры, но как быть с DNS — запросами от других приложений ? Ответ прост: можно установить специальные приложения в операционную систему либо на роутер, а лучше настроить перехват DNS — трафика везде, где только можно, руководствуясь надёжным принципом всех времён и народов — лучше перебздеть, чем недобздеть
В этой статье я опишу процесс установки и настрйки программы Dns-Crypt_v.2 на OpenWRT — операционную систему, которой управляются роутеры.
Иногда для неподггтовленного пользователя, впервые столкнувшегося с незнакомой операционной системой, установка и настройка программ связана с преодолением так называемого «порога вхождения», под которым подразумевается ознакомление и привыкание к незнакомой среде. И для того, чтобы статья была предельно понятной любому новичку, считаю необходимым описать план действий.

  1. Сборка и установка операционной системы OpebWRT на роутер в данной статье описываться НЕ будет: предполагается, что на маршрутизаторе пользователя уже хозяйничает Linux.
  2. Установка приложений в операционной системе OpenWRT осуществляется приложением opkg — аналогом Debian-овского apt или yum из RedHat-подобных систем.
  3. Настройка программы Dns-Crypt_v.2 после установки заключается в редактировании четырёх текстовых файлов:

# vi /etc/config/dnscrypt-proxy.toml​

# vi /etc/config/dhcp​

# vi /etc/config/firewall​

# vi /etc/config/network​

4. Последним этапом является проверка корректности настроек.​

5. Запрет использования собственных DNS-настроек на клиентах​

Установка приложения Dns-Crypt_v.2 в операционной системе OpenWRT .

Установка Dns-Crypt_v.2 на OpenWRT осуществляется последовательным выполнением нескольких команд:

Code:

# opkg update
# opkg install ca-bundle
# opkg install wget                            зависимости: libpcre  libopenssl1.1.
# opkg install mc                               зависимости: terminfo.   zlib  libffi  libattr  glib2  libncurses6  librt  libuuid1  libblkid1 libmount1  libmbedtls12  libssh3-1
# opkg install dnsmasq-full              зависимости: kmod-nfnetlink. libnfnetlink0. kmod-nf-conntrack-netlink  libmnl0  libnetfilter-conntrack3  libgmp10  libnettle7. kmod-ipt-ipset.
# opkg install dnscrypt-proxy2        зависимости: ca-bundle

Несколько примечаний для новичков:
Описанные выше команды предусматривают обновление и установку не только пакета dnscrypt-proxy2, но и двухпанельного файлового менеджера mc, утилиты для скачивания файлов wget, полного пакета dnsmasq-full вместо кастомизированного dnsmasq. Дополнительный софт нужет только для удобства работы на роутере, его установка не обязательна.
Кроме того, может возникнуть вполне закономерный вопрос: » Зачем упоминать зависимости пакетов ?» Действительно, при установке приложений непосредственно в уже установленную на маршрутизатор систему дополнительные сведения о зависимостях не нужны — программа установки «подтянет» и установит их автоматически. Но, возможно среди читателей найдутся пользователи, которые изъявят желание собрать прошивку из исходников или из образа ImageBuilder. В этом случае знание зависимостей просто необходимо для правильной, корректно работающей прошивки.

Настройка программы Dns-Crypt_v.2 после установки.

Скачиваем конфиг:
# wget -O /etc/config/dnscrypt-proxy.toml [URL]https://raw.githubusercontent.com/blackcofee/guides/master/opt/etc/dnscrypt-proxy.toml[/URL]
Данный файл является файлом конфигурации утилиты dnscrypt-proxy. В нём производятся основные настройки.
Данная версия конфигурационного файла настроена таким образом, чтобы использовать только сервера от CloudFlare — 1.1.1.1 и Google.

Вносим изменения в конфигурационный файл, используя текстовый редактор vi:
# vi /etc/config/dnscrypt-proxy.toml

server_names = [‘cloudflare’, ‘google’, ‘yandex’]
В этом-же файле необходимо раскомментировать строку
Обратить внимание на изменение адреса:
listen_addresses = ['127. 0.0.53:53']
и закомментировать строку:
##listen_addresses = ['127.0.0.1:65053']

Пример:
server_names = [‘cloudflare’, ‘google’, ‘yandex’]
listen_addresses = [‘127.0.0.53:53’]

Если же хотите использовать все имеющиеся сервера, то стоит закомментировать данную строку поставив знак решетки:
#server_names =

В том случае, если на роутере установлен TOR-прокси, то желательно произвести дополнительные изменения в данном файле:

Code:

## Раскомментируйте следующую строку, чтобы направить все TCP-соединения на локальный узел Tor
## Tor не поддерживает UDP, поэтому установите `force_tcp ' в 'true'.
force_tcp = true
proxy = 'socks5://127.0.0.1:9050'

И наконец проверка корректности синтаксиса файла :
# dnscrypt-proxy -config /etc/config/dnscrypt-proxy.toml -check
Желаемый ответ:

Code:

[2020-04-07 21:23:07] [NOTICE] dnscrypt-proxy 2.0.42
[2020-04-07 21:23:07] [NOTICE] Network connectivity detected
[2020-04-07 21:23:07] [NOTICE] Source [public-resolvers] loaded
[2020-04-07 21:23:07] [NOTICE] Source [relays] loaded
[2020-04-07 21:23:07] [NOTICE] Configuration successfully checked

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

Редактирование второго файла /etc/config/dhcp
сводится к следующему:
# vi /etc/config/dhcp

Code:

config dnsmasq
    ...
    # Ignore ISP's DNS:
    option noresolv '1'
    # Change /etc/resolv.conf to direct local router processes to use local dnsmasq:
    option localuse '1'
    # Don't forward RFC 1918 private addresses and RFC 6761 top level domains
    option boguspriv '1'
    # Also don't forward these local zones to the upstream resolver:
    # The local domain (e.g. /lan/) is already automatically added
    list server '/internal/'
    list server '/intranet/'
    list server '/private/'
    list server '/workgroup/'
    list server '/10.in-addr.arpa/'
    list server '/16.172.in-addr.arpa/'
    list server '/168.192.in-addr.arpa/'
    list server '/254.169.in-addr.arpa/'
    list server '/d.f.ip6.arpa/'
    # Upstream dnscrypt-proxy resolver to use for queries:
    list server '127.0.0.53'

После внесения изменений неплохо произвести перезагрузку программы dnsmasq
/etc/init. d/dnsmasq restart
А также просмотреть логи dnsmasq :
logread -l 100 | grep dnsmasq

Проверка:
# logread | grep -n «using nameserver»
Желаемый ответ:
215:Wed Apr 8 00:01:11 2020 daemon.info dnsmasq[869]: using nameserver 127.0.0.53#53
296:Wed Apr 8 00:01:29 2020 daemon.info dnsmasq[1473]: using nameserver 127.0.0.53#53

Третий редактируемый файл — конфигурационный файл фаерволла /etc/config/firewall
# vi /etc/config/firewall:

Здесь попосту нужно дописать следующие разделы, описывающие «взаимоотношения» iptables и dnscrypt-proxy2.
Данные настройки можно также осуществить через WEB-интерфейс роутера, но в данном случае я предпочитаю консоль.

Code:

config redirect
    option name 'Divert-DNS, port 53'
    option src 'lan'
    option proto 'tcp udp'
    option src_dport '53'
    option dest_port '53'
    option target 'DNAT'
config redirect
    option name 'Divert-DNS, port 853'
    option src 'lan'
    option proto 'tcp udp'
    option src_dport '853'
    option dest_port '853'
    option target 'DNAT'
config redirect
    option name 'Divert-DNS, port 5353'
    option src 'lan'
    option proto 'tcp udp'
    option src_dport '5353'
    option dest_port '5353'
    option target 'DNAT'

После внесения изменений желательно произвести перезагрузку фаерволла:
/etc/init. d/firewall reload

И наконец, последний, четвёртый файл конфигурации сети /etc/config/network

# vi /etc/config/network

Здесь :
в раздел config interface ‘wan’ записать строку, запрещающую обращаться к DNS провайдера:
option peerdns '0'

Пример:

Code:

onfig interface 'wan'
  .....
        option peerdns '0'
   .....

В случае, если роутер получает Интернет от двух и более провайдеров, то такую строчку необходимо дописать в блок каждого WAN, как бы он не назывался в системе, например:

Запрет использования собственных DNS-настроек на клиентах

В некоторых случаях требуется, чтобы клиенты в локальной сети не использовали сторонние DNS-сервисы.
Это может быть полезным для медиаплееров с намертво вшитыми DNS-серверами или хитрые клиенты,
пытающиеся обойти DNS-фильтрацию, настроенную на роутере.
Можно перехватывать DNS-запросы от клиентов и направлять их на роутер.
Открываем файл /etc/firewall.user для редактирования:

# vi /etc/firewall.user

И вставляем содержимое ниже:

Code:

### Redirect DNS
iptables -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)

Осталось запустить программу и установить её в автозагрузку, после чего перезагрузить роутер:

Code:

# /etc/init.d/dnscrypt-proxy enable
# /etc/init.d/dnscrypt-proxy start
Перезагружаем роутер:
# reboot

Проверяем корректность настроек:

Я осуществляю проверку с особым пристрастием.
Привожу вкратце свои команды, а также правильные и неправильные ответы на них:

# dnscrypt-proxy -resolve google.com
Resolving [google.com]
НЕПРАВИЛЬНЫЙ ОТВЕТ, так как упоминается ДНС провайдера:
Domain exists: yes, 4 name servers found
Canonical name: google. com.
IP addresses: 172.217.21.174, 2a00:1450:400f:80a::200e
TXT records: facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95 v=spf1 include:_spf.google.com ~all docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e docusign=1b0a6754-49b1-4db5-8540-d2c12664b289 globalsign-smime-dv=CDYX+XFHUw2wml6/Gb8+59Bsh41KzUr6c1l2BPvqKX8=
Resolver IP: 217.66.153.214 (host-214-153-66-217.spbmts.ru.)

ПРАВИЛЬНЫЙ ОТВЕТ, так как НЕ упоминается ДНС провайдера:
Resolving [google.com]
Domain exists: yes, 4 name servers found
Canonical name: google.com.
IP addresses: 172.217.194.113, 172.217.194.100, 172.217.194.101, 172.217.194.139, 172.217.194.138, 172.217.194.102, 2a00:1450:4010:c05::66
TXT records: docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e v=spf1 include:_spf.google.com ~all globalsign-smime-dv=CDYX+XFHUw2wml6/Gb8+59Bsh41KzUr6c1l2BPvqKX8= docusign=1b0a6754-49b1-4db5-8540-d2c12664b289 facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95
Resolver IP: 163. 172.180.125 (sfw.scaleway-fr.dnscrypt.info.)

# ping ya.ru
PING ya.ru (87.250.250.242): 56 data bytes
64 bytes from 87.250.250.242: seq=0 ttl=63 time=78.243 ms
64 bytes from 87.250.250.242: seq=1 ttl=63 time=91.504 ms
64 bytes from 87.250.250.242: seq=2 ttl=63 time=77.682 ms
НЕПРАВИЛЬНЫЙ ОТВЕТ:
ping: bad address ‘ya.ru’

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ПРОВЕРКА ИСПОЛЬЗУЕМЫХ ИНТЕРНЕТ-СОЕДИНЕНИЕМ ДНС-СЕРВЕРОВ
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Проверка логов — РАЗ:

# logread | grep -n "using nameserver"
НЕПРАВИЛЬНЫЙ ОТВЕТ, так как упоминается ДНС провайдера:
215:Tue Apr 7 22:49:16 2020 daemon.info dnsmasq[868]: using nameserver 127.0.0.1#5353
272:Tue Apr 7 22:49:26 2020 daemon.info dnsmasq[868]: using nameserver 127.0.0.1#5353
300:Tue Apr 7 22:49:29 2020 daemon.info dnsmasq[868]: using nameserver 127.0.0.1#5353
302:Tue Apr 7 22:49:29 2020 daemon.info dnsmasq[868]: using nameserver 192. 168.8.1#53
303:Tue Apr 7 22:49:29 2020 daemon.info dnsmasq[868]: using nameserver 192.168.3.1#53
316:Tue Apr 7 22:50:39 2020 daemon.info dnsmasq[1473]: using nameserver 127.0.0.1#5353
325:Tue Apr 7 22:50:39 2020 daemon.info dnsmasq[1473]: using nameserver 127.0.0.1#5353
327:Tue Apr 7 22:50:39 2020 daemon.info dnsmasq[1473]: using nameserver 192.168.8.1#53
328:Tue Apr 7 22:50:39 2020 daemon.info dnsmasq[1473]: using nameserver 192.168.3.1#53

ПРАВИЛЬНЫЙ ОТВЕТ, так как НЕ упоминается ДНС провайдера:
В логах не должно быть ничего кроме:
215:Wed Apr 8 00:01:11 2020 daemon.info dnsmasq[869]: using nameserver 127.0.0.53#53
296:Wed Apr 8 00:01:29 2020 daemon.info dnsmasq[1473]: using nameserver 127.0.0.53#53

______________________________________________________________________________________
Проверка логов — ДВА:

2.1 Проверка dnsmasq
# logread -l 100 | grep dnsmasq
НЕПРАВИЛЬНЫЙ ОТВЕТ, так как упоминается ДНС провайдера:
daemon. info dnsmasq[1948]: using nameserver 192.168.8.1#53
daemon.info dnsmasq[1948]: using nameserver 192.168.3.1#53

ПРАВИЛЬНЫЙ ОТВЕТ —
daemon.info dnsmasq[1473]: using nameserver 127.0.0.53#53

2.2 Проверка dnsmasq
# netstat -nap | grep LISTEN | grep dnsmasq

tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 812/dnscrypt-proxy
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1476/dnsmasq
tcp 0 0 192.168.1.1:53 0.0.0.0:* LISTEN 1476/dnsmasq
tcp 0 0 192.168.3.195:53 0.0.0.0:* LISTEN 1476/dnsmasq
tcp 0 0 ::1:53 :::* LISTEN 1476/dnsmasq
tcp 0 0 fe80::16dd:a9ff:fef4:ef28:53 :::* LISTEN 1476/dnsmasq
tcp 0 0 fdcd:7253:658a::1:53 :::* LISTEN 1476/dnsmasq
tcp 0 0 fe80::16dd:a9ff:fef4:ef28:53 :::* LISTEN 1476/dnsmasq
tcp 0 0 fe80::16dd:a9ff:fef4:ef29:53 :::* LISTEN 1476/dnsmasq

Click to expand. ..

Настройка маршрутизатора OpenWRT с помощью службы KeepSolid SmartDNS

Перед изменением настроек DNS OpenWRT

  • Рекомендуется записать текущие настройки маршрутизатора OpenWRT перед началом его настройки с помощью службы KeepSolid SmartDNS. Эта информация может понадобиться вам на тот случай, если вы захотите вернуться к исходным настройкам в будущем.
  • Чтобы разблокировать потоковые сервисы с помощью нашего приложения KeepSolid SmartDNS, вам необходимо зарегистрировать свой IP-адрес . Узнайте, как управлять своим IP-адресом в приложении KeepSolid SmartDNS и в личном кабинете KeepSolid здесь.

Как настроить DNS OpenWRT

  1. Войдите в свой маршрутизатор OpenWRT Панель администратора .
  2. Перейдите к Network > Interfaces > LAN settings.

    Примечание . Если ваше интернет-соединение использует статический IP-адрес, вам может потребоваться настроить OpenWRT DNS в настройках Network > Interfaces > WAN .

  3. Выберите вкладку Общие настройки .
  4. Перейти к Использовать настраиваемые DNS-серверы и введите адреса DNS-серверов службы KeepSolid SmartDNS:

    62.210.136.158  
    69.162.67.202  

    , перед полем Использовать настраиваемые DNS-серверы.

  5. Сохраните изменения, нажав Сохранить и применить .
  6. Обязательно перезагрузите маршрутизатор, чтобы изменения вступили в силу в сети.

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

Как заблокировать Google DNS на маршрутизаторе OpenWRT

Мы рекомендуем вам заблокировать Google DNS ( 8. 8.8.8 и 8.8.4.4 ) на вашем маршрутизаторе OpenWRT, как и некоторые приложения на таких устройствах, как Roku TV, Google Chromecast, Amazon Fire TV, Samsung Smart TV с ОС Tizen и т. д. по умолчанию настроены на использование Google DNS. Поэтому для потоковой передачи мультимедиа без географических ограничений выполните следующие действия, чтобы заблокировать Google DNS: 

  1. Перейдите к настройкам OpenWRT и выберите Network > Firewall > Traffic Rules > New forward rule и заполните следующие поля:
    • Имя : Введите пользовательское правило, например DNS.
    • Исходная зона : локальная сеть
    • Зона назначения : wan.
  2. Нажмите Добавить и отредактировать .
  3. Заполните следующую информацию:
    • Имя : DNS
    • Ограничить семейство адресов : Выберите опцию IPv4
    • Протокол : Выберите TCP+UDP
    • Совпадение с типом ICMP : любой
    • Исходная зона : Выберите локальную сеть
    • MAC-адрес источника : любой
    • Адрес источника : любой
    • Зона назначения : Выберите wan
    • Адрес получателя : Выберите Пользовательский и введите 8. 8.8.8 .
    • Действие : Отклонить.
  4. Нажмите Сохранить и применить .
  5. Повторить шаги 1-3 этой инструкции, но в поле Адрес назначения ввести 8.8.4.4 .
  6. Щелкните Сохранить и применить еще раз, чтобы также сохранить второе правило.

Запустите локальный преобразователь DNS с помощью OpenWRT

Запустите локальный преобразователь DNS с помощью OpenWRT
Понедельник, 29 августа. 2011

OpenWRT — это фантастический дистрибутив с открытым исходным кодом для встраиваемых устройств, таких как беспроводные маршрутизаторы серии Linksys WRT-54G. Одной из его многочисленных функций является использование dnsmasq, комбинированного сервера DNS и DHCP, полезного в небольших сетях, которые находятся за соединением NAT.

Недостатком dnsmasq на OpenWRT, однако, является то, что конфигурация по умолчанию использует DNS-серверы вашего интернет-провайдера, что может быть проблематично, если ваш интернет-провайдер, как и многие другие, использует плохие привычки перенаправлять несуществующие домены на свои серверы или вносит в черный список / подвергает цензуре веб-сайты, не спрашивая вас.

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

Я решил использовать MaraDNS из-за его небольшого размера и хорошей истории безопасности, но поскольку он не имеет встроенного DHCP-сервера dnsmasq и интеграции с /etc/hosts, я решил, что буду запускать их оба одновременно. Это создало несколько проблем, поскольку dnsmasq по умолчанию привязывается ко всем интерфейсам.

Мой сетевой адрес 10.4.0.0/255.255.255.0; IP-адрес маршрутизатора находится на 10.4.0.1. Я решил дать ему второй адрес 10.4.0.2, где марадны будут слушать — вместо этого я мог бы легко дать ему фиктивный внутренний адрес. djbdns будет ограничен прослушиванием только на 127.0.0.1,
петлевой адрес и 10.4.0.1.

Шаг первый, добавьте виртуальный адрес 10. 4.0.2. Добавьте эти строки в ваш файл /etc/config/network:

config ‘псевдоним’
опция ‘интерфейс’ ‘lan’
вариант «прото» «статический»
опция «сетевая маска» «255.255.255.0»
option ‘ipaddr’ 10.4.0.2

… а затем запустите /etc/init.d/network restart.

Если все пойдет хорошо, запуск ifconfig -a покажет вам все ваши интерфейсы, включая ваш новый виртуальный интерфейс:

br-lan:1 Link encap:Ethernet HWaddr 00:43:60:72:45:AB
инет-адрес: 10.4.0.2 Bcast: 10.4.0.255 Маска: 255.255.255.0
ВВЕРХ ТРАНСЛЯЦИЯ РАБОТАЕТ MULTICAST MTU:1500 Метрика:1

Шаг второй, настройте dnsmasq для прослушивания только на 127.0.0.1 и 10.4.0.1. Файлы конфигурации OpenWRT не предоставляют никакого способа доступа к параметру —listen-address, поэтому необходимо будет добавить его в строку запуска в сценарии /etc/init.d/dnsmasq:

/usr/sbin/ dnsmasq —listen-address=127. 0.0.1 —listen-address=10.4.0.1 $args && {

Также добавьте опцию nonwildcard 1 в раздел dnsmasq файла /etc/config/dhcp, а затем перезапустите dnsmasq. с перезапуском /etc/init.d/dnsmasq.

Если сейчас запустить netstat -lutpn | grep 53, вы увидите, что dnsmasq привязан только к этим IP-адресам:

tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1915/dnsmasq
TCP 0 0 10.4.0.1:53 0.0.0.0:* ПРОСЛУШИВАТЬ 1915/dnsmasq
udp 0 0 127.0.0.1:53 0.0.0.0:* 1915/dnsmasq
удп 0 0 10.4.0.1:53 0.0.0.0:* 1915/dnsmasq

Шаг третий, установите MaraDNS на свой маршрутизатор:

обновление opkg
opkg install maradns

Затем настройте его для прослушивания только на 10.4.0.2 и для прослушивания запросов только от вашего маршрутизатора, добавив следующее в /etc/mararc

hide_disclaimer=»YES»
chroot_dir=»/etc/maradns»
bind_address=»10.4.0.2″
maradns_uid=65534
dns_port=53
maxprocs=10
random_seed_file=»/dev/urandom»
recursive_acl=»127. 0.0.1,10.4.0.1″
root_servers={}
root_servers[«.»]=»198.41.0.4,128.9.0.107,192.33.4.12,128.8.10.90,192.203.230.10,
192.5.5.241,192.112.36.4,128.63.2.53,192.36.148.17,
192.58.128.30,193.0.14.129,198.32.64.12,202.12.27.33″

Установите MaraDNS для запуска при загрузке с помощью ln -s /etc/init.d/maradns /etc/rc.d/S50maradns, а затем запустите его, используя /etc/init.d/maradns start

Теперь запустите netstat -lutpn | egrep «maradns|zoneserver», и вы должны увидеть, что он работает на 10.4.0.2:

TCP 0 0 10.4.0.2:53 0.0.0.0:* ПРОСЛУШИВАТЬ 1889/zoneserver
udp 0 0 10.4.0.2:53 0.0.0.0:* 1883/maradns

Наконец, четвертый шаг — настроить dnsmasq для передачи всех нелокальных DNS-запросов в MaraDNS. Сначала добавьте файл с именем /etc/resolv.maradns со следующим содержимым:

nameserver 10.4.0.2

Затем добавьте следующее в /etc/dnsmasq.conf, чтобы он читал резолверы из этого файла, а не через вашего провайдера.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *