Comments 67
Раз уж how-to.
На пакетах openwrt такое реализуется?
Городить отдельный сервер для меня как-то избыточно, а вот приличный роутер — самое оно, имхо.
Вчера DoH запустил на своем роутере. Пока заметил только, что aliexpress автоматически включает французский язык.
Есть важное условие для adblock — требуется от OpenWrt-18.06.0.Нет, adblock уже был в 17.01, а может и раньше.
Для более старых версий OpenWrt, где пакета в репозиториях ещё не было, есть самописный вариант.
Под популярную прошивку Padavan я костылил себе вот так.
сложнее исключать из блокировки сайтыРекомендую simple-adblock. Он полегче (у adblock чуть больше фич, но они далеко не всем нужны), а исключения добавляются через веб-интерфейс, куда уж проше.
Можно легко ушатать роутер, если там слабый проц. (относится не только к этим пакетам, а вообще)
А потом думаешь — а чегой-то у меня тариф 100 Мбит/с, а закачки 2.5-3 МБ/с вместо 10-11?
а это бедный роутер не тащит всю петрушку, которую на него понаставили :)
А такое можно установить на zyxel keenetic?
Если речь про adblock - то на кинетиках есть AdGuard. https://dartraiden.github.io/AdGuard-Home-Keenetic/ вот тут, например, инструкция.
Всё делается, dnscrypt настраивается за полчаса-час на свежих версиях OpenWRT. DoH proxy, вероятно, тоже.
Ещё из прелестей OpenWRT:
- Прозрачная маршрутизация в сети Tor и i2p для всей локалки
- Маршрутизация IPv6 для всей локалки, в том числе через внешние шлюзы
- Блокировка рекламы (adblock, simple-adblock), если вам это интересно
- У вас только одна железка, от которой это всё зависит, а не две (плюс связность между ними), как в случае с Pi-Hole
openwrt.org/docs/guide-user/services/dns/doh_dnsmasq_https-dns-proxy
На ваш вкус и цвет, как говорится.
В случае DoT можно вообще не залезать в консоль, см. forum.openwrt.org/t/tutorial-no-cli-configuring-dns-over-tls-with-luci-using-stubby-and-dnsmasq/29143/17
Все прекрасно, но если внезапно заканчиваются деньги на интернете, то личный кабинет перестает работать. Обычно решается назначением нужных IP адресов на домены личного кабинета в DNS сервере.
Добавь ещё рекомендацию иметь несколько инстансов pi-hole. Если сервер выключен или обслуживается, то DNS должен продолжать работать.
У меня резерв — сервера у родственников. VPN не требует DNS и поэтому они доступны. Если упал интернет и нет к ним доступа, то DNS уже сильно меньше нужен.
Если имеется в виду «предоставить DoH-сервер для DoH-клиентов внутри сети» — то эта задача решается не очень просто, но решается. Например, буквально две недели назад была статья об этом. Но если у вас DoH-клиенты — то зачем для них ставить сервер внутри, там весь смысл в защите от анализа запросов через внешние каналы связи.
2) Про статический адрес — Вы написали что он у вас был изначально. Надо сильней на этом сделать акцент. У кого не статический адрес — тому придётся делать его статическим во внутренней сети и лучше настроить его так, чтобы он не конфликтовал потом с другими адресами. Ну например забиндить адрес 192.168.1.5, а раздачу адресов на рутере поставить начиная с 192.168.1.50.
3) Raspberry Pi не тянет много подписок. Вы какие подписки подбирали для России? Там же изначальные подписки вообще не учитывают российских реалий. Пробовали примерное такие списки?
4) Насколько я помню — в PiHole можно немного задавать правила wildcard и regex. Вы тестировали их? Я пару раз попробовала, у меня не сработала фильтрация. Я не сильно вдавалась в детали, так как у меня в принципе всё порезано на уровне браузера. Но было бы полезно знать про опыт других.
5)
# Commandline args for cloudflared
CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query
Если не ошибаюсь сюда можно подставить другие поддерживающие данную функцию DoH сервера и не надо будет доверять именно Cloudflare
6) Привели бы ссылки на проекты, на инструкции
7) И да, есть подводные камни, которые касаются Raspberry Pi и cloudflare. Например в части создания файлов по рутом. На raspbian от debian 9 надо было сначала проставить пароль на root. С одной стороны это не статья про Raspberry Pi, но с другой стороны Pi-Hole в основном на этой плате и устанавливается. И неплохо было бы для новичков хотя бы пройти простеший путь. Статья то в любом случае для них.
UPD: Добавила пункт 7
1. На младших апельсинах не тестировал, поверил на слово, что работает. На третьей малинке проблем с выкачанным с сайта не было.
2. Если адрес у сервера не статический — Pi-Hole при установке будет настойчиво предлагать поменять его на статический. А разведение диапазонов в целом полезно, но в большинстве случаев избыточно, я давно не встречал устройств, не умеющих проверить занятость адреса.
3. За линк на списки спасибо, внедряющим будет интересно. Жалоб на работу на RPi3 с этими списками не возникало, но нет пределов совершенству.
4. По wildcard записи есть, я тоже в какой-то из старых версий натыкался на проблемы, но в 4.3.2 работают. Сложные регулярки не пробовал за неимением необходимости.
5. Да, безусловно, можно перейти на другие серверы. У меня когда-то были проблемы с совместимостью с гугловым сервисом, что-то там различалось в форматах. Любой желающий может протестировать и использовать с теми серверами, которые ему ближе. Как я и говорил, пост — скорее заготовка.
6. Систематизация ссылок — самая трудная работа в любой документации, всегда лень. Когда-нибудь я достигну совершенства и буду делать статьи идеально :)
но в 4.3.2 работают.Спасибо за информацию. Ещё раз попробую.
Да, безусловно, можно перейти на другие серверы. У меня когда-то были проблемы с совместимостью с гугловым сервисом, что-то там различалось в форматах. Любой желающий может протестировать и использовать с теми серверами, которые ему ближе. Как я и говорил, пост — скорее заготовка.Просто Вы написали в статье что надо доверять Cloudflare. Некоторые могут отказаться от этой идеи из-за этого замечания, даже не дочитав до комментариев. Можно же поставить сноску/примечание в статье, что и этот пункт можно обойти.
Использование DoH исключает манипуляции вашим резолвингом в транзите и раскрытие информации о том, куда именно вы в интернете ходите.
Не у всех востребовано, безусловно.
При такой схеме с наличием локального DNS ресольвера DoH вообще не нужен, ни при обращении к внешним серверам, ни, тем более, внутри сети.
Вы можете совершенно спокойно обращаться к нему традиционными (нешифрованными) запросами внутри сети что, заметьте, не требует ни специального софта ни каких-то специфичных настроек, за исключением выдачи IP клиентам DNS сервера по DHCP. Внешние запросы же можно форвардить через DNS-over-TLS к любому из поддерживающим его внешним публичными, или, лучше, вашему личному, DNS серверам.
DoT детектируется и, соответственно, блокируется легче, чем DoH, поэтому DoH для меня интереснее. У вас, конечно, может быть другой набор критериев, по которому DoT побеждает.
DoT детектируется и, соответственно, блокируется легче чем DoH
Это не соответствует действительности. Если вы об использовании порта 853 для DNS-over-TLS, то ничто вам не мешает использовать тот же 443 взамен. Более того, некоторые публичные DoT серверы так и делают. Блокировка по имени хоста или IP вообще ничем не отличается в обоих случаях.
В итоге получается, что DoH за счёт инкапсуляции в HTTP даёт лишь дополнительный оверхед но никак не повышает доступность из-за блокировок.
Но я не планирую устраивать тут холивар DoT vs DoH в сверкающих доспехах. Считаете, что DoT лучше — пользуйтесь, конечно же. Рынок устаканится, крупнейшие игроки договорятся и какой-то из этих вариантов выдавит другой без нашего участия.
Для браузера DoH поможет, а вообще для этого случая лучше поднять локальный Unbound с форвадингом через DoT.
А в целом модели доступа могут быть разнообразны. У меня, например, тот же сервер с Pi-Hole еще и терминирует wireguard-туннели с ноутбука и телефона, поэтому задача обеспечения доступа в таких случаях «сводится к предыдущей» одним кликом в интерфейсе.
Сложно придумать и описать все возможные кейсы использования, обычно имеет смысл дать какую-то канву решения в заданных граничных условиях, а дальше уже помогать с конкретикой отдельным людям.
У меня квартире сейчас 27 устройств с выделенным IP-адресом, я бы не хотел их все настраивать и особенно переконфигурировать в каком-то случае.eSNI-то всё равно придётся включать на конечном устройстве…
Вот интересно будет за этим понаблюдать, когда в суды пойдут IP соседи. Провайдерам точно геморроя прибавится...
Для справки (может кто не знает), актуальные маршрутизаторы Keenetic, даже самый простой за 1500 рублей, поддерживают DNS-over-TLS и DNS-over-HTTPS с прошивкой KeeneticOS 3.1. Конструировать паровоз для "домашних" пользователей не нужно.

forwarders {
127.0.0.1 port 5053;
}
— Виртуалка 2Gb, чистая установка последней Cent OS 7;
— по шагам все прохожу до пункта «Осталось только подключить сервис к Pi-Hole. Для этого вы заходите в веб-интерфейс Pi-Hole (тут вам пригодится записанный в первом этапе пароль)»
— получаю экран вида
drive.google.com/file/d/1ZsY_tC5fnMs54pIHqmD4QkwIGoE_pnbr/view?usp=sharing
Статья интересная. Спасибо. Было бы ещё интересно почитать внятную инструкцию настройки mikrotik+vps +pihole +dnscrypt
Столкнулся с определенной неприятностью в реализации DNS-сервера mikrotik. Прописал первым адресом IP виртуалки с DoH и PiHole, вторым — 8.8.8.8 и наивно предполагал, что запросы пойдут через DoH в качестве основного канала, а «восьмерки» будут резервным. С удивлением обнаружил весь трафик DNS на «восьмерках». Полагаю, что mikrotik как-то оценивает сервера DNS по качеству (скорости ответа?) и потом весь трафик гонит в лучший.
В моей ситуации виртуалка с DoH лежит не в домашней сети, а доступна через vpn с офисом, поэтому неудивительно, что прямые запросы на «восьмерки» оказались эффективнее. Выкрутился пока через netwatch — пингую DoH и в зависимости от доступности меняю там DNS-сервера на mikrotik.
У меня как раз Mikrotik и виртуальная машина с pi-hole. Резервные ноды у родственников через VPN. Если у меня сервер прилег, то DNS запросы идут к родителям.
Нет, просто с pi-hole не должно быть обычных DNS
Ага, у меня именно так. А в микротике в качестве DNS изначально было прописано 192.168.142.2, 8.8.8.8 (192.168.142.2 — виртуалка с DoH и PiHole). И в такой ситуации у меня DNS-запросы шли через «восьмерки».
В микротике есть еще одна «не очень хорошесть» — все исходящие DNS-запросы маскарадятся и повлиять на это никак нельзя. В результате на PiHole-сервер приходят запросы с из другой подсети с одного адреса и это «режет» статистику.
В целом в домашней сети отказоустойчивость строится не очень легко, в описанной схеме сам микротик у вас единая точка отказа. Если, конечно, у вас не установлен второй такой же на другого провайдера, запитанный от другого ввода электропитания и входящий в vrrp-группу с первым.
Проверять PiHole DNS-запросами — правильней, но ваять специальный скрипт не вижу смысла. Пока. Если столкнусь с отказами в этой конструкции — обязательно сделаю.
А что касается единой точки отказа — у меня есть (на полке) запасной микротик :)
И, вроде, жёлтый-полосатый провайдер блокирует DNS, которые не принадлежат ему.
все было бы хорошо если бы работало после перезагрузки. установил, настроил, всё радовало глаз. перезагрузил и всё, более не фильтрует и ничего через неё не идёт. пытался найти ответ, почему так - пока глухо. Переустанавливать всё как то уже не красиво будет. опять таки нет гарантии что тоже до первой перезагрузки всё будет работать как и сейчас... пичалька
Проверьте, работает ли cloudflared (dig @127.0.0.1 -p 5053 google.com), вероятнее всего дело в нем. Если не работает - проверьте systemctl status cloudflared, должен быть active. Если не активный - systemctl enable cloudflared && systemctl start cloudflared
на самом деле это первое что я проверил. и все нормально. Ощущение такое что просто запросы в ягодку не идут от роутера, но в роутере всё настроено как и было...
да и вообще странно выглядит всё, писали что если ягодку выключить - то интернета не станет так DNS исчезнет, а у меня и без неё всё работает. Но роутер я не перенастраивал, может быть он сам решил что ему ягодка не нужна и забил на свои же настройки DNS? У меня "zyxel keenetic omni II"
Переводим на DoH домашнюю сеть, или еще один щелчок по носу фильтрации