Nastavení a ověření DoH DNS na MikroTiku

Nastavení a ověření DoH DNS na MikroTiku
« kdy: 10. 02. 2025, 00:36:59 »
Caute neviem ci mam spravne nastaveny DoH DNS a neviem ani ako overit, ze dotazy idu naozaj cez DoH. Urobil som:

- accept input udp 53 z lan
- stiahol som z DNS servera pem certifikat, naimportoval som ho do mikrotiku a oznacil ako doveryhodny
- v static som nastavil A zaznam (pouzivam ipv4) na ip adresu DNS servera
- V DHCP som ako dns zadal LAN adresu Mikrotiku
- Povolil som DoH, remote requesty, zadal som url: dns.dnsserver.com/dns-query a zaklikol som verify (url je len priklad)
- v tejto faze ani samotny mikrotik cez terminal ping google.com nespracoval requesty
- tak som do riadku dns server doplnil jeho ip a potom to uz fungovalo.

Neviem ci je to spravne nastavene lebo niektore postupy neuvadzaju, ze priamo v okne DNS je nutne v pripade DoH zadat okrem URL aj IP a ine postupy to uvadzaju. Tak neviem ci je to dobre nastavene a hlavne neviem ako overit ci su dotazy naozaj sifrovane, teda ci to funguje.


Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #1 kdy: 10. 02. 2025, 07:31:57 »
já mám doma naimportovaný certifikát CloudFlare, jako DoH server https://cloudflare-dns.com/dns-query s ověřením certifikátu, a normálně to funguje.

Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #2 kdy: 10. 02. 2025, 08:38:06 »
Když s tím přišli v RouterOS, tak jsem si to ze zajímavosti taky zkoušel s Cloudflare DNS a fungovalo to přesně podle návodu. Přidat A záznam,  DoH URL a ověření třeba přes https://one.one.one.one/help/

Jestli jste krom toho url pro DoH ještě navíc musel přidat normální veřejnou IP adresu upstream DNS serveru, tak se obávám, že to jede přes normální DNS dotazy.
Což může být např. tím, že je tam nějak špatně přidaný ten statický A záznam (záznamy), je tam nějak blbě zadaná url pro DoH, něco s tím certifikátem nebo příp. jiná zrada.
Také nevím, jestli to v novějších verzích RouterOS nezměnili, nicméně ten DoH klient fungoval pouze přes standardní HTTPS, ne přes HTTP/2. Tzn. jestli konkrétní DoH DNS umí jen HTTP/2 (což je případ např. veřejných serverů od nic.cz), tak to nefunguje.

Můžete to samozřejmě také exaktně ověřit, v Tools na RouterOS je packet sniffer, nastavte si tam port 53 TCP/UDP na externím rozhraní a zkuste si pár dotazů (ideálně aby nebyly v lokální cache). Pokud tam budou dotazy na upstream DNS, tak DoH nefunguje.

Také se dá přímo z terminálu vyzkoušet resolver, není to samotný interaktivní příkaz, takže se to musí používat např. takhle, jako by to bylo ze skriptu:
put [:resolve www.root.cz server=127.0.0.1 type=ipv6]

Tím si můžete otestovat např. funkčnost toho statického A záznamu, jakýkoliv následný resolving.
Pak se samozřejmě také občas hodí: /ip dns cache flush

Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #3 kdy: 10. 02. 2025, 08:43:38 »
Diky, skusim to teda este skontrolovat, otestovat a potom napisem este.

vcunat

  • ***
  • 148
    • Zobrazit profil
    • E-mail
Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #4 kdy: 10. 02. 2025, 10:24:24 »
Upozornil bych, že minimálně v některých verzích na mě dělala ta implementace v Mikrotiku mizerný dojem.  Už jen že uměla pouze HTTP 1.x, což je nedoporučeno už v původním RFC 8484 z dobrých důvodů (asynchronicita mezi různými DNS dotazy).


Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #5 kdy: 10. 02. 2025, 10:36:19 »
DoH místo DoT protože to druhé Mikrotik neumí? Zlatej Unbound místo těchhle frikulínských výmyslů.

Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #6 kdy: 10. 02. 2025, 16:26:39 »
Navod na Mikrotik nepomohl?
https://help.mikrotik.com/docs/spaces/ROS/pages/37748767/DNS#DNS-DNSoverHTTPS(DoH)

DoH_Server_Query_URL:
https://cloudflare-dns.com/dns-query

Jinak DoH overis nejlip zde:
https://one.one.one.one/help/

Za me, ja jsem musel DoH primo na Mikrotiku vypnout. Protoze napriklad ve hrach, ale i ostatnich programech co delaji hodne DNS requestu naraz, tak Mikrotik vraci nekdy errory a nekdy to trva dost dlouho (dlouho na DNS req.) aby odpovedel.

Vyreseno nahostovanim vlastniho Unbound.
« Poslední změna: 10. 02. 2025, 16:30:47 od XXX_Sam_XXX »

Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #7 kdy: 10. 02. 2025, 22:11:15 »
No zda sa mi to ako "zaujimava" situacia:
- zistil som, ze predchadzajuci doh server pouzival http3 (blahdns) a to bol asi dovod preco nefungoval (bez zadanej ip v okne DNS)

- Skusil som teda pouzit libredns.gr - https://doh.libredns.gr/noads po zadani tejto url bez ip adresy mikrotik spracuje requesty v poriadku.

- Po takto nastavenom DNS som cez sniffer zistil, ze na WAN rozhrani cez port 53 UDP prebieha komunikacia medzi branou od mojho ISP a DNS servermi Google (8.8.8.8). Vobec nerozumiem na zaklade coho sa tam objavuju DNS Google pretoze v DNS nastaveniach ani v DHCP nemam servery Google.

Kód: [Vybrat]
put [:resolve nbc.com server=127.0.0.1 type=ipv4]
failure: dns server failure

- Mikrotik bol niekolko krat rebootovany, pre istotu ze nastavenia boli aplikovane

ja.

  • ****
  • 364
    • Zobrazit profil
    • E-mail
Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #8 kdy: 10. 02. 2025, 22:31:51 »
- Po takto nastavenom DNS som cez sniffer zistil, ze na WAN rozhrani cez port 53 UDP prebieha komunikacia medzi branou od mojho ISP a DNS servermi Google (8.8.8.8). Vobec nerozumiem na zaklade coho sa tam objavuju DNS Google pretoze v DNS nastaveniach ani v DHCP nemam servery Google.

Urcite je to z portu WAN, alebo je to forwardnute zvnutra? Nemas v sieti Chromecast alebo nejake ine embedded zariadenie, ktore zvysoka kasle na to, co hovori DHCP a pouzije well-known resolver lebo chce?

Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #9 kdy: 10. 02. 2025, 23:49:00 »
Upozornil bych, že minimálně v některých verzích na mě dělala ta implementace v Mikrotiku mizerný dojem.  Už jen že uměla pouze HTTP 1.x, což je nedoporučeno už v původním RFC 8484 z dobrých důvodů (asynchronicita mezi různými DNS dotazy).

Taky mě to v tomhle ohledu zklamalo, když jsem to zkoušel. DoT a případně DoH s HTTP/2 by mi přišly daleko praktičtější možnosti. Také ta práce s certifikáty a nutným manuálním importem těch pem souborů (byť by se to dalo asi skriptovat) mi nepřišla úplně v pohodě.
Celkově mi to přišlo, že si s tím mohli dát trochu víc záležet.

DoH místo DoT protože to druhé Mikrotik neumí? Zlatej Unbound místo těchhle frikulínských výmyslů.

Jj, taky bych to nejspíš řešil podobně. Kdybych na těch místech měl vyšší, novější modely Mikrotik routerů s ARMem místo MIPSů, tak bych tam v kontejneru rozběhl Unbound s upstream serverem přes DoT.

Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #10 kdy: 11. 02. 2025, 00:06:41 »
No zda sa mi to ako "zaujimava" situacia:
- zistil som, ze predchadzajuci doh server pouzival http3 (blahdns) a to bol asi dovod preco nefungoval (bez zadanej ip v okne DNS)

- Skusil som teda pouzit libredns.gr - https://doh.libredns.gr/noads po zadani tejto url bez ip adresy mikrotik spracuje requesty v poriadku.

O.K. to by dávalo smysl.

Citace
- Po takto nastavenom DNS som cez sniffer zistil, ze na WAN rozhrani cez port 53 UDP prebieha komunikacia medzi branou od mojho ISP a DNS servermi Google (8.8.8.8). Vobec nerozumiem na zaklade coho sa tam objavuju DNS Google pretoze v DNS nastaveniach ani v DHCP nemam servery Google.

Kód: [Vybrat]
put [:resolve nbc.com server=127.0.0.1 type=ipv4]
failure: dns server failure

Teď úplně nevím, k čemu se vztahuje ta chyba s překladem. Ale s těmi pakety směřujícími na veřejný Google DNS server souhlasím s "ja", podle mě to s velkou pravděpodobností bude z toho Chromecastu z jiného threadu, co to má nějakou hardcoded prioritu na tenhle server nezávisle na nastavení vnitřní sítě. Mě se takhle chovala v jedné síti Google/Android TV.

Když se ve snifferu a jeho filtru nastaví jen cílová adresa 8.8.8.8 bez specifikace rozhraní, tak by tam po zalogování pár paketů měla být vidět i zdrojová (privátní) adresa zařízení, čímž by se mělo potvrdit odkud to jde.

Pokud by vás to hodně štvalo, tak se teoreticky může vyzkoušet zakázat spojení na 8.8.8.8 (s tím, že tam nejspíš bude fallback na DNS z DHCP, tzn. adresu routeru). Případně tam ještě zkusit nastavit redirect veškerého odchozího provozu na port 53 na lokální DNS, ale tam mužou vzniknout ještě další potencionální problémy.


Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #11 kdy: 11. 02. 2025, 08:48:30 »
No ako sledujem tu debatu, tak sa asi vykaslem na Mikrotik DNS a rozbeham radsej pihole pod proxmox. BTW: Preco by ste preferovali DoT pred DoH?

Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #12 kdy: 11. 02. 2025, 12:36:24 »
No ako sledujem tu debatu, tak sa asi vykaslem na Mikrotik DNS a rozbeham radsej pihole pod proxmox. BTW: Preco by ste preferovali DoT pred DoH?

Záleží na tom co chcete resp. potřebujete řešit. Pi-Hole je primárně sada přednastavených nástrojů pro filtrování překladu jmen určitých hostů (typ. reklama, sledování atp.). Jako téměř všechno i tenhle přístup má své nevýhody.
Výhodou je to, že tím můžete omezit přístup na hosty i ze zařízení a programů, co nemají jinou možnost blokování. Nevýhodou pak to, že většinou spoléháte na obrovské blokační seznamy nějakých třetích stran, co se vám periodicky aktualizují a spolu s vaničkou můžete snadno vylít i dítě. Podobně také úplně nevíte, jak konkrétní aplikace zareagují, pokud dostanou ten sinkhole překlad (na nějakou neroutovatelnou adresu). Jestli a jak dlouho to bude zkoušet než vyprší nějaký timeout, selže případně nějaká operace úplně atd.
Pracuji a pracoval jsem v korporátních i menších sítích, kde byly podobné DNS filtry a x krát jsem se dostal do situace, že kvůli tomu něco nefungovalo a následně jsem ztratil hodiny zkoumáním proč. Například jsem na třikrát neúspěšně aktualizoval macOS na stanicích, než jsem to byl nucen řešit wifi s lokálním hotspotem.

Takže třeba já osobně tyhle DNS sinkhole nerad používám, filtraci a blokaci přístupu mám případně na konkrétních stanicích a prohlížečích, případně je to součástí nějakého dalšího systému ochrany pro konkrétní hosty (WAF), nad kterým mám kontrolu a jsem připraven řešit případné problémy.

Oproti tomu DoT, DoH, DoQ je primárně řešením zabezpečeného komunikačního kanálu k důvěryhodnému (a třeba i validujícímu) DNS serveru. Může být jeden z veřejných (Cloudflare, nic.cz), nebo i čistě v mé režii běžící např. někde ve VPS.

DoT je nejjednodušší a nejrozšířenější způsob. DoH může dávat smysl pokud by např. po cestě ISP blokoval port 853, případně bych se např. připojoval notebookem ze sítě, kterou nemám pod kontrolou a byl to jediný způsob jak se dostat na daný DNS server.
U DoH je pak víc variant, první a nedoporučená v RFC (jak zmiňoval výše p. Čunát) je přes HTTP/1.1, pak efektivnější HTTP/2 (sice stále přes TCP, ale díky streamům umožňuje držet existující spojení, DNS server může posílat odpovědi v jiném pořadí atp.). Byl o tom i článek tady na rootu:
https://www.root.cz/clanky/dns-over-tls-dot-vs-dns-over-https-doh-a-sifrovani-dns-v-knot-resolveru/
Až pak po nejnovější DNS over HTTP/3 resp. DNS over QUIC, které používají UDP.

No a ta kritika Mikrotiku vychází z toho, že jediný způsob zabezpečené komunikace s DNS, co tam do resolveru přidali, je taky bohužel ten nejmíň efektivní a interoperabilní. Navíc pokud je to router v síti, co spravuji, a kde prostě vím, že daný ISP neblokuje DoT port, tak většinou není důvod používat DoH.

ja.

  • ****
  • 364
    • Zobrazit profil
    • E-mail
Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #13 kdy: 11. 02. 2025, 13:32:33 »
No ako sledujem tu debatu, tak sa asi vykaslem na Mikrotik DNS a rozbeham radsej pihole pod proxmox. BTW: Preco by ste preferovali DoT pred DoH?

Pihole nevie ani DoT, ani DoH. Na to potrebuje bud proxy, ako je stubby, alebo rovno cely resolver, ako je unboud. Takze pokial nejde o filtrovanie, pihole straca vyznam.

Re:Nastavení a ověření DoH DNS na MikroTiku
« Odpověď #14 kdy: 11. 02. 2025, 16:35:58 »
ano, viem, ze, aby mal pihole nejaky vyznam tak potrebuje aj Unbound. Myslel som to tak, ze ked uz mam riesit Unbound tak spolu s nim uz rovno aj pihole a je to aj s akou-takou filtraciou reklamy. Islo by len o lokalne pouzivanie cize DoT resp. DoH by v tom pripade asi nemalo ziadnu pridanu hodnotu.