LINUX.ORG.RU

IPv6 + systemd-networked + systemd-resolved + dnscrypt-proxy services

 ,


2

4

Пролог

Сконфигурированы упомянутые в title темы сервисы для совместной работы и обхода DNS Inernet Service Provider.

Используется один из DNS resolver IPv4 из списка https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv

Сцена первая

blitz@inode ~ % sudo systemctl status systemd-networkd
● systemd-networkd.service - Network Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2017-07-21 17:32:27 CEST; 2min 3s ago
     Docs: man:systemd-networkd.service(8)
 Main PID: 545 (systemd-network)
   Status: "Processing requests..."
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/systemd-networkd.service
           └─545 /usr/lib/systemd/systemd-networkd

Jul 21 17:32:27 inode systemd[1]: Starting Network Service...
Jul 21 17:32:27 inode systemd-networkd[545]: Enumeration completed
Jul 21 17:32:27 inode systemd-networkd[545]: eno1: Renamed to eth0
Jul 21 17:32:27 inode systemd[1]: Started Network Service.
Jul 21 17:32:27 inode systemd-networkd[545]: eth0: Renamed to eno1
Jul 21 17:32:27 inode systemd-networkd[545]: eno1: IPv6 successfully enabled
Jul 21 17:32:30 inode systemd-networkd[545]: eno1: Gained carrier
Jul 21 17:32:32 inode systemd-networkd[545]: eno1: Gained IPv6LL
Jul 21 17:32:33 inode systemd-networkd[545]: eno1: Configured
Jul 21 17:32:34 inode systemd-networkd[545]: eno1: DHCPv4 address 192.168.1.5/24 via 192.168.1.1
blitz@inode ~ % sudo systemctl status systemd-resolved
● systemd-resolved.service - Network Name Resolution
   Loaded: loaded (/usr/lib/systemd/system/systemd-resolved.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2017-07-21 17:32:28 CEST; 2min 6s ago
     Docs: man:systemd-resolved.service(8)
           http://www.freedesktop.org/wiki/Software/systemd/resolved
           http://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
           http://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
 Main PID: 562 (systemd-resolve)
   Status: "Processing requests..."
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/systemd-resolved.service
           └─562 /usr/lib/systemd/systemd-resolved

Jul 21 17:32:27 inode systemd[1]: Starting Network Name Resolution...
Jul 21 17:32:27 inode systemd-resolved[562]: Positive Trust Anchors:
Jul 21 17:32:27 inode systemd-resolved[562]: . IN DS 19036 8 2 49aac11d7b6f6446702e54a1607371607a1a41855200fd2ce1cdde32f24e8fb5
Jul 21 17:32:27 inode systemd-resolved[562]: . IN DS 20326 8 2 e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d
Jul 21 17:32:27 inode systemd-resolved[562]: Negative trust anchors: 10.in-addr.arpa 16.172.in-addr.arpa 17.172.in-addr.arpa 18.172.in-addr.arpa 19.172.in-addr.arpa 
Jul 21 17:32:27 inode systemd-resolved[562]: Using system hostname 'inode'.
Jul 21 17:32:28 inode systemd[1]: Started Network Name Resolution.
Jul 21 17:32:40 inode systemd-resolved[562]: Switching to DNS server 127.0.0.1 for interface eno1.
Jul 21 17:32:40 inode systemd-resolved[562]: Switching to system DNS server 127.0.0.1.
blitz@inode ~ % sudo systemctl status dnscrypt-proxy  
● dnscrypt-proxy.service - DNSCrypt client proxy
   Loaded: loaded (/usr/lib/systemd/system/dnscrypt-proxy.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2017-07-21 17:32:27 CEST; 2min 11s ago
     Docs: man:dnscrypt-proxy(8)
 Main PID: 563 (dnscrypt-proxy)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/dnscrypt-proxy.service
           └─563 /usr/bin/dnscrypt-proxy /etc/dnscrypt-proxy.conf

Jul 21 17:32:27 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:27 2017 [NOTICE] Starting dnscrypt-proxy 1.9.4
Jul 21 17:32:27 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:27 2017 [INFO] Loading plugin [/usr/lib/dnscrypt-proxy/libdcplugin_example_cache.so]
Jul 21 17:32:27 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:27 2017 [INFO] Loaded plugin: [A basic DNS cache]
Jul 21 17:32:27 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:27 2017 [INFO] Generating a new session key pair
Jul 21 17:32:27 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:27 2017 [INFO] Done
Jul 21 17:32:37 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:37 2017 [INFO] Server certificate with serial #1500606001 received
Jul 21 17:32:37 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:37 2017 [INFO] This certificate is valid
Jul 21 17:32:37 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:37 2017 [INFO] Chosen certificate #1500606001 is valid from [2017-07-21] to [2017-07-22]
Jul 21 17:32:37 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:37 2017 [INFO] Server key fingerprint is 9A06:0931:9CC8:23E4:E519:2A16:2E0A:6BF2:76D3:8C70:0542:6E9E:0CB6
Jul 21 17:32:37 inode dnscrypt-proxy[563]: Fri Jul 21 17:32:37 2017 [NOTICE] Proxying from 127.0.0.1:53 to [2001:19f0:5001:30a:5400:ff:fe58:7140]:443

Архиважное - timing services. systemd-resolved должна работать только с 127.0.0.1/dnscrypt-proxy. dnscrypt-proxy должен успеть обратиться к серверу DNS провайдера 192.168.1.1 первым и все DNS запросы обрабатывать сам.

Сцена вторая

При открытии китайского сайта, systemd-resolved - переключается на IPv6 - в обход dnscrypt-proxy.

Переключается на DNS servers провайдера.

Jul 25 01:45:54 inode systemd-resolved[581]: Switching to system DNS server 127.0.0.1.
Jul 25 01:46:01 inode systemd-resolved[581]: Switching to DNS server 127.0.0.1 for interface eno1.
Jul 25 01:46:02 inode systemd-resolved[581]: Switching to DNS server [b]192.168.1.1[/b] for interface eno1.
Jul 25 01:46:02 inode systemd-resolved[581]: Switching to DNS server [b]fe80::9e97:26ff:fe13:d6a9%2[/b] for interface eno1.

Эпилог

Как запретить systemd-resolved переключение на другие DNS серверы?



Последнее исправление: blitz (всего исправлений: 6)
systemd-resolve --help
-4     Resolve IPv4 addresses
-6     Resolve IPv6 addresses

Посмотри, что там в юните. Или может наглухо отключить ipv6, если не нужен.

ving2 ★
()
Последнее исправление: ving2 (всего исправлений: 1)
Ответ на: комментарий от ving2

systemd-resolved начинает выбор DNS серверов, как и описано в man 5 resolved.conf.

Задан system DNS 127.0.0.1 - тот, что dnscrypt-proxy. /etc/systemd/resolved.conf

[Resolve]
DNS=127.0.0.1
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
#Domains=
#LLMNR=yes
#MulticastDNS=yes
#DNSSEC=no
#Cache=yes
#DNSStubListener=udp

Если systemd-resolved будет использовать только 127.0.0.1 - то проблем не возникает.

Но, поскольку systemd-networked, systemd-resolved и dnscrypt-proxy запускаются одновременно, возникает race condition, при котором dnscrypt-proxy иногда не успевает проинициализировать hand-shake со сторонним DNS Proxy сервером и systemd-resolved пробует DNS серверы роутера IPv4 192.168.1.1 и IPv6 fe80::9e97:26ff:fe13:d6a9%2.

В итоге - DNS resolving идёт по трём серверам.

Тут нужно подумать, как прописать в юнитах задержку systemd-resolved по условию успешной инициализации dnscrypt-proxy.

Первая попытка закончилась фиаско, не задерживается.

IPv6 DNSCrypt Proxy сервер нужен.

Убедился, что некоторые китайские веб-сайты используют IPv6 адреса и тогда, если выбран IPv4 DNS Proxy server, systemd-resolved будет резолвить, использую IPv6 DNS server провайдера.

blitz
() автор топика
Ответ на: комментарий от FreeBSD

В данном случае - найдена причина, по которой не так работает systemd-resolved.

Вопрос, как уговорить сервис - делать как надо?

У вас получилось найти то, что слало запросы на резолвинг репозиториев?

blitz
() автор топика
Ответ на: комментарий от blitz

systemd-resolved пробует DNS серверы роутера IPv4 192.168.1.1 и IPv6 fe80::9e97:26ff:fe13:d6a9%2.

а откуда он про них знает? Они у тебя в resolv.conf прописаны, помимо 127.0.0.1 (dns-crypt)

п.с. с systemd-resolve я поторопился эта другая штука.

ving2 ★
()
Ответ на: комментарий от blitz

Посмотри опцию after в systemd unit'ах и допиши, куда надо.

Никаких временных задержек, это гребанный говнокод.

Deleted
()
Ответ на: комментарий от ving2

а откуда он про них знает?

Говорят в исходниках хардкод. Сам не смотрел.

imul ★★★★★
()
Ответ на: комментарий от Deleted

Так и сделал. Опять.

unit /usr/lib/systemd/system/systemd-resolved.service теперь.

blitz@inode /usr/lib/systemd/system % cat systemd-resolved.service 
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Network Name Resolution
Documentation=man:systemd-resolved.service(8)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/resolved
Documentation=http://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
Documentation=http://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
After=systemd-networkd.service network.target
Before=network-online.target nss-lookup.target
Wants=nss-lookup.target

# On kdbus systems we pull in the busname explicitly, because it
# carries policy that allows the daemon to acquire its name.
Wants=org.freedesktop.resolve1.busname
After=org.freedesktop.resolve1.busname
After=dnscrypt-service

[Service]
Type=notify
Restart=always
RestartSec=0
ExecStart=/usr/lib/systemd/systemd-resolved
WatchdogSec=3min
CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_SETPCAP CAP_CHOWN CAP_DAC_OVERRIDE CAP_FOWNER CAP_NET_RAW CAP_NET_BIND_SERVICE
PrivateTmp=yes
PrivateDevices=yes
ProtectSystem=full
ProtectHome=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
MemoryDenyWriteExecute=yes
RestrictRealtime=yes
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6
SystemCallFilter=~@clock @cpu-emulation @debug @keyring @module @mount @obsolete @raw-io

[Install]
WantedBy=multi-user.target
Alias=dbus-org.freedesktop.resolve1.service

Изменено:

blitz@inode /usr/lib/systemd/system % diff -uraN systemd-resolved.service.sav systemd-resolved.service
--- systemd-resolved.service.sav	2017-07-26 10:39:48.514652885 +0200
+++ systemd-resolved.service	2017-07-26 10:40:41.777385598 +0200
@@ -19,6 +19,7 @@
 # carries policy that allows the daemon to acquire its name.
 Wants=org.freedesktop.resolve1.busname
 After=org.freedesktop.resolve1.busname
+After=dnscrypt-service
 
 [Service]
 Type=notify

blitz
() автор топика
Ответ на: комментарий от imul

Интересно.

Попробую - сразу после рекомендации merhalak. Не всё сразу, нужно сейчас systemctl daemon-reload исполнить.

blitz
() автор топика
Ответ на: комментарий от ving2

Service systemd-resolved не задерживается до инициализации сервиса dnscrypt-proxy.

В файле конфигурации systemd-resolved - указано After dnscrypt-proxy.

systemd-resolved правильно читает данные с /etc/resolv.conf и определяет 127.0.0.1 as system DNS server.

race condition, systemd-resolved переключается - без спроса - на DNS servers провайдера и systemd After dnscrypt-proxy - не работает.

blitz
() автор топика
Ответ на: комментарий от blitz
Jul 26 10:49:18 inode systemd-resolved[592]: Switching to system DNS server 127.0.0.1.
Jul 26 10:49:55 inode systemd-resolved[592]: Switching to DNS server 127.0.0.1 for interface eno1.
Jul 26 10:49:18 inode systemd-resolved[592]: Switching to system DNS server 127.0.0.1.
Jul 26 10:49:55 inode systemd-resolved[592]: Switching to DNS server 127.0.0.1 for interface eno1.
Jul 26 10:51:25 inode systemd-resolved[592]: Switching to DNS server 192.168.1.1 for interface eno1.
Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [INFO] Refetching server certificates
Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [INFO] Server certificate with serial #1501056002 received
Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [INFO] This certificate is valid
Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [INFO] Chosen certificate #1501056002 is valid from [2017-07-26] to [2017-07-
Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [INFO] Server key fingerprint is 43E6:F907:CAD3:8F9C:8B49:3A1D:D932:71CA:600C
Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [NOTICE] Proxying from 127.0.0.1:53 to [2001:19f0:5001:30a:5400:ff:fe58:7140]

Вот этот момент - Jul 26 10:51:25 inode systemd-resolved[592]: Switching to DNS server 192.168.1.1 for interface eno1, когда переключается на DNS провайдера.

Два вопроса:

Почему переключается на DNS провайдера вместо system DNS 127.0.0.1? В это время - DNS Crypt успел проиницаилизироваться, Jul 26 10:49:31 inode dnscrypt-proxy[590]: Wed Jul 26 10:49:31 2017 [NOTICE] Proxying from 127.0.0.1:53 to [2001:19f0:5001:30a:5400:ff:fe58:7140]

Почему и откуда systemd-resolved берёт данные DNS провайдера, не указанные ни в одном файле конфигурации?

Это для удобства пользователя и systemd - знает лучше? Вопрос отнюдь не риторический.

blitz
() автор топика
Ответ на: комментарий от blitz

Почему и откуда systemd-resolved берёт данные DNS провайдера, не указанные ни в одном файле конфигурации?

вот это очень интересно, а тебе оно очень нужно, может mask unit. И не мучаться=)

ving2 ★
()
Ответ на: комментарий от imul

+1! Именно gateway 192.168.1.1.

Думается, что так заложено в коде systemd-resolved - не успев получить отзыв от system DNS 127.0.0.1, переключается на DNS gateway - провайдера.

blitz
() автор топика
Ответ на: комментарий от blitz

Покажи как, пожалуйста!

#systemctl disabled systemd-resolved
#systemctl mask systemd-resolved

все сервиса больше не будет, обратно вкл. unmask

ving2 ★
()
Последнее исправление: ving2 (всего исправлений: 1)
Ответ на: комментарий от Harald

<offtopic> Личность интересная и толковая на форуме. Merci! </offtopic>

blitz
() автор топика
Ответ на: комментарий от ving2

Почему выбрал связку - systemd-networked + systemd-resolved + dnscrypt-proxy?

Потому что быстрей других, в сравнении с netctl например, устанавливает соединение и не нуждается в NetworkManager.

Не знаю, в каком файле конфигурации поставить эти #? Подсказывай! (Хотя, догадываюсь в каком, рационально помыслив)

blitz
() автор топика
Ответ на: комментарий от blitz

переключается на DNS gateway

правильнее тогда, шлет запрос на шлюз по умолчанию, если действительно нигде не указан 192.168.1.1. Вообщем надо подождать ответа от intelfx

ving2 ★
()
Ответ на: комментарий от blitz

а если ты выкинешь из связки systemd-resolved ты что то потеряешь? Он же как кэш. днс сервер работает...

ving2 ★
()

Как запретить systemd-resolved переключение на другие DNS серверы?

Никак, resolved будет по своему усмотрению переключаться между всеми DNS-серверами, о которых он знает.

Вместо этого можно отключить использование DNS-серверов провайдера в самом подключении (/etc/systemd/network/*.network):

[DHCP]
UseDNS=no
intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Никак, resolved будет по своему усмотрению переключаться между всеми DNS-серверами, о которых он знает.

ТС, не смей перечить этой мудрой софтине, понял? :D

Harald ★★★★★
()
Ответ на: комментарий от blitz

Это не «в файле конфигурации». # — это стандартный prompt оболочки sh, запущенной от root. На письме так часто показывают, что команду, следующую за #, нужно выполнять от root (в противоположность символу $, который означает соответственно, что команду следует выполнять от имени своего пользователя).

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

а я и не понял сразу, что он у меня спросил насчет #

ving2 ★
()
Ответ на: комментарий от blitz

Почему и откуда systemd-resolved берёт данные DNS провайдера, не указанные ни в одном файле конфигурации?

Как я уже написал, он берёт их из DHCP-информации, которую твой провайдер тебе передаёт.

Это для удобства пользователя и systemd - знает лучше? Вопрос отнюдь не риторический.

Да, это стандартное поведение вообще всех высокоуровневых утилит для настройки сети. Его можно отключить.

intelfx ★★★★★
()
Ответ на: комментарий от blitz

Ну тогда попробуй

[Resolve]
DNS=127.0.0.1
FallbackDNS=127.0.0.1

А к гейтвею на 53 порт закрыть доступ. Тогда по идее никаких кроме 127.0.0.1 dns-серверов находить не должно и переключений не будет.

imul ★★★★★
()
Ответ на: комментарий от intelfx

Благодарю вас, за ясный и ёмкий ответ.

.. можно отключить использование DNS-серверов провайдера в самом подключении

О существовании этой нужной опции в конфигурации - не знал, и не встречал упоминания в man.

Before:

blitz@inode /etc/systemd/network % cat /etc/systemd/network/wired.network
[Match]
Name=e*

[Network]
DHCP=yes
DNS=127.0.0.1

After:

[Match]
Name=e*

[Network]
DHCP=no
DNS=127.0.0.1

[DHCP]
UseDNS=no

blitz
() автор топика
Ответ на: комментарий от ving2

Да. Заработало с таким конфигом:

blitz@inode ~ % cat /etc/systemd/network/wired.network
[Match]
Name=e*

[Network]
DHCP=yes
DNS=127.0.0.1

[DHCP]
UseDNS=no

Данная конфигурация DNS, проходит должно проверку на сайтах https://www.expressvpn.com/dns-leak-test https://www.dnsleaktest.com/ - без ошибок.

Ещё раз, благодарность и грация intelfx!

blitz
() автор топика
Ответ на: комментарий от blitz

systemd-resolved использует DNSCrypt proxy 127.0.0.1.

QED.

blitz
() автор топика
Ответ на: комментарий от blitz

Укажи 127.0.0.1 не в *.network, а в /etc/systemd/resolved.conf вместо FallbackDNS=. Иначе есть вероятность того, что если твой DNS proxy отвалится, запросы пойдут через то, что там написано (8.8.8.8 и так далее).

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Идея - ясна и понятна. Так и сделал.

blitz
() автор топика
Ответ на: комментарий от imul

Умница!

Так и сделал теперь.

Хотя и отговаривал здравый смысл)

blitz
() автор топика
Ответ на: комментарий от ving2
#systemctl disabled systemd-resolved
#systemctl mask systemd-resolved

Что и смутило - ошибка disabled и #.

systemctl - исполнаяет комманды от root, если user в группе wheel. Привык к этому.

Другое - disable. not disabled.

Исходя из двух вышеизложенных фактов - решил, что это маскирование с # в файлах конфигурации, и не sh скрипт.

blitz
() автор топика
25 декабря 2017 г.
Ответ на: комментарий от intelfx

Окончательное решение проблемы.

Оставлены только systemd-networkd и dnscrypt-proxy сервисами systemd.
systemd-resolved - disabled.

blitz@inode ~ % systemctl status systemd-networkd
● systemd-networkd.service - Network Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-12-23 18:13:04 CET; 1 day 5h ago
     Docs: man:systemd-networkd.service(8)
 Main PID: 258 (systemd-network)
   Status: "Processing requests..."
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/systemd-networkd.service
           └─258 /usr/lib/systemd/systemd-networkd

Dec 23 18:13:13 inode systemd-networkd[258]: eno1: DHCPv4 address 192.168.1.23/24 via 192.168.1.1
Dec 23 18:13:16 inode systemd-networkd[258]: eno1: Configured
Dec 23 18:25:45 inode systemd-networkd[258]: usb0: Interface name change detected, usb0 has been renamed to enp0s26u1u1.
Dec 23 18:25:45 inode systemd-networkd[258]: usb1: Interface name change detected, usb1 has been renamed to enp0s26u1u1i2.
Dec 24 00:14:23 inode systemd-networkd[258]: eno1: Lost carrier
Dec 24 00:14:23 inode systemd-networkd[258]: eno1: DHCP lease lost
Dec 24 00:14:23 inode systemd-networkd[258]: eno1: DHCPv6 lease lost
Dec 24 00:14:27 inode systemd-networkd[258]: eno1: Gained carrier
Dec 24 00:14:31 inode systemd-networkd[258]: eno1: DHCPv4 address 192.168.1.23/24 via 192.168.1.1
Dec 24 00:14:31 inode systemd-networkd[258]: eno1: Configured
blitz@inode ~ % systemctl status dnscrypt-proxy  
● dnscrypt-proxy.service - DNSCrypt client proxy
   Loaded: loaded (/usr/lib/systemd/system/dnscrypt-proxy.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-12-23 18:13:20 CET; 1 day 5h ago
     Docs: man:dnscrypt-proxy(8)
 Main PID: 680 (dnscrypt-proxy)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/dnscrypt-proxy.service
           └─680 /usr/bin/dnscrypt-proxy /etc/dnscrypt-proxy.conf

Dec 24 22:34:48 inode dnscrypt-proxy[680]: Sun Dec 24 22:34:48 2017 [INFO] Refetching server certificates
Dec 24 22:34:48 inode dnscrypt-proxy[680]: Sun Dec 24 22:34:48 2017 [INFO] Server certificate with serial #1514149921 received
Dec 24 22:34:48 inode dnscrypt-proxy[680]: Sun Dec 24 22:34:48 2017 [INFO] This certificate is valid
Dec 24 22:34:48 inode dnscrypt-proxy[680]: Sun Dec 24 22:34:48 2017 [INFO] Chosen certificate #1514149921 is valid from [2017-12-24] to [2017-12-2
Dec 24 22:34:48 inode dnscrypt-proxy[680]: Sun Dec 24 22:34:48 2017 [INFO] Server key fingerprint is 973E:1F17:C88C:D7B3:6638:5B86:ED2B:1694:7EA1:
Dec 24 23:36:17 inode dnscrypt-proxy[680]: Sun Dec 24 23:36:17 2017 [INFO] Refetching server certificates
Dec 24 23:36:17 inode dnscrypt-proxy[680]: Sun Dec 24 23:36:17 2017 [INFO] Server certificate with serial #1514149921 received
Dec 24 23:36:17 inode dnscrypt-proxy[680]: Sun Dec 24 23:36:17 2017 [INFO] This certificate is valid
Dec 24 23:36:17 inode dnscrypt-proxy[680]: Sun Dec 24 23:36:17 2017 [INFO] Chosen certificate #1514149921 is valid from [2017-12-24] to [2017-12-2
Dec 24 23:36:17 inode dnscrypt-proxy[680]: Sun Dec 24 23:36:17 2017 [INFO] Server key fingerprint is 973E:1F17:C88C:D7B3:6638:5B86:ED2B:1694:7EA1:

Проблема была в systemd-resolved.
Без него - нужные DNS серверы выбираются и работают.
Утечки DNS resolve на DNS сервера провайдера - нет.

И конфигурируется chain systemd-networkd + dnscrypt-proxy в секунду, в отличии от dhcpcd 30 секунд.

blitz
() автор топика
Ответ на: комментарий от intelfx

Теперь, стало ясно - из практики, что systemd-resolved не нужен в данной конфигурации - `домашняя сеть (телефонный кабель + ADSL modem + router) + десктоп по cat7'.

Полагаю, что данный сервис станет востребован в других конфигурациях.

Проблема? Rather no. Скорее и не только с данным systemd-resolved.
Не спеша изучая systemd, с вашей доброжелательной помощью и отзывчивостью - минимализируются сервисы и оставляются - лишь самые необходимые.

blitz
() автор топика
Ответ на: комментарий от blitz

В рамках оффтопа, гораздо более удобно поднять dnscrypt на роутере с openwrt/lede, тогда сразу можно твой зоопарк подтянуть без лишней головной боли. Плюс с кэшированием на нем, это еще и быстро может быть.

anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

> на роутере с openwrt/lede

Грац за совет. Здесь - целый зоопарк модемов/роутеров.
Проприетарных. Вот одна из них - нра, симпатишно и потешно, играет LED огнями внутри корпуса - вдох-выдох. Оффтопик.

Тот модем, который сейчас использую - наполовину Open source, наполовину - нет.
Прошить - давно бы уже сделал.

blitz
() автор топика
# cat /etc/systemd/system/dnscrypt-proxy.socket.d/override.conf 
[Socket]
ListenStream=
ListenDatagram=
ListenStream=127.0.0.53:53535
ListenDatagram=127.0.0.53:53535

# cat /etc/systemd/system/dnscrypt-proxy.service.d/override.conf
[Service]
ExecStartPre=/sbin/iptables -t nat -I OUTPUT -m owner ! --uid-owner dnscrypt -p udp --dport 53 -j REDIRECT --to 53535
ExecStartPre=/sbin/iptables -t nat -I OUTPUT -m owner ! --uid-owner dnscrypt -p tcp --dport 53 -j REDIRECT --to 53535
ExecStopPost=/sbin/iptables -t nat -D OUTPUT -m owner ! --uid-owner dnscrypt -p udp --dport 53 -j REDIRECT --to 53535
ExecStopPost=/sbin/iptables -t nat -D OUTPUT -m owner ! --uid-owner dnscrypt -p tcp --dport 53 -j REDIRECT --to 53535
vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

--uid-owner dnscrypt-proxy сегодня.

Watch your /etc/passwd.

blitz
() автор топика
27 ноября 2018 г.
Ответ на: комментарий от intelfx

Благодарю intelfx за оказанную помощь!

Было достаточно включить лишь systemd-networkd.

С правильными опциями с файлах конфигурации /etc/systemd/network/10-dhcp.{link,network}

linux@org.ru ~/asp/extra/xf86-video-intel % cat /etc/systemd/network/10-dhcp.link 
[Link]
MACAddressPolicy=random
linux@org.ru ~/asp/extra/xf86-video-intel % cat /etc/systemd/network/10-dhcp.network 
[Match]
Name=e*

[Network]
DHCP=yes
DNSSEC=true
IPv6PrivacyExtensions=true

[DHCP]
Anonymize=true
UseDNS=false
UseNTP=false
SendHostname=false

и правильно настроенный dnscrypt-proxy с активацией .socket

SturmFuerer
()
Ответ на: комментарий от vasily_pupkin
linux@org.ru ~/asp/extra/xf86-video-intel % systemctl status dnscrypt-proxy.socket
● dnscrypt-proxy.socket - DNSCrypt-proxy socket
   Loaded: loaded (/usr/lib/systemd/system/dnscrypt-proxy.socket; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-11-27 12:39:45 CET; 5h 33min ago
     Docs: https://github.com/jedisct1/dnscrypt-proxy/wiki
   Listen: 127.0.0.1:53 (Stream)
           127.0.0.1:53 (Datagram)
           [::1]:53 (Stream)
           [::1]:53 (Datagram)
    Tasks: 0 (limit: 4915)
   Memory: 112.0K
   CGroup: /system.slice/dnscrypt-proxy.socket

Nov 27 12:39:45 inode systemd[1]: dnscrypt-proxy.socket: TCP_NODELAY failed: Protocol not available
Nov 27 12:39:45 inode systemd[1]: Listening on DNSCrypt-proxy socket.
SturmFuerer
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.