Openwrt dns: [OpenWrt Wiki] DNS and DHCP examples

Содержание

Как настроить DynDNS на OpenWRT?!

Сервисами предоставления динамического DNS — Dynamic Network Services- уже пользуется множество людей. А с ростом количества видеорегистраторов и прочих приблуд, к которым надо иметь доступ из глобальной сети будет ещё больше. По праву самым популярным из них является DynDNS, хотя приведенная ниже инструкция подойдет и для многих других подобных сервисов — no-ip,changeip.com и т.п.

Последовательность действий. Первым делом Вам надо подключиться к консоли OpenWRT. Для этого надо подключиться к устройству по ssh. Если Вы уже настраивали до этого свой маршрутизатор самостоятельно, то у Вас уже должен быть установлен какой-нибудь терминальный клиент типа TeraTerm или Putty. Если нет — то скачиваем и устанавливаем, после чего подключаемся. 

Имя пользователя для авторизации — root. Пароль Вы должны знать, так как он устанавливается пользователем ещё при базовой конфигурации. Первым делом обновляем список пакетов командой:

opkg update

После чего ждем, пока он скачается и обновится:

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

opkg install ddns-scripts
opkg install luci-app-ddns

Первая служит для поддержки сервисов динамических DNS, а второй — модуль для настройки через веб-интерфейс Openwrt luCI.
После их установки заходим через веб-интерфейс в раздел «Services» => «Dynamic DNS»:

Ставим галочку «Enable». В списке «Service» выбираем один из поддерживаемых сервисов. В моем случае — это: dyndns.org.
В поле «Hostname» надо указать Ваше доменное имя, которое зарегистрировано на сервисе,  а в поля «Username» и «Password»  — соответственно имя пользователя и пароль, с которыми Вы там зарегистрированы.
Обратите внимание на поле «Source of IP address» — это выбор метода определения IP-адреса. В большинстве случаев самый оптимальный — «URL» и ниже — ссылка на онлайн-сервис проверки Вашего текущего ай-пи — checkip.dyndns.org.

Остальные параметры оставляем по умолчанию и нажимаем кнопку «Save & Apply».
После этого можно пробовать доступ из Интернета через доменное имя.

Примечание:
Вся текущая конфигурация сервиса находится в файле /etc/config/ddns. Если Вы — фанат консоли — можно настроить DynDNS на OpenWRT с её помощью.
Вот листинг файла с комментариями:

config service «myddns»
option enabled «1»              #включение (1) и отключение (2) службы
option service_name «dyndns.org»     #используемый Вами динамический сервис
option domain «ddddyndyn.dyndns.org»    #Ваше доменное имя
option username «ddddyndyn»      #логин для авторизации на сервисе
option password «passw0rd»       #пароль для авторизации
option ip_source «network»
option ip_network «wan»       #имя интернет-соединения
option force_interval «72»
option force_unit «hours»
option check_interval «10»     #интервал времени для проверки внешнего IP

option check_unit «minutes»       #единицы времени для интервала обновления
#option ip_source «interface»
#option ip_interface «eth0.1»
#option ip_source «web»
#option ip_url «http://checkip.dyndns.org»       #ссылка сервиса проверки внешнего адреса
#option update_url «http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP]»
#option use_https «1»       #использование протокола https
#option cacert «/etc/ssl/certs/cacert.pem»

Расширить OpenWRT DNS с помощью строк для разрешения локального IP-адреса

У меня есть маршрутизатор OpenWRT, действующий как точка доступа Wifi к локальной сети. В настоящее время не задействована фактическая маршрутизация.

IP-адрес интерфейса wlan0 на маршрутизаторе статически установлен в 192.168.120.1 . Dnsmasq работает как служба, предоставляющая DHCP и DNS.

Моя цель — разрешить доступ веб-интерфейсу маршрутизатора ко всем компьютерам сети как http://router.net

вместо того, чтобы набирать 192.168.120.1 .

LuCI , веб-интерфейс openWRT, похоже, позволяет реализовать несколько вариантов.

Мояпервоначальнаяидеязаключаласьвтом,чтоэтодлястатическихлизинговдляDHCP,нодеактивацияпредполагает,чтоонатакжеможетразрешатьустановкуименхостов.

StaticleasesareusedtoassignfixedIPaddressesandsymbolichostnamestoDHCPclients.

ЯввелкакMAC,такиIP-адресwlan0намаршрутизатореитребуемоеимяхоста,ноэтонепривелоктому,чтоpingrouter_static_leaseизноутбукавподсетинесмог.

Второепредположениесостояловтом,чтобыдобавитьстрокук/etc/hostsнамаршрутизаторе,ииз-заdnsmasqонараспространитэтосопоставлениенавсекомпьютерывподсети.

Этотакженедалоожидаемогорезультата.

Третий подход состоял в том, чтобы добавить запись в вышеуказанную форму. Опять же, успех

После установки всех этих параметров я перезапущу маршрутизатор и попробую выполнить ping из компьютера в подсети.

~$ ping router_static_lease
   ping: router_static_lease: Name or service not known
~$ ping router_hostnames
   ping: router_hostnames: Name or service not known
~$ ping router_etc_hosts
   ping: router_etc_hosts: Name or service not known

Запуск dig для этих команд мало помогает, поскольку указывает на распознаватель systemd.

~$ dig router_etc_hosts

; <<>> DiG 9.10.3-P4-Ubuntu <<>> router_etc_hosts
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 22668
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;router_etc_hosts.      IN  A

;; Query time: 841 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Jun 20 15:27:14 CEST 2017
;; MSG SIZE  rcvd: 45

Запуск

~$ systemd-resolve --status однако показывает, что он пытается разрешить с правильным сервером 192.168.120.1 .

~$ systemd-resolve --status
Link 3 (wlp4s0)
      Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.120.1
          DNS Domain: lan

Мой вопрос в том, что я делаю неправильно и что будет правильным способом для достижения этого?

Если вы знаете, как это сделать в командной строке, игнорируя веб-интерфейс, это также будет полезно.

    

Перенаправление DNS-запросов с OpenWrt — localhosts.ru

Не беспокойтесь о пересылке DNS или о внутреннем DNS-сервере OpenWrt, просто обслуживайте существующие DNS-серверы напрямую для ваших DHCP-клиентов. Вы можете сделать это, установив параметр DHCP 6, который будет отформатирован в веб-интерфейсе следующим образом:

6,192.168.32.35,192.168.48.35

Вы можете получить доступ к соответствующей части веб-интерфейса в LuCI, перейдя в Сеть -> Интерфейсы -> LAN -> Прокрутите вниз -> вкладка «Дополнительные настройки»:

Я также должен напомнить вам сделать это только с явного знания и одобрения сетевого администратора вашей компании, ИТ-отдела и т. д.

В качестве альтернативы использованию DHCP-опции 6 вы можете напрямую изменить DNS-серверы, которые использует OpenWrt. Для этого перейдите в веб-интерфейс LuCI к

СетьИнтерфейсыWANредактироватьРасширенные настройки

и снимите флажок Use DNS servers advertised by peer. Затем новое поле опции Use custom DNS servers должен появиться, где вы можете ввести адреса одного или нескольких DNS-серверов по вашему выбору.

Скриншот: настраиваемые DNS-серверы в OpenWrt

Конечно, если у вашего WAN-интерфейса другое имя (например, потому что вы подключены через IPv6), вы должны вместо этого изменить эти настройки для этого интерфейса.

Этот метод имеет общее преимущество: хотя OpenWrt использует ваши настраиваемые DNS-серверы для поиска любого неизвестного адреса, он по-прежнему действует как DNS-сервер для подключенных клиентов. Таким образом, на DNS-запросы самого OpenWrt также отвечают ваши пользовательские DNS-серверы (может быть важно, если вас беспокоит конфиденциальность и, следовательно, вы хотите полностью избежать использования DNS-серверов вашего интернет-провайдера, например).

Другие преимущества включают в себя то, что для всех клиентов используется один DNS-кеш (DNS-кеш OpenWrt), и вы все еще можете использовать OpenWrt. hosts файл для добавления пользовательских записей и т. д.

Я тестировал этот метод только в OpenWrt 15.05 Chaos Calmer, но думаю, он должен работать так же в предыдущих версиях.

[OpenWrt Wiki] Примеры DNS и DHCP

Введение

В этом руководстве представлены наиболее распространенные сценарии настройки dnsmasq и odhcpd, адаптированные для OpenWrt.

Инструкции

Статическая аренда

LuCI → DHCP и DNS → Статическая аренда

Добавьте фиксированный адрес IPv4 192.168.1.22 и имя mydesktop для машины с MAC-адресом 00:11:22:33:44:55 .

 uci добавить хост DHCP
uci set [email protected][-1].name="mydesktop"
uci устанавливает [email protected][-1].dns='1'
uci установить [email protected][-1].mac="00:11:22:33:44:55"
uci установил [email protected][-1].ip="192.168.1.22"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Добавьте фиксированный IPv4 адрес 192.168.1.23 , IPv6 идентификатор интерфейса (суффикс адреса) 23 и имя mylaptop

для машины с MAC-адресом 11:42:503:62 или aa:bb:cc:dd:ee:ff и DUID 000100004fd454041c6f65d26f43 .

 uci добавить хост DHCP
uci set [email protected][-1].name="mylaptop"
uci устанавливает [email protected][-1].dns='1'
uci add_list [email protected][-1].mac="11:22:33:44:55:66"
uci add_list [email protected][-1].mac="aa:bb:cc:dd:ee:ff"
uci установил [email protected][-1].ip="192.168.1.23"
UCI установил [email protected][-1].duid="000100004fd454041c6f65d26f43"
UCI установил [email protected][-1].hostid="23"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить
/etc/init.d/odhcpd перезапустить 

Повторно подключите клиентов, чтобы применить изменения.

Использование нескольких MAC-адресов для каждой записи хоста ненадежно, добавьте отдельную запись хоста для каждого MAC-адреса, если к хосту одновременно подключено более одного интерфейса.

Это реализация опции --dhcp-host .

См. также: аренда odhcpd

Фильтрация MAC-адресов

Игнорировать запросы DHCP от определенных клиентов.

 uci добавить хост DHCP
uci set [email protected][-1].name="mydesktop"
uci установить [email protected][-1].mac="00:11:22:33:44:55"
uci set [email protected][-1].ip="игнорировать"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Игнорировать все запросы DHCP , кроме запросов от известных клиентов, настроенных со статической арендой или /etc/ethers .

 UCI-набор dhcp.lan.dynamicdhcp="0"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Избегайте использования этого в качестве меры безопасности, поскольку клиент по-прежнему может получить доступ к сети со статическим IP-адресом .

Условия гонки с netifd

Устраните состояние гонки с помощью службы netifd и пропустите проверку конкурирующих серверов DHCP .

 UCI-набор dhcp.lan.force="1"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Отсутствует общедоступный префикс

Подавить предупреждения об отсутствии префикса GUA.

 UCI установил dhcp.odhcpd.loglevel="3"
UCI фиксирует DHCP
/etc/init.d/odhcpd перезапустить 

Предоставление маршрута IPv6 по умолчанию с DHCP

Объявите маршрут IPv6 по умолчанию без GUA.

 UCI-набор dhcp.lan.ra_default="1"
UCI фиксирует DHCP
/etc/init.d/odhcpd перезапустить 

Опции DHCP

Параметры DHCP можно настроить в разделе пула DHCP с помощью dhcp_option . Используйте альтернативный шлюз по умолчанию, сервер DNS и сервер NTP , отключите WINS.

 uci add_list dhcp.lan.dhcp_option="3,192.168.1.2"
uci add_list dhcp.lan.dhcp_option="6,172.16.60.64"
uci add_list dhcp.lan.dhcp_option="42,172.16.60.64"
учи add_list dhcp.lan.dhcp_option="44"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Классификация клиентов и индивидуальные опции

Используйте классификатор тегов для создания группы с тегами. Назначьте отдельные параметры DHCP узлам, помеченным тегом tag1 . Укажите пользовательский DNS и, возможно, другие параметры DHCP .

 uci set dhcp.tag1="тег"
UCI установил dhcp.tag1.dhcp_option="6,8.8.8.8,8.8.4.4"
uci добавить хост dhcp
UCI установил [email protected][-1].name="j400"
uci устанавливает [email protected][-1].mac="00:21:63:75:aa:17"
uci установил [email protected][-1].ip="10.11.12.14"
uci устанавливает [email protected][-1].tag="tag1"
uci добавить хост dhcp
UCI установил [email protected][-1].name="j500"
uci установить [email protected][-1].mac="01:22:64:76:bb:18"
UCI установил [email protected][-1].ip="10.11.12.15"
uci устанавливает [email protected][-1].tag="tag1"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Используйте классификатор mac для создания группы с тегами.Назначьте различные параметры DHCP узлам с соответствующими MAC-адресами. Отключите шлюз по умолчанию и укажите пользовательский DNS .

 UCI-набор dhcp.mac1="mac"
UCI установил dhcp.mac1.mac="00:FF:*:*:*:*"
UCI установил dhcp.mac1.networkid="vpn"
uci add_list dhcp.mac1.dhcp_option="3"
uci add_list dhcp.mac1.dhcp_option="6,192.168.1.3"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Используйте параметр DHCP, зависящий от поставщика, для отключения NetBios через TCP для клиентов Windows

Ссылка: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dhcpe/ef7676b1-5568-4afc-836a-7eca63a10a3a

Если вы хотите отключить NetBIOS через TCP на клиентах Windows, это возможно с помощью следующей опции DHCP , зависящей от поставщика:

Значение Эффект
0x00000000 Включить NetBIOS через TCP / IP
0x00000001 Игнорировать настройку
0x00000002 Отключить NetBIOS через TCP / IP

Его нужно донести до клиентов, у которых есть «MSFT 5.0» Идентификатор класса поставщика в их запросах DHCP .

Этого можно добиться с помощью следующего фрагмента конфигурации:

 uci set dhcp.msft="vendorclass"
UCI установил dhcp.msft.networkid="msft"
UCI устанавливает dhcp.msft.vendorclass="MSFT"
uci add_list dhcp.msft.dhcp_option="поставщик:MSFT,1,2i"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Пул DHCP для большой сети

 # ipcalc.sh 10.0.0.0 255.0.0.0 $((22*2**16+1)) 253
IP=10.0.0.0
СЕТЕВАЯ МАСКА=255.0.0,0
ВЕЩАНИЕ=10.255.255.255
СЕТЬ=10.0.0.0
ПРЕФИКС=8
СТАРТ=10.22.0.1
КОНЕЦ=10.22.0.254

uci установить dhcp.lan.start="$((22*2**16+1))"
UCI установил dhcp.lan.limit="253"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Имена хостов

LuCI → Сеть → Имена хостов

Определите собственное доменное имя и соответствующую запись PTR — назначьте IPv4 адрес 192.168.1.23 и IPv6 адрес fdce::23 доменному имени mylaptop и создайте соответствующие обратные записи.Вы также можете использовать это для повторной привязки доменных имен. Служба инициализации объединяет все записи в дополнительный файл hosts, используемый с параметром --addn-hosts .

 uci добавить домен dhcp
uci set [email protected][-1].name="mylaptop"
uci установить [email protected][-1].ip="192.168.1.23"
uci добавить домен dhcp
uci set [email protected][-1].name="mylaptop"
uci установить [email protected][-1].ip="fdce::23"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Обязательно настройте статическую аренду, чтобы избежать возможных коллизий из-за условий гонки.

А и AAAA RR

Это реализация опции --address . Вернуть 10.10.10.1 в домене запроса домашний и поддомен *.home .

 uci add_list [email protected][0].address="/home/10.10.10.1"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

СРВ

руб.

Это реализация опции --srv-host . Определите запись SRV для SIP через UDP с портом по умолчанию 5060 на хосте pbx.mydomain.com , с классом 0 и весом 10 .

 uci добавить dhcp srvhost
uci устанавливает [email protected][-1].srv="_sip._udp.mydomain.com"
uci установить [email protected][-1].target="pbx.mydomain.com"
UCI установил [email protected][-1].port="5060"
uci установить [email protected][-1].class="0"
uci устанавливает [email protected][-1].weight="10"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

CNAME

руб.

Это реализация параметра --cname . Запись канонического имени указывает, что доменное имя является псевдонимом для другого домена, «канонического» домена.Укажите, что сервер FTP находится на том же хосте, что и веб-сервер.

 uci добавить cname dhcp
uci set [email protected][-1].cname="ftp.example.com"
uci set [email protected][-1].target="www.example.com"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Обязательно настройте имена хостов, так как от них зависит CNAME.

МХ РР

Это реализация опции --mx-host . Устраните проблемы, вызванные разделением DNS для вашего собственного домена, если вы используете почтовый сервер для своего домена за брандмауэром.Убедите эту почтовую программу, что она действительно авторитетна для вашего домена, иначе sendmail может не найти MX-запись, чтобы подтвердить, что домен является ретранслятором MX, и жаловаться на несуществующий домен адреса отправителя.

 uci добавить dhcp mxhost
uci установить [email protected][-1].domain="yyy.zzz"
uci установить [email protected][-1].relay="my.host.com"
uci установить [email protected][-1].pref="10"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Загрузка TFTP

Прямые запросы BOOTP к серверу TFTP .Скажите клиенту загрузить pxelinux.0 с сервера по адресу 192.168.1.2 и смонтировать root из /data/netboot/root на том же сервере.

 UCI установить dhcp.linux = "загрузка"
uci установить dhcp.linux.filename="/tftpboot/pxelinux.0"
UCI установил dhcp.linux.serveraddress="192.168.1.2"
uci set dhcp.linux.servername="fileserver"
uci add_list dhcp.linux.dhcp_option="опция:корневой путь,192.168.1.2:/данные/netboot/root"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Несколько экземпляров DHCP/DNS-сервера/сервера пересылки

Если вам нужно несколько серверов пересылки DNS с разными конфигурациями или сервер DHCP с разными наборами файлов аренды.

Запуск нескольких экземпляров dnsmasq в качестве сервера пересылки DNS и/или сервера DHCPv4, каждый из которых имеет собственную конфигурацию и список аренды, можно настроить, создав несколько разделов dnsmasq. Обычно в таких конфигурациях каждый раздел dnsmasq будет привязан к определенному интерфейсу с помощью списка интерфейсов; назначение разделов, таких как dhcp , host и т. д., конкретному экземпляру dnsmasq выполняется с помощью параметра instance . По умолчанию dnsmasq добавляет петлевой интерфейс в список интерфейсов для прослушивания, когда используется параметр --interface ; поэтому петлевой интерфейс необходимо исключить в одном из экземпляров dnsmasq, используя список notinterface.

Это примеры настроек для нескольких экземпляров dnsmasq, каждый из которых имеет собственный раздел dhcp. Экземпляр dnsmasq lan_dns привязан к интерфейсу lan , а экземпляр dnsmasq guest_dns привязан к интерфейсу guest .

 # Удалить экземпляры по умолчанию
пока uci -q удалить [email protected][0]; делать :; Готово
в то время как uci -q удалить [email protected][0]; делать :; Готово

# Использовать имена сетевых интерфейсов для имен экземпляров DHCP/DNS
INST="гость локальной сети"
для INST в ${INST}
делать
UCI установил dhcp.${INST}_dns="dnsmasq"
uci устанавливает dhcp.${INST}_dns.domainneeded="1"
uci устанавливает dhcp.${INST}_dns.boguspriv="1"
uci установить dhcp.${INST}_dns.filterwin2k="0"
uci устанавливает dhcp.${INST}_dns.localise_queries="1"
uci устанавливает dhcp.${INST}_dns.rebind_protection="1"
uci устанавливает dhcp.${INST}_dns.rebind_localhost="1"
uci устанавливает dhcp.${INST}_dns.local="/${INST}/"
uci устанавливает dhcp.${INST}_dns.domain="${INST}"
uci устанавливает dhcp.${INST}_dns.expandhosts="1"
uci устанавливает dhcp.${INST}_dns.nonegcache="0"
uci устанавливает dhcp.${INST}_dns.authoritative="1"
UCI установил dhcp.${INST}_dns.readethers="1"
uci устанавливает dhcp.${INST}_dns.leasefile="/tmp/dhcp.leases.${INST}"
uci установить dhcp.${INST}_dns.resolvfile="/etc/resolv.conf.${INST}"
uci устанавливает dhcp.${INST}_dns.nonwildcard="1"
uci add_list dhcp.${INST}_dns.interface="${INST}"
uci add_list dhcp.${INST}_dns.notinterface="loopback"
uci установить DHCP.${INST}="DHCP"
uci устанавливает dhcp.${INST}.instance="${INST}_dns"
uci установить dhcp.${INST}.interface="${INST}"
uci установить dhcp.${INST}.start="100"
uci установить dhcp.${INST}.limit="150"
uci устанавливает dhcp.${INST}.leasetime="12h"
ln -f -s /tmp/разрешение.conf.d/resolv.conf.auto /etc/resolv.conf.${INST}
Готово
uci -q удалить [email protected][0].notinterface
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Веб-интерфейс LuCI не был обновлен для поддержки нескольких экземпляров dnsmasq.

Регистрация DNS-запросов

LuCI → Сеть → DHCP и DNS → Общие настройки → Журнал запросов

Зарегистрируйте запросов DNS для устранения неполадок.

 uci установить [email protected][0].логзапросы = "1"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

См. также: Чтение журналов

Отключение роли DHCP

Это изменение отключает DHCP на указанном интерфейсе, но оставляет доступными службы DNS .

 UCI-набор dhcp.lan.ignore="1"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить
/etc/init.d/odhcpd перезапустить 

Отключение IPv6 DNS для odhcpd

Остановить рекламу IPv6 DNS с DHCPv6/RA.

 uci установить dhcp.lan.dns_service="0"
UCI установил dhcp.lan.ra_dns="0"
UCI фиксирует DHCP
/etc/init.d/odhcpd перезапустить 

Отключение роли DNS

Это полезно, когда вы просто хотите раздавать адреса клиентам, не выполняя DNS от dnsmasq.

 /etc/init.d/dnsmasq остановить
uci устанавливает [email protected][0].localuse="0"
uci установить [email protected][0].port="0"
UCI фиксирует DHCP
/etc/init.d/dnsmasq начало 

Замена dnsmasq на odhcpd и Unbound

Удалите dnsmasq и используйте odhcpd для DHCP и DHCPv6.

 обновление opkg
opkg удалить dnsmasq odhcpd-ipv6only
opkg установить odhcpd
uci -q удалить [email protected][0]
uci установить dhcp.lan.dhcpv4="сервер"
UCI установить dhcp.odhcpd.maindhcp = "1"
UCI фиксирует DHCP
/etc/init.d/odhcpd перезапустить 

Использовать Unbound для DNS .

 обновление opkg
opkg установить unbound-control unbound-daemon
uci set [email protected][0].dhcp_link="odhcpd"
uci set [email protected][0].unbound_control="1"
uci фиксирует несвязанный
/etc/init.d/неограниченный перезапуск
UCI установил dhcp.odhcpd.leasetrigger="/usr/lib/unbound/odhcpd.sh"
UCI фиксирует DHCP
/etc/init.d/odhcpd перезапустить 

Предоставление пользовательского DNS с помощью DHCP

Объявить пользовательские DNS серверов с DHCP .

 # Настроить dnsmasq
uci -q удалить dhcp.lan.dhcp_option
uci add_list dhcp.lan.dhcp_option="6,8.8.8.8,8.8.4.4"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить

# Настроить odhcpd
uci -q удалить dhcp.lan.dns
uci add_list dhcp.lan.dns="2001:4860:4860::8888"
uci add_list DHCP.lan.dns="2001:4860:4860::8844"
UCI фиксирует DHCP
/etc/init.d/odhcpd перезапустить 

Повторно подключите клиентов, чтобы применить изменения.

Предоставление DNS провайдера с DHCP

Объявить ISP DNS серверов с DHCP . Получайте настройки динамически с помощью клиентских сценариев DHCP.

 кот << "EOF" > /etc/udhcpc.user
DHCP_POOL="локальная сеть"
DHCPC_EVENT="${1}"
DNS_SERV="${dns}"
случай ${DHCPC_EVENT} в
(связанный|обновить) ;;
(*) выход 0 ;;
эсак
для DHCP_POOL в ${DHCP_POOL}
do DHCP_OPT="$(uci -q получить dhcp.${DHCP_POOL}.dhcp_option)"
для DHCP_OPT в ${DHCP_OPT}
делать, если [ "${DHCP_OPT%%,*}" = "6" ]
затем uci del_list dhcp.${DHCP_POOL}.dhcp_option="${DHCP_OPT}"
фи
Готово
uci add_list dhcp.${DHCP_POOL}.dhcp_option="6,${DNS_SERV// /,}"
Готово
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить
EOF

кошка << "EOF" > /etc/odhcp6c.user
DHCP_POOL="локальная сеть"
DHCPC_EVENT="${2}"
DNS_SERV="${RA_DNS} ${RDNSS}"
случай ${DHCPC_EVENT} в
(связанный|информированный|обновленный|отскок|ра-обновленный) ;;
(*) выход 0 ;;
эсак
для DHCP_POOL в ${DHCP_POOL}
сделать uci -q удалить dhcp.${DHCP_POOL}.dns
для DNS_SERV в ${DNS_SERV}
сделать uci add_list dhcp.${DHCP_POOL}.dns="${DNS_SERV}"
Готово
Готово
UCI фиксирует DHCP
/etc/init.d/odhcpd перезапустить
EOF 

Повторно подключите клиентов, чтобы применить изменения.

Предоставление DNS для нелокальных сетей

Ответить на запросов DNS , поступающих из нелокальных сетей. Это может быть полезно для предоставления DNS для клиентов VPN с топологией «точка-точка».

 uci установить [email protected][0].локальный сервис = "0"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Переадресация DNS

LuCI → Сеть → DHCP и DNS → Общие настройки → DNS переадресация

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

 uci -q удалить [email protected][0].сервер
uci add_list [email protected][0].server="8.8.8.8"
uci add_list [email protected][0].server="8.8.4.4"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Это можно комбинировать с выборочной переадресацией DNS.

Разделенный DNS

LuCI → Сеть → DHCP и DNS → Файлы Resolv и Hosts → Игнорировать файл разрешения

Игнорировать параметр resolvfile и ограничить вышестоящие преобразователи параметром server . Это эффективно включает разделение DNS и заставляет локальную систему не использовать dnsmasq.

 /etc/init.d/dnsmasq остановить
uci устанавливает [email protected][0].noresolv="1"
UCI фиксирует DHCP
/etc/init.d/dnsmasq начало 

Принудительное использование dnsmasq для локальной системы

Заставить локальную систему использовать dnsmasq, если она работает с параметром noresolv .Остерегайтесь состояния гонки с сервисом Adblock при использовании шифрования DNS .

 uci set [email protected][0].localuse="1"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Выборочная переадресация DNS

LuCI → Сеть → DHCP и DNS → Общие настройки → DNS переадресация

Перенаправить запросов DNS для определенного домена и всех его поддоменов на другой сервер. Более конкретные домены имеют приоритет над менее конкретными доменами.

 uci add_list [email protected][0].server="/example.com/192.168.2.1"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Это можно комбинировать с безусловной переадресацией DNS.

Фильтрация DNS

LuCI → Сеть → DHCP и DNS → Общие настройки → DNS переадресация

Простая фильтрация контента на основе DNS .

 # Черный список
uci add_list [email protected][0].server="/example.ком/"
uci add_list [email protected][0].server="/example.net/"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить

# Белый список
uci add_list [email protected][0].server="/example.com/#"
uci add_list [email protected][0].server="/example.net/#"
uci add_list [email protected][0].server="/#/"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

Смотрите также: Блокировка рекламы, Брандмауэр на основе DNS с наборами IP-адресов

Условия гонки с sysntpd

Устраните состояние гонки с помощью службы sysntpd. При запуске dnsmasq с параметрами noresolv и localuse и с использованием шифрования DNS для локальной системы.

 # Получить одноранговый DNS-провайдер
. /lib/функции/network.sh
network_flush_cache
network_find_wan NET_IF
network_find_wan6 NET_IF6
network_get_dnsserver NET_DNS "${NET_IF}"
network_get_dnsserver NET_DNS6 "${NET_IF6}"

# Настроить запасной DNS-провайдер
если [-z "${NET_DNS}" ]
затем NET_DNS="8.8.8.8 8.8.4.4"
фи
если [-z "${NET_DNS6}" ]
затем NET_DNS6="2001:4860:4860::8888 2001:4860:4860::8844"
фи

# Обойти переадресацию DNS для провайдера NTP
для DNS_SERV в ${NET_DNS} ${NET_DNS6}
получить систему.[0-9]*\.(.*)$|\
del_list [email protected][0].server='/\1/${DNS_SERV}'\n\
add_list [email protected][0].server='/\1/${DNS_SERV}'|" \
| uci -q пакет
Готово
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить 

вышестоящий DNS-провайдер

LuCI → Сеть → Интерфейсы → WAN и WAN6 → Редактировать

OpenWrt по умолчанию использует одноранговый узел DNS в качестве восходящих преобразователей для dnsmasq. Обычно они предоставляются вышестоящим сервером DHCP ISP .Вы можете изменить его на любого другого поставщика DNS или на локальный сервер DNS , работающий на другом хосте. При необходимости используйте резолверы, поддерживающие проверку DNSSEC. Укажите несколько преобразователей для повышения отказоустойчивости.

 # Настроить DNS-провайдера
uci -q удалить network.wan.dns
uci add_list network.wan.dns="8.8.8.8"
uci add_list network.wan.dns="8.8.4.4"

# Настроить DNS-провайдера IPv6
uci -q удалить network.wan6.dns
uci add_list network.wan6.dns="2001:4860:4860::8888"
сеть uci add_list.wan6.dns="2001:4860:4860::8844"

# Отключить одноранговый DNS
uci set network.wan.peerdns="0"
uci установить network.wan6.peerdns="0"

# Сохранить и применить
uci фиксирует сеть
/etc/init.d/сетевой перезапуск 
Общие примечания
Несколько провайдеров DNS
Параметры однорангового DNS
Этот веб-сайт использует файлы cookie. Используя веб-сайт, вы соглашаетесь с сохранением файлов cookie на вашем компьютере. Также вы подтверждаете, что прочитали и поняли нашу Политику конфиденциальности. Если вы не согласны, покиньте сайт.OKПодробнее о файлах cookie

[OpenWrt Wiki] Конфигурация DNS и DHCP /etc/config/dhcp

-B IP Адреса для преобразования в ответы Nxdomain (для противодействия «полезному» upstream DNS серверов, которые никогда не возвращайте NXDOMAIN). 1 4 4 5 4 -S -D 5 . 4 -S 5 5 5 4 Принять DNS queries только от хостов, адрес которых находится в локальной подсети, то есть подсеть, для которой существует интерфейс на сервер. 4 --Log-запросы = Extra -h 4 Не читайте DNS Имена от / etc / hosts 6nsq0 ond 90.158 interfaces 0 5 -Z 5 4 --stop-dns-runind 5 -o 5 корневой каталог 90TF 1557 902

Подавление 10 операции DHCP 3 протоколирования 90. Ошибки и проблемы по-прежнему будут регистрироваться

0 0 0 4 5 4 0 0 5 4 5 (NOTE)
Имя Тип По умолчанию Опция Описание
add_local_domain логический 1 Добавьте локальный домен в качестве директивы поиска в resolv.conf.
add_local_hostname boolean 1 Добавить записи A, AAAA и PTR для этого маршрутизатора только на DHCP

0601 расширенная функция доступна на магистрали с опцией add_local_fqdn
add_local_fqdn integer 1 Добавить записи A, AAAA и PTR для этого маршрутизатора, обслуживаемые только на 9 DHCP
add_local_fqdn на магистрали, но не на 17.01.0
0 : Отключить.
1 : Имя хоста по основному адресу.
2 : Имя хоста по всем адресам.
3 : FDQN для всех адресов.
4 : iface.host.domain для всех адресов.
add_local_fqdn на магистрали, но не 17.01.0
add_wan_fqdn integer 0 0 0 5

5 4 Интерфейсы

8 WAN Как ADD_LOCAL_FQDN вместо вашего ISP Назначено по умолчанию, который может быть неясным. WAN выводится из разделов config dhcp с параметром ignore 1 set, поэтому их не нужно называть WAN
add_wan_fqdn

2 на Trunk, но не 17.051.

addnhosts список путей к файлам (нет) -H Дополнительные файлы хоста для чтения1 для обслуживания 90s14 ответы 90s14 Синтаксис в каждом файле такой же, как /etc/hosts
полномочный логический 1 -K Принудительно ввести dnsmasq mode Это ускоряет аренду DHCP . Используется, если это единственный сервер в сети
Bogusnxdomain 5 Список IP Адреса (Нет) -B
BogusPriv 5 Boolean 1 1 5 -B -B Отклонить обратный поиск на частных IP , где нет соответствующей записи в / etc / hosts
CACHELOCAL 5 BOOLEAN 1 При установке до 0 используйте каждый сетевой интерфейс DNS адрес в Local / etc / resolv.конф . Обычно используется только петлевой адрес, и все запросы проходят через dnsmasq .
размер кеша целое число 150 -c Размер кеша dnsmasq 90.
dbus логическое значение 0 -1 Включить обмен сообщениями DBus для
8masq80 d
Стандартные сборки dnsmasq на OpenWrt не включают поддержку DBus.
dhcp_boot строка (нет) --dhcp-boot в большинстве случаев просто имя файла, в большинстве случаев указывает имя файла. Вы также можете использовать: « имя файла , имя сервера tftp , IP-адрес tftp »
DHCPHOSTSFILE Путь файла

--dhcp-hostsfile Укажите внешний файл с помощью Host DHCP Параметры
dhcpleasemax integer 150 -X Максимальное количество DHCP15 лизингов
dnsforwardmax integer 150 -0 (ноль) Максимальное количество одновременных подключений 9015
домен доменное имя (нет) DNS Домен DHCP Клиенты
Domailneded 5 Boolean 1 1 сообщает DNSMASQUQ Никогда не пересылать запросы для простых имен, без точек или доменных частей, до восходящих пользователей.Если имя неизвестно из /etc/hosts или DHCP , то возвращается ответ «не найдено»
dnssec логическое значение 0 --dnssec Проверка DNSS-данных и кэш-памяти EC .
Требуется полный пакет dnsmasq.
dnsseccheckunsigned boolean 0 --dnssec-check-unsigned Проверить, разрешены ли ответы зон без знака.Это защищает от злоумышленника, подделывающего неподписанные ответы для подписанных зон DNS , но работает медленнее и требует, чтобы серверы имен выше по течению от dnsmasq поддерживали DNSSEC.
Требуется полный пакет dnsmasq.
Предупреждение. Если вы используете этот параметр на устройстве, на котором нет аппаратных часов, разрешение DNS может нарушиться после перезагрузки устройства из-за неправильного системного времени.
ednspacket_max целое число 1232 -P Укажите наибольший EDNS.0 Пакет UDP , который поддерживается сервером пересылки DNS
enable_tftp логический 0 --enable-tftp Включить встроенный сервер 902
expandhosts boolean 1 -E Добавить часть локального домена к именам, найденным в
filterwin2k логическое значение 0 -f Не пересылать запросы, на которые не могут ответить общедоступные серверы имен.
Убедитесь, что он отключен, если вам нужно разрешать записи SRV или использовать SIP-телефоны.
полное доменное имя логическое значение 0 --dhcp-fqdn Не разрешать локальное имя хоста. Требуется установить домен .
интерфейс список имен интерфейсов (все интерфейсы) -i Список интерфейсов для прослушивания.Если не указано, dnsmasq будет прослушивать все интерфейсы, кроме перечисленных в notinterface . Обратите внимание, что dnsmasq прослушивает loopback по умолчанию.
IPSET 5 Список строк (нет) --ippet 5 Синтаксис: Список IPSET '/example.com/example.org/example_ipv4, reample_ipv6'
Требуется полный пакет dnsmasq.
файл аренды путь к файлу (нет) -l (нижняя буква «L») в аренде этого файла DHCP
Local String (нет) (нет) Посмотрите DNS Записи для этого домена от / etc / hosts .Это соответствует тому же синтаксису, что и записи сервера , см. справочную страницу.
Localize_Queries 5 Boolean 1 5 1 4 5 5 5 Выберите IP Адрес для сопоставления входящего интерфейса, если несколько адресов назначены имени хоста в / etc / hosts . Изначально отключен, но по-прежнему включен в конфиге по умолчанию. Обратите внимание на написание этой опции.
Localservice 5 Boolean 1 1
local_ttl целое число 0 --local-ttl По умолчанию 3 TTL для местных ответов.
localuse boolean 1 Использовать dnsmasq в качестве локального преобразователя системы. Первоначально отключен, но все еще включен с помощью параметров по умолчанию noresolv и resolvfile .
logfacility string DAEMON --log-facility= Устанавливает объект для отправки записей dnslog.sysq. См. man-страницу dnsmasq для доступных средств.
Logqueries 5 Boolean 0 0 Войти результаты DNS запросов, кэш дамп на SIGUSR1, включают запрос IP
nodaemon логическое значение 0 -d Не демонизировать процесс 0d8masq59 0d8masq59 0d8masq59
Nohosts Boolean 0 0
nonegcache логический 0 -N Отключить кеширование отрицательных ответов «нет такого домена»5
noresolv логическое значение 0 -R Не читать серверы вышестоящего уровня из /resolvetc/resolvetc/resolvetc/resolvet.conf , который связан с resolvfile по умолчанию
notinterface список имен интерфейсов (нет) -I (заглавная буква «i»)
без подстановочных знаков логическое значение 1 --bind-dynamic Привязать только сконфигурированные адреса интерфейса вместо подстановочных.
порт порт 5 номер порта 53 5 53 5 4 -PR 5 4 Порт прослушивания для DNS Запросы, отключает DNS Функциональность сервера, если установлено на 0
queryport integer (нет) -Q Использовать фиксированный порт для исходящих запросов DNS
ReadheSers Boolean 0 Читайте статические аренды доходов от / и т. Д. / Эфиры , повторно читают на SIGHUP
Rebind_Protection 5 Boolean 1 1 Включает DNS Rebind Active Protacting Protections, отбросившись от ответов RFC1918
rebind_localhost логический 1 --rebind-localhost-ok 7 Разрешает восходящий поток.0.0.0/8 ответы, необходимые для служб черного списка на основе DNS , вступают в силу, только если включена защита от повторной привязки
Rebind_domain Список доменных имен (none) --rebind-domain-ok Список доменов для разрешения ответов RFC1918 вступает в силу только в том случае, если защита от перекосов включена только. Правильный синтаксис: list rebind_domain '/example.com/'
resolvfile путь к файлу /tmp/resolv.conf.d/resolv.conf.auto -r Указывает альтернативный файл разрешения
сервер список строк (нет) -S Список серверов DNS для пересылки запросов 9001. Подробную информацию о синтаксисе см. на справочной странице dnsmasq .
Rev_Server Список строк (нет) --REV-Server --REV-Server 5 Список сетевого диапазона с сервером DNS для пересылки Revource DNS запросы.Подробную информацию о синтаксисе см. на справочной странице dnsmasq .
StrictBolder 4 Boolean 0 0 повиновается на заказ DNS серверов в /etc/resolv.conf
tftp_root путь к каталогу (нет) --tftp-root
minport integer 0 --min-port Dnsmasq выбирает случайные порты в качестве источника исходящих запросов.Когда указана эта опция, используемые порты всегда будут больше или равны указанному значению minport (минимальное действительное значение 1024). Полезно для систем за брандмауэрами.
maxport integer 0 --max-port Dnsmasq выбирает случайные порты в качестве источника исходящих запросов. Если указан этот параметр, используемые порты всегда будут меньше или равны указанному значению maxport (максимальное допустимое значение 65535).Полезно для систем за брандмауэрами.
NOPING NOPING Boolean 0 по умолчанию DNSMASMAQ Проверяет, если адрес IPv4 используется до выделения его до хоста, отправив ICMP Echo запрос (также известный как ping) на указанный адрес. Этот параметр позволяет отключить эту проверку.
allservers boolean 0 --all-servers .Установка этого параметра заставляет dnsmasq отправлять все запросы на все доступные серверы. Ответ от сервера, ответившего первым, будет возвращен исходному запрашивающему.
quietdhcp логическое значение 0 --quiet-dhcp
Sequential_IP Boolean 0 DNSMAMSQ предназначен для выбора адресов IP для клиентов DHCP с использованием хэш MAC-адреса клиента.Обычно это позволяет адресу клиента оставаться стабильным в течение длительного времени, даже если клиент иногда допускает истечение срока аренды DHCP . В этом режиме по умолчанию IP-адресов распределяются псевдослучайным образом по всему доступному диапазону адресов. Иногда бывают обстоятельства (обычно при развертывании сервера), когда удобнее иметь адресов IP , выделяемых последовательно, начиная с самого нижнего доступного адреса, и установка этого параметра включает этот режим.Обратите внимание, что в последовательном режиме клиенты, у которых истек срок аренды, с гораздо большей вероятностью переместят IP-адрес ; по этой причине его не следует использовать вообще.
addmac [0,1, base64, текст] 0 Добавьте MAC-адрес запросчика до DNS запросов, которые пересылаются вверх по течению; это может быть использовано для фильтрации DNS вышестоящим сервером.
MAC-адрес можно добавить только в том случае, если запрашивающая сторона находится в той же подсети, что и сервер dnsmasq. Обратите внимание, что механизм, используемый для достижения этого (опция EDNS0), еще не стандартизирован, поэтому его следует считать экспериментальным. Также обратите внимание, что раскрытие MAC-адресов таким образом может иметь последствия для безопасности и конфиденциальности.
logdhcp логическое значение 0 --log-dhcp Включает дополнительный протокол 2 DHCP; регистрирует все параметры, отправленные клиентам DHCP , и теги, используемые для их определения
DHCPSSCRICT 4 String --DHCP-Script Запустить пользовательский скрипт на DHCP Аренда Arese Add / Rewa / удаление Действия
confdir путь к каталогу /tmp/dnsmasq.d --conf-dir Каталог с дополнительными файлами конфигурации
max_ttl целое число (нет) --max-ttl DNS этот ответ 5 значение ttl в 900 900
min_cache_ttl integer 9068 - Min-Cache-TTL 4 Установите минимальное время для жизни DNS , даже когда TTL в ответ ниже
MAX_CACHE_TTL INTEGER (NONE) - MAX-Cache-TTL Максимальное время для жизни для любых DNS ответ, даже если выше

[OpenWrt Wiki] Перехват DNS

Эта статья опирается на следующее:

Введение

гола

Инструкции по веб-интерфейсу

Настройте брандмауэр для перехвата трафика DNS .

  1. Перейдите к LuCI → Сеть → Брандмауэр → Перенаправление портов .

  2. Нажмите Добавьте и укажите:

  3. Нажмите Сохранить , затем Сохранить и применить .

Инструкции командной строки

Настройте брандмауэр для перехвата трафика DNS .

 # Перехват DNS-трафика
uci -q удалить firewall.dns_int
uci set firewall.dns_int="перенаправление"
UCI установил брандмауэр.dns_int.name="Перехват-DNS"
uci установить firewall.dns_int.src="lan"
UCI установил firewall.dns_int.src_dport = "53"
uci set firewall.dns_int.proto="tcp udp"
uci set firewall.dns_int.target="DNAT"
uci фиксирует брандмауэр
/etc/init.d/брандмауэр перезапустить 

Тестирование

Убедитесь, что ваш провайдер DNS совпадает с провайдером на маршрутизаторе при использовании другого провайдера DNS на клиенте.

Поиск и устранение неисправностей

Соберите и проанализируйте следующую информацию.

 # Журнал и статус
/etc/инит.д/перезагрузка брандмауэра

# Конфигурация среды выполнения
iptables-сохранить
ip6tables-сохранить

# Постоянная конфигурация
uci показать брандмауэр 

Дополнительно

NAT6

Включите NAT6 для обработки трафика IPv6 при использовании режима двойного стека.

 # Установить пакеты
обновление opkg
opkg установить kmod-ipt-nat6

# Включить NAT6
кошка << "EOF" > /etc/firewall.nat6
iptables-save -t nat \
| сэд-э"
/\sMASQUERADE$/d
/\s[DS]NAT\s/d
/\s--match-set\s\S*/s//\06/
/,ТРАНСЛЯЦИЯ\s/s// /" \
| ip6tables-restore -T физ.
EOF
кошка << "EOF" >> /etc/sysupgrade.конф
/etc/брандмауэр.nat6
EOF
uci -q удалить firewall.nat6
uci set firewall.nat6="включить"
uci установить firewall.nat6.path="/etc/firewall.nat6"
учи установить firewall.nat6.reload = "1"
uci фиксирует брандмауэр
/etc/init.d/брандмауэр перезапустить 

DNS через HTTPS

Фильтровать трафик DoH с помощью брандмауэра и IP , заставляя клиентов LAN переключаться на обычный DNS . Настройте дополнительные наборы IP и дополнительные функции Hotplug для автоматического заполнения наборов IP .

 # Установить пакеты
обновление opkg
opkg установить ipset разрешение

# Настроить наборы IP
uci -q удалить dhcp.дох
uci set dhcp.doh="ipset"
uci установить dhcp.doh.instance="doh"
uci add_list dhcp.doh.name="doh"
uci add_list dhcp.doh.name="doh6"
UCI фиксирует DHCP
/etc/init.d/dnsmasq перезапустить

# Фильтровать трафик DoH
для ИПВ в 4 6
делать
uci -q удалить firewall.doh${IPV%4}_fwd
uci set firewall.doh${IPV%4}_fwd="правило"
uci set firewall.doh${IPV%4}_fwd.name="Deny-DoH"
uci set firewall.doh${IPV%4}_fwd.src="lan"
uci set firewall.doh${IPV%4}_fwd.dest="wan"
uci set firewall.doh${IPV%4}_fwd.dest_port="443"
uci устанавливает firewall.doh${IPV%4}_fwd.прото="tcp udp"
uci set firewall.doh${IPV%4}_fwd.family="ipv${IPV}"
uci set firewall.doh${IPV%4}_fwd.ipset="doh${IPV%4} место назначения"
uci set firewall.doh${IPV%4}_fwd.target="REJECT"
Готово
uci фиксирует брандмауэр
/etc/init.d/перезагрузка брандмауэра

# Настроить горячее подключение
mkdir -p /etc/hotplug.d/онлайн
кошка << "EOF" > /etc/hotplug.d/online/60-ipset-doh
если [ ! -e /var/lock/ipset-doh ] \
&& блокировка -n /var/lock/ipset-doh
тогда
uclient-fetch -O - "https://raw.githubusercontent.com/\
dibdot/DoH-IP-blocklists/master/doh-domains..*$/\
del_list dhcp.doh.domain='\0'\n\
add_list dhcp.doh.domain='\0'/")
зафиксировать DHCP
ВЗ
блокировка -u /var/блокировка/ipset-doh
фи
EOF
кошка << "EOF" >> /etc/sysupgrade.conf
/etc/hotplug.d/онлайн/60-ipset-doh
EOF
. /etc/hotplug.d/онлайн/60-ipset-doh

# Заполнить наборы IP
настройка ipset 

DNS через TLS

Настройте брандмауэр для фильтрации трафика DoT , заставляя клиентов LAN переключаться на обычный DNS .

 # Фильтр DoT-трафика
uci -q удалить брандмауэр.точка_fwd
uci установить firewall.dot_fwd = "правило"
uci set firewall.dot_fwd.name="Запретить DoT"
uci установить firewall.dot_fwd.src="lan"
uci установить firewall.dot_fwd.dest="wan"
UCI установил firewall.dot_fwd.dest_port="853"
uci установить firewall.dot_fwd.proto="tcp udp"
uci установить firewall.dot_fwd.target = "ОТКЛОНИТЬ"
uci фиксирует брандмауэр
/etc/init.d/брандмауэр перезапустить 

Переадресация DNS

Настройте переадресацию DNS на локальный сервер DNS с помощью Dnsmasq. Настройте брандмауэр, чтобы исключить локальный сервер DNS из правила перехвата.

 # Настроить брандмауэр
UCI установил firewall.dns_int.src_mac="!00:11:22:33:44:55"
uci фиксирует брандмауэр
/etc/init.d/брандмауэр перезапустить 

DNS-перенаправление

Избегайте использования Dnsmasq. Настройте брандмауэр для перенаправления перехваченного трафика DNS на ваш локальный сервер DNS .

 # Настроить брандмауэр
uci set firewall.dns_int.name="Перенаправление-DNS"
UCI установил firewall.dns_int.src_ip="!192.168.1.2"
UCI установил firewall.dns_int.dest_ip="192.168.1.2"
uci -q удалить брандмауэр.dns_masq
uci установить firewall.dns_masq="nat"
uci set firewall.dns_masq.name="Masquerade-DNS"
uci установить firewall.dns_masq.src="lan"
UCI установил firewall.dns_masq.dest_ip="192.168.1.2"
UCI установил firewall.dns_masq.dest_port="53"
uci set firewall.dns_masq.proto="tcp udp"
uci set firewall.dns_masq.target="МАСКАРАД"
uci фиксирует брандмауэр
/etc/init.d/брандмауэр перезапустить 

Назначьте локальному серверу DNS адрес IP в отдельной сети, чтобы отключить маскировку.

Этот веб-сайт использует файлы cookie.Используя веб-сайт, вы соглашаетесь с сохранением файлов cookie на вашем компьютере. Также вы подтверждаете, что прочитали и поняли нашу Политику конфиденциальности. Если вы не согласны, покиньте сайт.OKПодробнее о файлах cookie

Динамический DNS OpenWRT - Mythic Beasts

На этой странице описывается, как использовать наш Динамический DNS служба с OpenWRT маршрутизатор.

Обратите внимание, что в этих инструкциях используется наш устаревший DNS API v1. Мы рекомендуем использовать DNS API v2 для новых конфигураций.

  1. Установите пакет luci-app-ddns либо через веб-интерфейс, либо запустив:

     opkg установить luci-app-ddns
     
  2. Перейдите в веб-интерфейс LuCI и перейдите на вкладку Services->Dynamic DNS и используйте следующие настройки:

    Интерфейс событий
    Ваш WAN-интерфейс
    Служба
    mythic-beasts.com
    Если вы не видите этот вариант в списке, см. добавление сервиса Mythic Beasts.
    Имя хоста
    Полное имя хоста, которое вы хотите использовать для динамического DNS, например myhouse.example.com
    Имя пользователя
    Ваше доменное имя, example.com в данном примере.
    Пароль
    Ваш пароль API DNS. Вы можете установить это, используя ссылку DNS API . на странице Настройки для вашего домена в разделе Мои домены панели управления. Обратите внимание, что клиент ddns отправляет это в незашифрованном виде, поэтому убедитесь, что этот пароль не используется для других служб, и если вы используете свой домен для размещать другие сервисы, которые следует рассмотреть с использованием другого подхода (см. ниже).
    Источник IP-адреса
    В идеале используйте имя интерфейса с вашим внешним IP-адресом. Этот параметр не является обязательным, так как наш сервис определит ваш IP-адрес. автоматически. Если на вашем роутере нет интерфейса с внешним IP доступен, затем выберите любой интерфейс и уменьшите Force обновить ограничение времени до низкого значения, например 10 минут, как программа обновления не сможет обнаружить какие-либо изменения вашего IP.
  3. Убедитесь, что служба включена, нажмите Сохранить и применить , а затем либо перезагрузите маршрутизатор или принудительно отключите и поднимите интерфейс событий.

Повышение безопасности

По умолчанию клиент ddns использует незашифрованный запрос GET, что означает, что Ваш пароль не зашифрован и появится в веб-журналах на нашем сервере. Первую часть можно легко исправить, установив пакет wget ( opkg установить wget - это заменяет версию wget busybox, которая не имеют поддержки SSL) и изменение URL-адреса на шаге 2 для использования http s вместо http .

Для переключения на POST-запросы требуется альтернативный подход, например, создание сценария одного из примеров curl, перечисленных на нашем сайте. Страница динамического DNS.

Добавление сервиса Mythic Beasts

Последние версии OpenWRT поставляются с предварительно настроенной необходимой конфигурацией. использовать наш DNS API для динамического DNS. Если вы не видите Mythic Beasts в список служб, вам нужно будет отредактировать /usr/lib/ddns/services на ваш маршрутизатор и добавьте следующую строку внизу (все это должно быть на одна строка):

 "mythic-beasts.com" "http://dnsapi4.mythic-beasts.com/?domain=[ИМЯ ПОЛЬЗОВАТЕЛЯ]&password=[ПАРОЛЬ]&command=REPLACE%20[DOMAIN]%2060%20A%20DYNAMIC_IP& ; происхождение =."
 
Сеть

— перенаправление DNS-запросов с помощью OpenWrt

Надежная альтернатива — установить правило брандмауэра, чтобы весь DNS-трафик направлялся на ваш локальный DNS-сервер.

Поместите следующий сценарий в Сеть > Брандмауэр > Пользовательские правила (после замены 192.168.1.2 фактическим IP-адресом вашего DNS-сервера)

  # DNSHIJACKv4
# Регистрировать и перенаправлять DNS-трафик
iptables -t nat -N dnshijack
iptables -t nat -I dnshijack -j LOG --log-prefix "dnshijack4"
iptables -t nat -A dnshijack -j DNAT --to-destination 192.168.1.2
# что-то еще угнано
iptables -t nat -A prerouting_lan_rule -p udp --dport 53 -j dnshijack
iptables -t nat -A prerouting_lan_rule -p tcp --dport 53 -j dnshijack
# исправить "ответ из неожиданного источника"
iptables -t nat -A postrouting_lan_rule -d 192.168.1.2 -p tcp -m tcp --dport 53 -m comment --comment "!fw3: DNS Pi-hole MASQUERADE" -j MASQUERADE
iptables -t nat -A postrouting_lan_rule -d 192.168.1.2 -p udp -m udp --dport 53 -m comment --comment "!fw3: DNS Pi-hole MASQUERADE" -j MASQUERADE
  

Примечание: Я не пробил дыру в брандмауэре, чтобы разрешить моему локальному DNS-серверу (adguard) общаться с Интернетом.Это связано с тем, что он делает это через TLS и, следовательно, использует другой порт. Если ваш локальный DNS-сервер использует простые текстовые запросы, вам необходимо добавить это в свой набор правил (не забывая изменить LOCAL_DNS_MAC_ADDRESS на фактический MAC-адрес вашего DNS-сервера):

  iptables -t nat -A prerouting_lan_rule -m mac --mac-source ЛОКАЛЬНЫЙ_DNS_MAC_АДРЕС -p udp --dport 53 -j ПРИНЯТЬ
iptables -t nat -A prerouting_lan_rule -m mac --mac-source ЛОКАЛЬНЫЙ_DNS_MAC_АДРЕС -p tcp --dport 53 -j ПРИНЯТЬ
  

Контекст

Я использую OpenWRT и пытаюсь перенаправить весь DNS-трафик на AdGuard на отдельной машине.Я пробовал:

  1. Настройка переадресации DNS через WAN интерфейс на мой сервер AdGuard
  2. Настройка DHCP с включенной опцией 6, чтобы клиенты использовали мой сервер AdGuard
  3. Настройка переадресации системного DNS OpenWRT на мой сервер AdGuard

Все безуспешно. Затем я наткнулся на эту тему: https://forum.openwrt.org/t/redirect-all-outbound-dns-traffic-to-internal-ip/18783/11, где я нашел более полный набор правил:

  # DNSHIJACKv4
# Войти и угнать в Pihole
iptables -t nat -N dnshijack
iptables -t nat -I dnshijack -j LOG --log-prefix "dnshijack4"
iptables -t nat -A dnshijack -j DNAT --to-destination 10.0.2.2
# разрешить Pihole запрашивать интернет
iptables -t nat -A prerouting_lan_rule -m mac --mac-source 00:11:22:33:44:55 -p udp --dport 53 -j ПРИНЯТЬ
iptables -t nat -A prerouting_lan_rule -m mac --mac-source 00:11:22:33:44:55 -p tcp --dport 53 -j ПРИНЯТЬ
# разрешить запросы к OpenWrt
iptables -t nat -A prerouting_lan_rule -p tcp --dport 53 -d 10.0.2.1 -j ПРИНЯТЬ
iptables -t nat -A prerouting_lan_rule -p udp --dport 53 -d 10.0.2.1 -j ПРИНЯТЬ
# что-то еще угнано
iptables -t nat -A prerouting_lan_rule -p udp --dport 53 -j dnshijack
iptables -t nat -A prerouting_lan_rule -p tcp --dport 53 -j dnshijack
# другие зоны
iptables -t nat -A prerouting_guest_rule -p tcp --dport 53 -d 10.0.2.2 -j ПРИНЯТЬ
iptables -t nat -A prerouting_guest_rule -p udp --dport 53 -d 10.0.2.2 -j ПРИНЯТЬ
iptables -t nat -A prerouting_guest_rule -p udp --dport 53 -j dnshijack
iptables -t nat -A prerouting_guest_rule -p tcp --dport 53 -j dnshijack
iptables -t nat -A prerouting_iot_rule -p tcp --dport 53 -d 10.0.2.2 -j ПРИНЯТЬ
iptables -t nat -A prerouting_iot_rule -p udp --dport 53 -d 10.0.2.2 -j ПРИНЯТЬ
iptables -t nat -A prerouting_iot_rule -p udp --dport 53 -j dnshijack
iptables -t nat -A prerouting_iot_rule -p tcp --dport 53 -j dnshijack
# исправить "ответ из неожиданного источника"
iptables -t nat -A postrouting_lan_rule -d 10.0.2.2 -p tcp -m tcp --dport 53 -m comment --comment "!fw3: DNS Pi-hole MASQUERADE" -j MASQUERADE
iptables -t nat -A postrouting_lan_rule -d 10.0.2.2 -p udp -m udp --dport 53 -m comment --comment "!fw3: DNS Pi-hole MASQUERADE" -j MASQUERADE
  

OpenWRT

Эти инструкции могут различаться в зависимости от используемой версии OpenWRT.

Содержимое

Заблокировать Google DNS на OpenWRT

  • Откройте страницу настроек OpenWRT и перейдите к: Сеть > Брандмауэр > Правила трафика .
  • В разделе Новое правило пересылки введите DNS в качестве имени, выберите исходную зону lan , конечную зону wan и нажмите Добавить и изменить..
  • Введите следующую информацию:
  • Имя: DNS
  • Ограничить семейство адресов: IPv4
  • Протокол: TCP+UDP
  • Совпадение с типом ICMP: любой
  • Исходная зона: lan
  • MAC-адрес источника: любой
  • Адрес источника: любой
  • Исходный порт:
  • Зона назначения: wan
  • Адрес назначения: выберите Пользовательский и введите 8.8.8.8
  • Действие: Отклонить
  • Дополнительные аргументы:
  • В итоге вы получите что-то вроде этого:
  • Нажмите Сохранить и применить .
  • Повторите те же шаги для адреса назначения: 8.8.4.4 .
  • Щелкните Сохранить и применить еще раз на странице Брандмауэр - Правила трафика .

Выключите и снова включите ваши устройства

Чтобы убедиться, что все ваши устройства используют новые настройки DNS, выполните следующие действия:

  • Выключите устройство.
  • Отсоедините кабель питания от маршрутизатора.
  • Подождите 30 секунд.
  • Снова подключите кабель питания.
  • Снова включите устройство.

Проверьте свой блок Google DNS

Мы рекомендуем проверить блокировку, попробовав пропинговать DNS-серверы Google.

  • В Windows откройте командную строку . В OS/X вместо этого откройте терминал .
  • Введите следующую команду в командной строке или терминале: пинг 8.8.8.8 Это отправит серию пингов на DNS-сервер Google. Если все они терпят неудачу , ваш блок работает правильно.
  • Повторите тест для 8.8.4.4: эхо-запрос 8.8.4.4

Установка SafeDNS OpenWRT

Модуль

SafeDNS был разработан для маршрутизаторов OpenWRT. Он позволяет установить веб-фильтр на любой роутер, поддерживающий прошивку OpenWRT. Каждому конечному устройству в сети можно назначить индивидуальные настройки фильтрации. Чтобы убедиться, что на вашем маршрутизаторе установлена ​​прошивка OpenWRT, проверьте список маршрутизаторов OpenWRT.

Для начала работы с модулем необходимо авторизоваться на сайте SafeDNS по ссылке: https://www.safedns.com/trial

После входа перейдите в меню Веб-фильтрация/Домены .

Вы можете разрешить и/или заблокировать определенные категории веб-сайтов (категоризация выполняется командой SafeDNS, база данных категорий обновляется ежедневно).

Чтобы создать несколько профилей фильтрации, перейдите в Настройки > Профили и добавьте профили с определенными категориями для блокировки/разрешения.

Пользовательская статистика будет привязана к созданным профилям фильтрации.

Затем настройте маршрутизатор.

1. Авторизоваться в веб-интерфейсе роутера как администратор.

2. Перейдите в Система > Программное обеспечение

3. Выберите вкладку  Конфигурация

4. Закомментируйте или удалите строку

 опция check_signature 1 

, чтобы отключить проверку подписи пакетов.

5.Добавить строку

 src/gz safedns http://mirror.safedns.com/openwrt/ar71xx/generic/packages 

в поле "Custom feeds", как показано на скриншоте, где "ar71xx" - тип архитектуры вашего роутера. Если у вас другая архитектура, измените ее на правильный тип:

.

6. Перейдите на вкладку Действия и нажмите «Обновить списки»

Дождитесь обработки обновления.

7.Найдите пакет «safedns» в фильтре и нажмите «установить»

.

8. После этого обновите страницу.

9. Перейдите в раздел Службы > SafeDNS

.

10. Введите свои учетные данные SafeDNS и авторизуйтесь в сервисе, чтобы получить список доступных профилей. В поле Профиль по умолчанию выберите необходимый профиль фильтрации, который будет применяться по умолчанию для всех ваших устройств, подключенных к маршрутизатору.

11.Вы также можете установить определенный профиль фильтрации для любого устройства. Для этого нажмите Добавить , выберите устройство и подберите необходимый профиль фильтрации. Сохраните настройки.

!Обратите внимание, что для применения настроек требуется 5-7 минут.

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

Ваш адрес email не будет опубликован.