Как настроить 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.
После этого можно пробовать доступ из Интернета через доменное имя.
Примечание:
Вся текущая конфигурация сервиса находится в файле /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» #интервал времени для проверки внешнего IPoption 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
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
Имя Тип По умолчанию Опция Описание
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
-B IP Адреса для преобразования в ответы Nxdomain (для противодействия «полезному» upstream DNS серверов, которые никогда не возвращайте NXDOMAIN).
BogusPriv
5 Boolean 1
1
5 -B
-B
Отклонить обратный поиск на частных IP , где нет соответствующей записи в / etc / hosts
CACHELOCAL
5 BOOLEAN 1
1
4 4 5 При установке до 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
домен
доменное имя (нет) 4 -S
DNS Домен DHCP Клиенты
Domailneded
5 Boolean 1
1
-D
5 сообщает 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 (нет) (нет) 4 -S
5 Посмотрите DNS Записи для этого домена от / etc / hosts
.Это соответствует тому же синтаксису, что и записи сервера
, см. справочную страницу.
Localize_Queries
5 Boolean 1
5 1
4
5
5
5 Выберите IP Адрес для сопоставления входящего интерфейса, если несколько адресов назначены имени хоста в / etc / hosts
. Изначально отключен, но по-прежнему включен в конфиге по умолчанию. Обратите внимание на написание этой опции.
Localservice
5 Boolean 1
1
5
5
4 Принять DNS queries только от хостов, адрес которых находится в локальной подсети, то есть подсеть, для которой существует интерфейс на сервер.
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
4 --Log-запросы = Extra
Войти результаты DNS запросов, кэш дамп на SIGUSR1, включают запрос IP
nodaemon
логическое значение 0
-d
Не демонизировать процесс 0d8masq59 0d8masq59 0d8masq59
Nohosts
Boolean 0
0
-h
4 Не читайте DNS Имена от / etc / hosts
nonegcache
логический 0
-N
Отключить кеширование отрицательных ответов «нет такого домена»5
noresolv
логическое значение 0
-R
Не читать серверы вышестоящего уровня из /resolvetc/resolvetc/resolvetc/resolvet.conf
, который связан с resolvfile
по умолчанию
notinterface
список имен интерфейсов (нет) -I
(заглавная буква «i») 6nsq0 ond 90.158 interfaces
без подстановочных знаков
логическое значение 1
--bind-dynamic
Привязать только сконфигурированные адреса интерфейса вместо подстановочных.
порт
порт
5 номер порта 53
5 53
5 4 -PR
5 4 Порт прослушивания для DNS Запросы, отключает DNS Функциональность сервера, если установлено на 0
queryport
integer (нет) -Q
Использовать фиксированный порт для исходящих запросов DNS
ReadheSers
Boolean 0
0
5 -Z
Читайте статические аренды доходов от / и т. Д. / Эфиры
, повторно читают на SIGHUP
Rebind_Protection
5 Boolean 1
1
5 4 --stop-dns-runind
5 Включает 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
-o
5 повиновается на заказ DNS серверов в /etc/resolv.conf
tftp_root
путь к каталогу (нет) --tftp-root
корневой каталог 90TF 1557 902
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
Подавление 10 операции DHCP 3 протоколирования 90. Ошибки и проблемы по-прежнему будут регистрироваться
Sequential_IP
Boolean 0
0
0 0 4 5 4
DNSMAMSQ предназначен для выбора адресов IP для клиентов DHCP с использованием хэш MAC-адреса клиента.Обычно это позволяет адресу клиента оставаться стабильным в течение длительного времени, даже если клиент иногда допускает истечение срока аренды DHCP . В этом режиме по умолчанию IP-адресов распределяются псевдослучайным образом по всему доступному диапазону адресов. Иногда бывают обстоятельства (обычно при развертывании сервера), когда удобнее иметь адресов IP , выделяемых последовательно, начиная с самого нижнего доступного адреса, и установка этого параметра включает этот режим.Обратите внимание, что в последовательном режиме клиенты, у которых истек срок аренды, с гораздо большей вероятностью переместят IP-адрес ; по этой причине его не следует использовать вообще.
addmac
[0,1, base64, текст] 0
0
0 5
4
5 Добавьте MAC-адрес запросчика до DNS запросов, которые пересылаются вверх по течению; это может быть использовано для фильтрации DNS вышестоящим сервером.
MAC-адрес можно добавить только в том случае, если запрашивающая сторона находится в той же подсети, что и сервер dnsmasq. Обратите внимание, что механизм, используемый для достижения этого (опция EDNS0), еще не стандартизирован, поэтому его следует считать экспериментальным. Также обратите внимание, что раскрытие MAC-адресов таким образом может иметь последствия для безопасности и конфиденциальности.
logdhcp
логическое значение 0
--log-dhcp
Включает дополнительный протокол 2 DHCP; регистрирует все параметры, отправленные клиентам DHCP , и теги, используемые для их определения
DHCPSSCRICT
4 String
(NOTE) --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 .
-
Перейдите к LuCI → Сеть → Брандмауэр → Перенаправление портов .
-
Нажмите Добавьте и укажите:
-
Нажмите Сохранить , затем Сохранить и применить .
Инструкции командной строки
Настройте брандмауэр для перехвата трафика 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 для новых конфигураций.
-
Установите пакет luci-app-ddns
либо через веб-интерфейс, либо запустив:
opkg установить luci-app-ddns
-
Перейдите в веб-интерфейс 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.
-
Убедитесь, что служба включена, нажмите Сохранить и применить , а затем либо
перезагрузите маршрутизатор или принудительно отключите и поднимите интерфейс событий.
Повышение безопасности
По умолчанию клиент 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 на отдельной машине.Я пробовал:
- Настройка переадресации DNS через WAN интерфейс на мой сервер AdGuard
- Настройка DHCP с включенной опцией 6, чтобы клиенты использовали мой сервер AdGuard
- Настройка переадресации системного 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 минут.