Doh server connection error ssl internal error

MikroTik поддерживает DNS over HTTPS (DoH) Начиная со стабильной версии 6.47 MikroTik поддерживает DNS over HTTPS (DoH). Далее краткая инструкция по настройке с проверкой сертификата сервера на примере Cloudflare. 1) Импортируем сертификат DigiCert Global Root CA в хранилище сертификатов роутера: 2) В поле Use DoH Server пишем https://1.1.1.1/dns-query и ставим галку Verify DoH Certificate: […]

Содержание

  1. MikroTik поддерживает DNS over HTTPS (DoH)
  2. MikroTik поддерживает DNS over HTTPS (DoH) : 36 комментариев
  3. Добавить комментарий Отменить ответ
  4. Mikrotik doh server connection error ssl internal error 6
  5. Страх и ненависть в RouterOS: что такое сетевое соединение в ядре Linux (часть 2 — практика)
  6. Комментарии 44
  7. Mikrotik doh server connection error ssl internal error 6

MikroTik поддерживает DNS over HTTPS (DoH)

Начиная со стабильной версии 6.47 MikroTik поддерживает DNS over HTTPS (DoH).
Далее краткая инструкция по настройке с проверкой сертификата сервера на примере Cloudflare.

1) Импортируем сертификат DigiCert Global Root CA в хранилище сертификатов роутера:

2) В поле Use DoH Server пишем https://1.1.1.1/dns-query и ставим галку Verify DoH Certificate:

3) Убираем все существующие DNS-сервера, чтобы поля Servers и Dynamic Servers (из DHCP Client) были пустыми и все запросы шли через DNS over HTTPS (не обязательно для 6.47.1+).

Проверить корректность настройки можно на странице https://www.cloudflare.com/ssl/encrypted-sni

MikroTik поддерживает DNS over HTTPS (DoH) : 36 комментариев

DoH server connection error: SSL: handshake failed: unable to get local issuer certificate (6)

в логах такая ошибка

Видимо вы не добавили сертификат из первого шага.

CF сломал https://1.1.1.1/dns-query , а так всё хорошо начиналось…

Нет, всё работает, видимо вы не настоящий админ.

Возвращение 400 это работает называется?
400 = 200 уже?

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

Он лишь в Curl’е иногда проскакивает что работает.
В микротике тоже отказывается.
У них в DoH мане теперь написано что нужно указывать домен, т.е. что бы юзать DoH, нужно юзать чей то DNS.
У гугла та же история теперь, по этому DoH в той самой изначальной идее уже больше мёртв, чем жив, т.к. остальную мелочь из поставщиков DoH не рассматриваем.

Укажите домен статикой будет вам счастье.

И искать потом приключения на удалённых узлах, когда он вдруг сменится?
Хороший такой совет.

перестало сегодня работать
DoH server connection error: SSL: handshake failed: certificate is not yet valid (6)
DoH server connection error: Connection refused

не смог заставить работать
и серт перекачал

Как вариант, снимите галку с пункта verify-doh-cert=

Спасибо за инструкцию.
Всё работает как надо.
После я усложнил схему. Я ещё и WARP Cloudflare подключил через WireGuard (в RouterOS 7.1) и смаршрутизировал запросы на 1.1.1.1 в тоннель.

класс. Поделитесь конфигом?)

Там его нужно генерировать через неофициальный cli клиент, вот инструкция: https://moonback.ru/page/keenetic-warp
Вот клиент: https://github.com/ViRb3/wgcf

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

Источник

Mikrotik doh server connection error ssl internal error 6

Маршрутизаторы MikroTik — Обсуждение

Старая программа для конфигурирования — Winbox winbox.exe ( 111.5 КБ )
Новая программа для конфигурирования — Winbox winbox3.exe ( 1.39 МБ )
Версия 3.18 (исправлена совместимость с прошивками 6.43): winbox318.exe ( 1.58 МБ )
Версия 3.19 (исправлен логин в 6.45): winbox.exe ( 1.59 МБ )

]*ssdp:(alive|byebye)|^m-search[9-D ]\*[9-D ]http/1\.1[9-D —

]*user-agent: gnucleus [9-D —

]* Accept: application/x-rtsp-tunnelled|http/(0\.9|1\.0|1\.1) [1-5][0-9][0-9] [9-D —

Если вам требуется помощь в решении проблемы- выкладывайте свой конфиг: /export hide-sensitive terse

Сообщение отредактировал ferhad.necef — 03.01.23, 15:46

Smartecs, через L7 руки не дошли пока у самого на своём, но вроде как читал через webproxy можно, и вроде как: (где-то вычитал, почему-то запомнилось):
Cоздать разрешающее правило в котором ничего нет, кроме значения accept в action и просто разместить его перед/после правила, которое разрешает доступ.

У меня такая проблема на одном из встроенных в материнскую плату сетевых контроллеров. Так и не поборол, использую тот, который без проблем поднимает 100Мб.

Сообщение отредактировал Shoore — 03.12.14, 00:47

ToMaTo_0,
А после покупки делали полный сброс устройства, потом устанавливали свежую прошивку?

Добавлено 02.12.2014, 23:26:

Shoore,
Кстати думаю сообщения нужно перенести в тему указанную тобой.

ToMaTo_0,
Подключите роутер к другому ПК/ноуту/роутеру к чему нибудь где есть активный ethernet порт и посмотрите в статусе на сколько поднимется порт.
Интересует будет ли держать порт скорость 100/1000мб/с с другим устройством, не вашим ПК.
Также попробуйте на ПК «жестко» зажать порт на 100мб/с.

Сообщение отредактировал ctich — 03.12.14, 00:20

А можно уточнить расстояние «основного пачкорда» ??
Надеюсь не более 90м., и кабель обжат правильно.

Парни подскажите где туплю.
Необходимо доработать схему:
2 port tagged — vlan 55
3 port untagged — vlan 55
5 port tagged — vlan 55,56,57

Для vlan 56,57 создан bridge0 и с ними проблем нет.
Прописываю теперь 55 vlan.
Создаю vlan 55 указываю на interf 5
Создаю bridge 1
В bridge в port создаю приземляю vlan 55 на bridge 1
В bridge в port создаю eth 2 + bridge 1
В bridge в port создаю eth 5 + bridge 1
При такой схеме работает проблем нет, НО как только добавляю к eth 3 + bridge 1 . буквально через 8-15 пингов, канал ложится, с чем у меня вопрос, что не так ? o.O

ctich,
А третий порт у тебя нигде не больше не участвует?

Тут еще можно почитать

На момент тестирования нет, но время от времени он будет также активен, и поэтому должна быть полносвязность между тремя портами (2,3,5).
Может что то в фаерфолах надо подкрутить, завтра буду дальше мучить :scratch_one-s_head:
У меня в схеме ip адреса к вланам не привязаны (вернее не все), основная задача микротика — принять этот влан через аплинковый порт и просвичить на два других, и все ( на cisco, alcatel, huawei, zyxel, dlink как то проще, разрешил, прописал и забыл, а тут. ) .

update
возможно бред, но похоже нужно делать для порта 2+5 = bridge 1, 3+5 bridge 2. (по крайней мере на это натолкнула статья)

Сообщение отредактировал ctich — 03.12.14, 23:57

Источник

Страх и ненависть в RouterOS: что такое сетевое соединение в ядре Linux (часть 2 — практика)

Комментарии 44

Чтобы это проверить, дополним правило для «MikroTik->PC Connections» параметром «established», т.е. соединение, которое установлено ранее:

Пока непонятно. Почему у вас счётчик работает. А у меня в фаервольные правила иногда не попадает.

End output rules output: in:(unknown 0) out:LAN-bridge, proto UDP, 192.168.66.1:53->192.168.66.6:51496, len 60
Почему он не попал в правило?
;;; established related chain=output action=accept connection-state=established,related log=no

Я чего-то не понял или мне надо ждать 3-ю часть?

Работа протокола DNS в контексте connections очень подробно рассмотрена во второй части цикла статей. А в третьей будут еще и уточняющие диаграммы. После их прочтения данный вопрос у вас будет снят.

Исправил, полюбовался на километры лога.
Выключил.
Сделал правило с логированием только с 53 порта. ну вроде всё правильно выглядит. Куда смотреть-то?

пакет от DNS сервера микротика к компу попадает в последнее запрещающее правило
End output rules output: in:(unknown 0) out:LAN-bridge, proto UDP, 192.168.66.1:53->192.168.66.6:51496, len 60
Почему он не попал в правило?
;;; established related chain=output action=accept connection-state=established,related log=no
Раз этот пакет ИЗ порта 53, то он явно ответный, а значит соединение established

С TCP тоже бывает случается

End output rules output: in:(unknown 0) out:LAN-bridge, proto TCP (SYN,ACK), 192.168.66.1:53->192.168.66.4:3765, len 52

С коннекшн трекером по умолчанию такая-же фигня. Но на всякий случай прилагаю текущие настройки.

ip firewall connection tracking print
enabled: auto
tcp-syn-sent-timeout: 5s
tcp-syn-received-timeout: 10s
tcp-established-timeout: 12h
tcp-fin-wait-timeout: 20s
tcp-close-wait-timeout: 10s
tcp-last-ack-timeout: 30m
tcp-time-wait-timeout: 10s
tcp-close-timeout: 10s
tcp-max-retrans-timeout: 5m
tcp-unacked-timeout: 10m
loose-tcp-tracking: yes
udp-timeout: 20s
udp-stream-timeout: 3m
icmp-timeout: 10s
generic-timeout: 10m
max-entries: 183768
total-entries: 870

ip firewall filter print where chain=output Flags: X — disabled, I — invalid, D — dynamic 0 chain=output action=drop dst-address-list=fail2ban 248d log=no log-prefix=»»

1 X ;;; established related chain=output action=accept connection-state=established,related protocol=udp src-port=53 log=yes log-prefix=»»

2 ;;; established related chain=output action=accept connection-state=established,related log=no log-prefix=»»

3 ;;; ICMP chain=output action=accept protocol=icmp log=no log-prefix=»»

4 ;;; NTP chain=output action=accept connection-state=new protocol=udp src-address=109.95.219.210 dst-address-list=NTP servers src-port=123 dst-port=123 log=no log-prefix=»»

5 ;;; ipsec. chain=output action=accept protocol=udp src-port=4500 log=no log-prefix=»»

6 ;;; temp ipsec chain=output action=accept connection-state=new protocol=udp dst-address-list=ipsec hosts dst-port=500,4500 log=no log-prefix=»»

7 ;;; telegram bot and DoH chain=output action=accept connection-state=new protocol=tcp out-interface-list=!LAN+VPN dst-port=443 log=no log-prefix=»»

8 ;;; download.mikrotik.com chain=output action=accept connection-state=new protocol=tcp dst-address-list=download.mikrotik.com out-interface-list=Internet dst-port=80 log=no log-prefix=»»

9 X ;;; DoH chain=output action=accept connection-state=new protocol=tcp dst-address=94.140.0.0/16 dst-address-list=DNS servers dst-port=443 log=no log-prefix=»»

10 ;;; DNS client chain=output action=accept connection-state=new protocol=udp dst-address-list=DNS servers dst-port=53,853 log=no log-prefix=»»

11 ;;; BGP chain=output action=accept connection-state=new protocol=tcp dst-address=163.172.210.8 out-interface=gre1 dst-port=179 log=no log-prefix=»»

12 ;;; Simple Service Discovery Protocol (answer on broadcast) chain=output action=accept connection-state=new protocol=udp src-address=192.168.66.1 dst-address=192.168.66.0/24 out-interface=LAN-bridge src-port=1900 log=no log-prefix=»»

13 ;;; upnp answer(why new?) chain=output action=accept connection-state=new protocol=tcp src-address=192.168.66.1 dst-address=192.168.66.0/24 out-interface=LAN-bridge src-port=2828 log=no log-prefix=»»

14 ;;; GRE to Amsterdam chain=output action=accept protocol=gre dst-address=158.101.195.230 log=no log-prefix=»»

15 ;;; Simple Service Discovery Protocol. Why ? chain=output action=drop protocol=udp dst-address=239.255.255.250 out-interface=LAN-bridge src-port=1900 dst-port=1900 log=no log-prefix=»»

16 ;;; igmp chain=output action=drop protocol=igmp src-address=192.168.66.1 dst-address=224.0.0.22 out-interface=LAN-bridge log=no log-prefix=»»

17 ;;; SSDP event notification serviceMS icslap
chain=output action=drop protocol=tcp src-address=192.168.66.1 out-interface=LAN-bridge port=2869 log=no log-prefix=»»

18 X ;;; icslap
chain=output action=drop protocol=tcp src-port=52572 dst-port=2869 log=no log-prefix=»»

19 ;;; The End chain=output action=drop log=yes log-prefix=»End output rules»

Источник

Mikrotik doh server connection error ssl internal error 6

Маршрутизаторы MikroTik — Обсуждение

Старая программа для конфигурирования — Winbox winbox.exe ( 111.5 КБ )
Новая программа для конфигурирования — Winbox winbox3.exe ( 1.39 МБ )
Версия 3.18 (исправлена совместимость с прошивками 6.43): winbox318.exe ( 1.58 МБ )
Версия 3.19 (исправлен логин в 6.45): winbox.exe ( 1.59 МБ )

]*ssdp:(alive|byebye)|^m-search[9-D ]\*[9-D ]http/1\.1[9-D —

]*user-agent: gnucleus [9-D —

]* Accept: application/x-rtsp-tunnelled|http/(0\.9|1\.0|1\.1) [1-5][0-9][0-9] [9-D —

Если вам требуется помощь в решении проблемы- выкладывайте свой конфиг: /export hide-sensitive terse

Сообщение отредактировал ferhad.necef — 03.01.23, 15:46

Smartecs, через L7 руки не дошли пока у самого на своём, но вроде как читал через webproxy можно, и вроде как: (где-то вычитал, почему-то запомнилось):
Cоздать разрешающее правило в котором ничего нет, кроме значения accept в action и просто разместить его перед/после правила, которое разрешает доступ.

У меня такая проблема на одном из встроенных в материнскую плату сетевых контроллеров. Так и не поборол, использую тот, который без проблем поднимает 100Мб.

Сообщение отредактировал Shoore — 03.12.14, 00:47

ToMaTo_0,
А после покупки делали полный сброс устройства, потом устанавливали свежую прошивку?

Добавлено 02.12.2014, 23:26:

Shoore,
Кстати думаю сообщения нужно перенести в тему указанную тобой.

ToMaTo_0,
Подключите роутер к другому ПК/ноуту/роутеру к чему нибудь где есть активный ethernet порт и посмотрите в статусе на сколько поднимется порт.
Интересует будет ли держать порт скорость 100/1000мб/с с другим устройством, не вашим ПК.
Также попробуйте на ПК «жестко» зажать порт на 100мб/с.

Сообщение отредактировал ctich — 03.12.14, 00:20

А можно уточнить расстояние «основного пачкорда» ??
Надеюсь не более 90м., и кабель обжат правильно.

Парни подскажите где туплю.
Необходимо доработать схему:
2 port tagged — vlan 55
3 port untagged — vlan 55
5 port tagged — vlan 55,56,57

Для vlan 56,57 создан bridge0 и с ними проблем нет.
Прописываю теперь 55 vlan.
Создаю vlan 55 указываю на interf 5
Создаю bridge 1
В bridge в port создаю приземляю vlan 55 на bridge 1
В bridge в port создаю eth 2 + bridge 1
В bridge в port создаю eth 5 + bridge 1
При такой схеме работает проблем нет, НО как только добавляю к eth 3 + bridge 1 . буквально через 8-15 пингов, канал ложится, с чем у меня вопрос, что не так ? o.O

ctich,
А третий порт у тебя нигде не больше не участвует?

Тут еще можно почитать

На момент тестирования нет, но время от времени он будет также активен, и поэтому должна быть полносвязность между тремя портами (2,3,5).
Может что то в фаерфолах надо подкрутить, завтра буду дальше мучить :scratch_one-s_head:
У меня в схеме ip адреса к вланам не привязаны (вернее не все), основная задача микротика — принять этот влан через аплинковый порт и просвичить на два других, и все ( на cisco, alcatel, huawei, zyxel, dlink как то проще, разрешил, прописал и забыл, а тут. ) .

update
возможно бред, но похоже нужно делать для порта 2+5 = bridge 1, 3+5 bridge 2. (по крайней мере на это натолкнула статья)

Сообщение отредактировал ctich — 03.12.14, 23:57

Источник

nifyecusp

Сообщения: 3
Зарегистрирован: 12 фев 2021, 13:31

У кого-то работает DoH с включенными опциями Verify DoH Certificate И (это важно!) с включенными опциями CRL Download и Use CRL в System -> Certificates? Пробовал сервера Cloudflare и Google. В логах ошибка «DoH server connection error: SSL: handshake failed: unable to get certificate CRL (6)» Если у вас все работает без ошибок — можете подсказать какие сертификаты вы ставили и что у вас в списке System -> Certificates -> CRL?

Код: Выделить всё

certificate print detail

1  L    T name="cloudf.pem_0" issuer=C=US,O=DigiCert Inc,OU=www.digicert.com,CN=DigiCert Global Root CA digest-algorithm=sha384 key-type=ec country="US" 
           organization="DigiCert Inc" common-name="DigiCert TLS Hybrid ECC SHA384 2020 CA1" key-size=secp384r1 subject-alt-name="" days-valid=3651 trusted=yes 
           key-usage=digital-signature,key-cert-sign,crl-sign,tls-server,tls-client serial-number="0A275FE704D6EECB23D5CD5B4B1A4E04" 
           fingerprint="d79a2d5e03295c0e9feae36d021ebd5209700ab1a9e817a43f30fa3c66f78d21" akid=03de503556d14cbb66f0a3e21b1bc397b23dd155 
           skid=0abc0829178ca5396d7a0ece33c72eb3edfbc37a invalid-before=sep/23/2020 06:00:00 invalid-after=sep/23/2030 05:59:59 expires-after=501w2d13h22m2s 

2       T name="cloudf.pem_1" issuer=C=US,O=DigiCert Inc,OU=www.digicert.com,CN=DigiCert Global Root CA digest-algorithm=sha1 key-type=rsa country="US" 
           organization="DigiCert Inc" unit="www.digicert.com" common-name="DigiCert Global Root CA" key-size=2048 subject-alt-name="" days-valid=9131 
           trusted=yes key-usage=digital-signature,key-cert-sign,crl-sign serial-number="083BE056904246B1A1756AC95991C74A" 
           fingerprint="4348a0e9444c78cb265e058d5e8944b4d84f9662bd26db257f8934a443c70161" akid=03de503556d14cbb66f0a3e21b1bc397b23dd155 
           skid=03de503556d14cbb66f0a3e21b1bc397b23dd155 invalid-before=nov/10/2006 06:00:00 invalid-after=nov/10/2031 06:00:00 expires-after=560w2d13h22m3s 

3  L    T name="GSR2.crt_0" issuer=OU=GlobalSign Root CA - R2,O=GlobalSign,CN=GlobalSign digest-algorithm=sha1 key-type=rsa organization="GlobalSign" 
           unit="GlobalSign Root CA - R2" common-name="GlobalSign" key-size=2048 subject-alt-name="" days-valid=5479 trusted=yes 
           key-usage=key-cert-sign,crl-sign serial-number="0400000000010F8626E60D" 
           fingerprint="ca42dd41745fd0b81eb902362cf9d8bf719da1bd1b1efc946f5b4c99f42c1b9e" akid=9be20757671c1ec06a06de59b49a2ddfdc19862e 
           skid=9be20757671c1ec06a06de59b49a2ddfdc19862e invalid-before=dec/15/2006 14:00:00 invalid-after=dec/15/2021 14:00:00 expires-after=43w4d21h22m3s

ROS 6.47.9

KaNelam

Сообщения: 586
Зарегистрирован: 11 июл 2017, 13:03

nifyecusp

Сообщения: 3
Зарегистрирован: 12 фев 2021, 13:31

12 фев 2021, 15:16

DoH server connection error: SSL: handshake failed: unable to get certificate CRL (6)

gmx

Модератор
Сообщения: 3054
Зарегистрирован: 01 окт 2012, 14:48

12 фев 2021, 15:50

Попробовал.

С включенными CRL Download и Use CRL в System -> Certificates не работает.
Пишет ошибку DoH server connection error: SSL: handshake failed: unable to get certificate CRL (6)

Если опции отключить, то все работает.

Наверное, лучше в техподдержку микротика написать…

nifyecusp

Сообщения: 3
Зарегистрирован: 12 фев 2021, 13:31

12 фев 2021, 16:17

В поддержке говорят
The server certificate has additional CRL in itself which is not installed in RouterOS CRL list. Currently you can disable the CRL usage as stated before or try to figure out what CRL’s are required for the specific server and add them manually.
Как и где искать не говорят.

Igor.Govor

Сообщения: 2
Зарегистрирован: 11 мар 2021, 16:59

11 мар 2021, 17:34

В общем у меня по сути та же проблема где-то с февраля 2020(в апреле вообще жесткий DDos на мои системы был(воевал по этому поводу очень серьезно с обращением в МВД и Роскомнадзор) Билайн тогда меня вообще отфутболил как не своего клиента(до сих пор тишина, что наводит на мысль о том, что это чудят мвдшные железки которые на анализе трафика висят), поставил в апреле 2020 https://1.1.1.1/dns-query с проверкой сертификата (но параметры CLR не отмечал!), сертификат брал отсюда https://cacerts.digicert.com/DigiCertGl … CA.crt.pem и всё работало отлично примерно до сентября 2020 (пошли небольшие провалы при подключении к Cloudflare) а с 06.03.2021 вообще трэш начался, звоню провайдеру, уверяют что все в порядке(на скринах видно что потери идут на шлюзе у провайдера, а они пытаются меня уверить что это мое железо глючит). ИМХО: В общем попробую сейчас включить CLR, но дело тут явно в том что очень многим не нравится что они больше не видят что, откуда и в каком объеме проходит через сеть пользователя интернет.
P.S. Были жалобы на Акадо(соседка ко мне обращалась за помощью, у неё сайт не открывался (реально было ошибочное присвоение имя адрес со стороны Акадовских DNS) по поводу работы их DNS, но там вообще можно даже не звонить а самостоятельно DNS в настройках поменять и забыть про них как про страшный сон. А вот с использованием DoH, DoT, DoQ(DNS over QUIC(еще более прикольная штука)) полагаю кто-то явно борется(Посмотрите публикации по поводу законопроекта запрещающего использование данных протоколов передачи и попытка внесения изменения в 149-ФЗ с сентября 2020 года!!!). С показателями производительности крупнейших DNS серверов можно ознакомиться на этом сайте: https://www.dnsperf.com/#!dns-resolvers,Europe,uptime В общем всем удачи и хорошего коннекта.

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

gmx

Модератор
Сообщения: 3054
Зарегистрирован: 01 окт 2012, 14:48

12 мар 2021, 09:23

По поводу борьбы, кстати, светлая мысль. Очень даже может быть. Тоже начались проблемы и именно с 1.1.1.1 Но….

попробуйте настроить DoH на Гугол. Мне помогло, работает, почти как часы. Есть подозрение, что именно к 1.1.1.1 запросы пытаются банить.

denis1978

Сообщения: 56
Зарегистрирован: 06 июн 2020, 09:52

12 мар 2021, 09:36

gmx писал(а): ↑

12 мар 2021, 09:23


По поводу борьбы, кстати, светлая мысль. Очень даже может быть. Тоже начались проблемы и именно с 1.1.1.1 Но….

попробуйте настроить DoH на Гугол. Мне помогло, работает, почти как часы. Есть подозрение, что именно к 1.1.1.1 запросы пытаются банить.

А ещё лучше заведите в сети малинку, а на нее поставьте PiHole, будет Вам и DOH и резалка мусора и ещё много плюшек в одном флаконе.
Работает на самом деле как часы, не напрягая микрот.

Сегодня рассмотрим интересное решение — это настройку DoH на роутере Mikrotik (другими словами DNS over HTTPS). В одной из предыдущих статей, мы вам рассказывали, как настроить DNS сервер возьмём ее за основу и немного докрутим.

DoH – это технология которая позволяет шифровать ваши запросы с помощью TLS. Был придуман для защиты запросов от анализа или вскрытия, а также подмены результатов запроса. Обычный DNS ничем не защищён и передаёт данные в открытом виде. Запросы отправляются по UDP на 53 порт. В DoH немного по-другому, т.к. тут есть TLS и HTTP, то по сути своей это TCP на 443 порт, т.к. тут есть TCP, то работы данного протокола, в разы медленно чем у прародителя. Конечно, его тоже можно вскрыть при желании, но для этого нужна прокся со вскрытием TLS, что накладывает определённые технические нюансы и ресурсы.

Если вы хотите углубить свои знания по работе с роутерами MikroTik, то наша команда рекомендует пройти курсы которые сделаны на основе MikroTik Certified Network Associate и расширены автором на основе опыта . Подробно читайте ниже.

В использовании данной технологии есть клиент и сервер. Так вот, клиентская часть реализована в RouterOS с версии 6.47. Mikrotik не может быть DoH сервером.

Настройка DoH

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

  • OpenDNS — https://doh.opendns.com/dns-query
  • Quad9  — https://dns.quad9.net/dns-query
  • Cloudflare — https://cloudflare-dns.com/dns-query
  • Google Public — https://dns.google/dns-query

В примере я буду использовать проверенный временем Cloudflare. Они обещают не передавать аналитику третьим лица.

Открываем IP – DNS и вставляем строку резолвера в Use DoH Server

Настройка DNS over HTTPS

Обязательно ставим галочку Verify DoH Certificate.

Обратите внимание на адреса в Servers. Это классические вышестоящие резолверы имен. Их убирать не нужно. Потому что Mikrotik не будет знать, какой IP соответствует cloudflare-dns.com. Да, это нюанс, про который нельзя забывать.

Попробуем проверить работу по новой технологии через nslookup.

Не работает DoH на Mikrotik

В примере выше, я попытался разрешить имя google.com через Mikrotik. Как мы видим, ничего не вышло и в логах ошибка: DoH server connection error: SSL : handshake failed….

Так же видно, что в кэше тоже ничего нет. В чем может быть причина? Правильно в сертификате!

Импорт сертификатов

RouterOS ничего не знает о сертификате Cloudflare и о других, т.к. в него не импортированы корневые публичные ключи глобальных CA и по этому он не может выстроить доверие. Допустим в ОС Windows они уже идут в составе и добавляются / удаляются с обновлениями.

Прежде чем импортировать корневой CA вам нужно понять, кем был выпущен сертификат для одного из сервис-провайдеров. Допустим, для моего примера выпустил DigiCert.

Качаем сертификат CA на микротик

Качаем его публичную часть по этой ссылке. Делаем его Upload на девайс, после в System – Certificates импортируем.

Добавление корневого сертификата в домеренные на RouterOS

Проверим снова разрешение имён

Проверка работы DoH

Теперь все отлично. Как вы видите, ничего сложного нет, выбираем сервис, который вам больше нравится, прописываем его в настройках и импортируем CA того, кто выпустил вашему сервису сертификат, и все на этом настройка DoH на MikroTik завершена.

89 вопросов по настройке MikroTik

Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдете для себя полезную информацию в курсе «Настройка оборудования MikroTik». 162 видеоурока, большая лабораторная работа и 89 вопросов, на каждый из которых вы будете знать ответ. Подробности и доступ к началу курса бесплатно тут.

Ранее в первой (теоретической) части статьи была подробно описана сущность сетевого соединения глазами ядра маршрутизатора. В текущей части мы закрепим информацию в результате рассмотрения работы прикладного протокола DNS через подсистемы RouterOS.

В заключительной части речь пойдёт о диаграмме потока пакетов, при работе с которой важно понимать сущность рассматриваемого сетевого соединения, а также о не документированной в явном виде особенности работы NAT. Материала достаточно много, и чтобы читатель не потерял смысловую нить к концу статьи, она разделена на 3 части: теория, практика и особенность NAT.

Материалы носят в основном теоретический характер и предназначены для людей, тонко настраивающих Firewall, Qos и маршрутизацию, где им придётся непосредственно работать с рассматриваемыми connections. Цикл статей не предназначен для новичков и может их только запутать. Полагаю, что читатель хорошо знаком с предметом разговора.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Без лишних слов приступим к описанию практической задачи. Имеем классическую локальную сеть, в которой клиенты (в том числе беспроводные) подключены к маршрутизатору (со стороны LAN IP адрес 192.168.1.1, со стороны WAN IP адрес 10.0.2.47) и получают посредством работы DHCP протокола в качестве DNS сервера непосредственно IP адрес роутера. Сам роутер использует в качестве сервера DNS IP адрес Cloudflare (/ip dns set allow-remote-requests=yes servers=1.1.1.1). Пользователь загружает свой ноутбук (PC), подключается к Wi-Fi сети, получает от DHCP сервера IP адрес 192.168.1.2 и в браузере открывает сайт, например, mail.ru. Для простоты сосредоточимся на работе не шифрованного DNS протокола, позволяющего увидеть содержание пакетов на прикладном уровне.

Сколько типов DNS соединений будет создано в RouterOS?

Разберёмся детально и разложим всё по полочкам. Если кто-то не уверен в ответе, то после прочтения ясность будет внесена. В действительности имеем следующие DNS запросы и ответы, передающиеся по транспортному протоколу UDP:

  • PC -> MikroTik;
  • MikroTik -> DNS servers;
  • DNS servers -> MikroTik;
  • MikroTik -> PC.

Рассчитываю, что читатель понимает, почему это так, и не отвлекаюсь на описание работы непосредственно DNS протокола. Выделим пакеты каждого варианта запросов, для этого воспользуемся маркировкой трафика:

/ip firewall mangle
add action=mark-connection chain=prerouting comment=
    "DNS catcher PC->MikroTik Connections" dst-address=192.168.1.1 dst-port=
    53 new-connection-mark="DNS catcher PC->MikroTik Connections" 
    passthrough=yes protocol=udp
add action=mark-packet chain=prerouting comment=
    "DNS catcher PC->MikroTik Packets" connection-mark=
    "DNS catcher PC->MikroTik Connections" new-packet-mark=
    "DNS catcher PC->MikroTik packets" passthrough=no
add action=mark-connection chain=prerouting comment=
    "DNS catcher DNS Servers->MikroTik Connections" new-connection-mark=
    "DNS catcher DNS Servers->MikroTik Connections" passthrough=yes protocol=
    udp src-address-list="DNS servers" src-port=53
add action=mark-packet chain=prerouting comment=
    "DNS catcher DNS Servers->MikroTik Packets" connection-mark=
    "DNS catcher DNS Servers->MikroTik Connections" new-packet-mark=
    "DNS catcher DNS Servers->MikroTik Packets" passthrough=no
add action=mark-connection chain=output comment=
    "DNS catcher MikroTik->PC Connections" new-connection-mark=
    "DNS catcher MikroTik->PC Connections" passthrough=yes protocol=udp 
    src-address=192.168.1.1 src-port=53
add action=mark-packet chain=output comment=
    "DNS catcher MikroTik->PC Packets" connection-mark=
    "DNS catcher MikroTik->PC Connections" new-packet-mark=
    "DNS catcher MikroTik->PC Packets" passthrough=no
add action=mark-connection chain=output comment=
    "DNS catcher MikroTik->DNS Servers Connections" dst-address-list=
    "DNS servers" dst-port=53 new-connection-mark=
    "DNS catcher MikroTik->DNS Servers Connections" passthrough=yes protocol= udp
add action=mark-packet chain=output comment=
    "DNS catcher MikroTik->DNS Servers Packets" connection-mark=
    "DNS catcher MikroTik->DNS Servers Connections" new-packet-mark=
    "DNS catcher MikroTik->DNS Servers Packets" passthrough=no

Маркировка осуществляется по схеме: сначала обозначаются соединения (mark-connection) затем пакеты этих соединений (mark-packet). Соединения «PC -> MikroTik» отлавливаются по IP адресу роутера и 53 номеру порта назначения. Здесь и далее я опускаю одинаковый и потому не информативный в текущем контексте префикс «DNS catcher». Соединения «MikroTik -> DNS servers» помечаются только по 53 номеру порта назначения. Соединения «DNS servers -> MikroTik» маркируются по такой же схеме, только в правиле используется 53 порт отправителя. Соединения «MikroTik -> PC» отлавливаются на основе IP адреса маршрутизатора и 53 порта отправителя. Для исключения ошибки перемаркировка пакетов ограничена (passthrough=no). Обращаю внимание, пакетов, а не соединений. Чтобы убедиться в корректности работы Mangle, по очереди зеркалируем пакеты каждого типа соединений. Пример, как это делается для пакетов «MikroTik -> DNS servers», представлен ниже:

/ip firewall mangle
add action=sniff-tzsp chain=postrouting comment="Sniffer"
packet-mark="DNS catcher MikroTik->DNS Servers Packets" sniff-target=
    IP_адрес_принимающего_сервера sniff-target-port=37008

Как сохранить трафик на принимающей стороне, рассмотрено здесь. Для зеркалируемых пакетов не забываем снять ограничение, озвученное выше, и выставить passthrough=yes, иначе правило /ip firewall mangle add action=sniff-tzsp будет проигнорировано. Почему для разных типов соединений используются различные цепочки в Firewall (Prerouting, Output, Postrouting) будет рассмотрено ниже. Для тех, кто вообще не в теме, коротко прокомментирую: пакет проходит через различные части сетевой подсистемы Linux, ядро применяет правила из определённых цепочек (chains) к пакетам. После получения нового пакета от физического уровня ядро активизирует правила в цепочках, соответствующих вводу. Все эти структуры данных обслуживаются ядром. Такая подсистема в целом и является Firewall-ом, который из пространства пользователя создаёт правила и управляет ими. Иллюстрация, взятая здесь, в очень упрощённом варианте отображает связь между различными цепочками:

В качестве DNS клиента удобно использовать встроенную во многие операционные системы программу nslookup, которой можно указать IP адрес DNS сервера (192.168.1.1) куда будет отправлен запрос:

nslookup mail.ru 192.168.1.1

Посмотрим, что представляет из себя каждый тип выделенных нами пакетов:

  • Соединения с меткой «PC->MikroTik Connections» (содержат пакеты «PC->MikroTik packets») передают DNS query;

  • Соединения с меткой «MikroTik->DNS Servers Connections» (содержат пакеты «MikroTik->DNS Servers Packets») также передают DNS query;

  • Соединения с меткой «DNS Servers->MikroTik Connections» (содержат пакеты «DNS Servers->MikroTik Packets») передают DNS query response;

  • Соединения с меткой «MikroTik->PC Connections» (содержат пакеты «MikroTik->PC Packets») также передают DNS query response.

Видно, что маркировка соответствует своим названиям, и, следовательно, выполнена корректно. Пришло время ответить на вопрос, сколько типов соединений создано в RouterOS? Теоретическая часть цикла статей позволяет нам на него ответить – будет создано 2 типа соединения, которые должны получить метки «PC->MikroTik Connections» и «MikroTik->DNS Servers Connections». Внутри операционной системы созданы всего 2 типа соответствующих сокетов (с одинаковыми Stream index). Хотя с точки зрения UDP протокола, будет 4 типа отправки пакетов, ведь UDP ничего не знает про полезную нагрузку прикладного протокола DNS, и что в нём идут запросы и ответы на них, и какие там существуют клиент-серверные взаимосвязи. Чтобы это проверить, дополним правило для «MikroTik->PC Connections» параметром «established», т.е. соединение, которое установлено ранее:

/ip firewall mangle
add action=mark-connection chain=output comment=
    "DNS catcher MikroTik->PC Connections" connection-state=established 
    new-connection-mark="DNS catcher MikroTik->PC Connections" passthrough=yes 
    protocol=udp src-address= 192.168.1.1 src-port=53

Ничего не изменится, счётчик пакетов будет отрабатывать, потому как соединение было установлено ранее на этапе «PC->MikroTik Connections». А если укажем connection-state=new, то счётчик замрёт, таких новых соединений нет. Попробуем ещё дополнительно повесить указанную марку на соединения, которые ранее не размечались (connection-mark=no-mark):

/ip firewall mangle
add action=mark-connection chain=output comment=
    "DNS catcher MikroTik->PC Connections" connection-mark=no-mark 
    new-connection-mark="DNS catcher MikroTik->PC Connections"
    passthrough=yes protocol=udp src-address=192.168.1.1 src-port=53

Счётчики остановятся и возобновят свою работу только, если мы укажем не пустой маркер, а «PC->MikroTik Connections». Для других правил будет аналогичная ситуация. Однако если заглянуть в Connection tracking, то там можно увидеть следующую картину:

Как видно, маркировка как бы перевёрнута, что вначале может даже ошеломить. Чтобы такого с вами не произошло, разберу ситуацию подробно. Если мы укажем для соединений «MikroTik->PC Connections» и «DNS Servers->MikroTik Connections» условие connection-mark=no-mark, то Connection tracking даст ожидаемый результат:

Без него происходит перемаркировка соединений, а с ним уже существующие соединения не получат новую марку. Вышесказанное звучит достаточно запутанно, поэтому передам туже самую мысль, касательно не корректной ситуации в Connection tracking, другими словами. Внутри маршрутизатора возникает следующая ситуация. DNS запрос от PC поступает на DNS сервер, интегрированный в MikroTik. RouterOS внутри себя создаёт первое сетевое соединение «PC->MikroTik Connections». Далее роутер осуществляет DNS запрос к серверу Cloudflare, и создаётся второе соединение «MikroTik->DNS Servers Connections». Далее от сервиса Cloudflare приходит DNS query response, что является продолжением и окончанием второго соединения. После этого роутер выполняет DNS query response в сторону PC, что является продолжением и окончанием первого соединения. Правилами Mangle мы вмешиваемся в вышеописанные действия.

Первая половина первого запроса у нас маркируется как «PC->MikroTik Connections» (корректно), а вторая половина первого запроса маркируется как «MikroTik->PC Connections» (что и должно было вызвать смуту в нашей голове при просмотре Connection tracking, как показано на рисунке с некорректной ситуацией). На деле это одно и то же соединение внутри RouterOS. Однако половина его вышла с одной меткой, а вторая половина с другой, и Connection tracking отрисовал только ту метку, которая пришла к нему последней (в последнем блоке по движению пакетов внутри операционной системы, об этом подробнее будет в третьей части цикла статей). Для соединений «MikroTik->DNS Servers Connections» и «DNS Servers->MikroTik Connections» возникает ровно такая же ситуация. Поэтому выровнять ситуацию нам помог параметр connection-mark=no-mark.

Отмечу, что если в правилах Mangle указать passthrough=no, которое при срабатывании пропустит трафик, минуя оставшиеся правила маркировки (значение по умолчанию для параметра passthrough=yes, поэтому в явном виде оно не указывается), то при отсутствующем параметре connection-mark=no-mark перемаркировка всё равно произойдёт. Ключевую роль опять же играет прохождение соединений и пакетов внутри операционной системы маршрутизатора, о чём мы подробно поговорим в третьей части цикла статей. Параметр passthrough=no попросту не отработает, так как первая половина соединения и вторая половина соединения проходят различными маршрутами внутри роутера.

Резюмирую вышесказанное. При работе описанной классической сети для одного DNS запроса клиента LAN в реальности UDP соединение отрабатывает 4 раза: в направление роутера, затем до DNS сервера Cloudflare и обратно. Однако RouterOS будет воспринимать их только как 2 соединения: от клиента Wi-Fi в направлении маршрутизатора и обратно, а также от роутера до DNS сервера Cloudflare и обратно. В глазах MikroTik, любой одиночный UDP пакет — это новое соединение до тех пор, пока не будет отправлен ответ в обратном направлении. Когда есть ответ, то это уже для него UDP соединение. Разумеется, вышесказанное правило ограничено во времени в соответствии с таймаутами, о которых речь шла в первой части цикла статей.

Ранее говорилось, что защита роутера от DOS атак на L3 уровне может базироваться на правилах обработки сетевых соединений. На практике это будет выглядеть так:

/ip firewall filter
add action=add-src-to-address-list address-list=DOS address-list-timeout=1h chain=input comment="List DOS" connection-limit=100,32 connection-state=new in-interface=WAN
add action=drop chain=input comment="Drop DOS list" src-address-list=DOS

Логика работы приведённых правил следующая: не более 100 новых сетевых соединений с IP адреса с 32 маской, иначе IP адрес идет в бан. Подробнее про возможности можно почитать здесь. В комментариях правильно отметили, что правильнее банить не в таблице Firewall Filter, а в таблице Firewall Raw, почему это так станет очевидно после прочтения третьей части цикла статей:

/ip firewall raw
add action=drop chain=input comment="Drop DOS list" src-address-list=DOS

▍ Заключение

В статье с практической точки зрения рассмотрено, что такое сетевое соединение в ядре Linux. Внутри RouterOS и других, «Linux based» операционных систем, понятие сетевое соединение не идентично клиент-серверному соединению. MikroTik работает с виртуальными сокетами, под которыми следует понимать совокупность пар IP адрес отправителя и номера порта отправителя, а также IP адрес получателя и номера порта получателя, искусственно введённых для обеспечения функционирования устройства. Это особенно важно при настройке Firewall, а следовательно, и связанных с ним Qos и маршрутизации, в некоторых случаях.

Часть 1
Часть 2 (вы тут)
Часть 3

Problem:

The DNS server integrated into your MikroTik router doesn’t work and the log shows a lot of

DoH server connection error: SSL: ssl: certificate not yet valid (6)

messages:

Reason for the error:

The issue here is that the clock in your MikroTik router does not (yet) know the correct time.

For example, the clock might be set to 1st of January, 1970 – however, the TLS certificate of the DNS-over-HTTPS server is only valid from, for example, 1st of November, 2022. This is why the MikroTik router tells you that the certificate isn’t valid.

Preferred solution: Fix the time using NTP

Just tell the MikroTik server to get the time from a public NTP server.

Open System -> NTP client in WebFig or Winbox. Typically, you want to use the upstream router as an NTP server. In my case, that is 192.168.178.1.

Ensure that Enabled is checked, add the NTP server and click Apply.

After waiting a few seconds, you should see synchronized under Status. This means that the clock of the MikroTik router has been set correctly and the issue should be fixed.

Alternate solution: Disable DNS-over-HTTPs

This solution decreases the security of your system and is hence not preferred. You should always set the time of your router correctly, not doing so will lead to a bunch of issues.

If you, however, still intend to disable DNS-over-HTTPS, open IP -> DNS and remove all servers under Use DoH servers, then click Apply.

After that, your router will use the normal DNS servers – 1.1.1.1 in my case. Ensure to enter some server there to make sure DNS requests work – if in doubt, you can always use 1.1.1.1 (Cloudflare) or 8.8.8.8 (Google).

Note that requests to those servers will neither be encrypted nor authenticated, so requests can be sniffed and/or manipulated by anyone capable of manipulating traffic to your device. Even though DNS-over-HTTPS is slighly slower (which, in turn is alleviated by the caching feature of the MikroTik router’s DNS server), it provides a huge security benefit.

Понравилась статья? Поделить с друзьями:
  • Doh server connection error network is unreachable mikrotik
  • Doh server connection error idle timeout waiting data
  • Does not match checksum unarc dll returned an error code 12
  • Does not match a valid block type worldedit как исправить
  • Does not appear to be a git repository как исправить