Вводное [content]google://dnscrypt-proxy[/content] Практическое использование [content]google://dnscrypt-proxy+clients[/content] Подводные камни и рифы [content]Achat Forum (c). From members to members[/content] Анонимность и скрытие своего неприкосновенного Я - каждый преследует эту цель в эпоху Big Data, AI и social networking. DNSCrypt-proxy - суть must have в арсенале каждого уважающего себя и своих окружающих ачатовца. Данную тему, Блиц предлагает развивать всем коммьюнити Ачата - collective mind-storming, обсуждая идеи DNSCrypt реализации на практике, находя (неизбежные) баги и устраняя их.
BUG Kernel boot race DNSCrypt systemd-networked systemd-resolved dnscrypt-proxy.service Рассмотрим тривиальный запуск Linux kernel systemd based. Systemd запускает первым systemd-networked сервис. Данный сервис сканирует сетевые девайсы и решает адресацию компьютера/ноута с тех данных, предоставленных router ethernet. Code: user@achat ~ %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 Thu 2017-07-20 18:00:10 CEST; 24s ago Docs: man:systemd-networkd.service(8) Main PID: 535 (systemd-network) Status: "Processing requests..." Tasks: 1 (limit: 4915) CGroup: /system.slice/systemd-networkd.service └─535 /usr/lib/systemd/systemd-networkd Jul 20 18:00:10 achat systemd[1]: Starting Network Service... Jul 20 18:00:10 achat systemd-networkd[535]: Enumeration completed Jul 20 18:00:10 achat systemd-networkd[535]: eno1: Renamed to eth0 Jul 20 18:00:10 achat systemd[1]: Started Network Service. Jul 20 18:00:10 achat systemd-networkd[535]: eth0: Renamed to eno1 Jul 20 18:00:10 achat systemd-networkd[535]: eno1: IPv6 successfully enabled Jul 20 18:00:16 achat systemd-networkd[535]: eno1: Gained carrier Jul 20 18:00:17 achat systemd-networkd[535]: eno1: Gained IPv6LL Jul 20 18:00:21 achat systemd-networkd[535]: eno1: DHCPv4 address 192.168.1.3/24 via 192.168.1.1 Jul 20 18:00:24 achat systemd-networkd[535]: eno1: Configured Нам сейчас интересен лишь этот момент - запомнили. Jul 20 18:00:17 achat systemd-networkd[535]: eno1: Gained IPv6LL Параллельно, запускается systemd-resolved - сервис, что выбирает DNS серверы для обращения к https:// gopher:// irc://. Code: user@achat ~ % 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 Thu 2017-07-20 18:00:10 CEST; 26s 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: 549 (systemd-resolve) Status: "Processing requests..." Tasks: 1 (limit: 4915) CGroup: /system.slice/systemd-resolved.service └─549 /usr/lib/systemd/systemd-resolved Jul 20 18:00:10 achat systemd[1]: Starting Network Name Resolution... Jul 20 18:00:10 achat systemd-resolved[549]: Positive Trust Anchors: Jul 20 18:00:10 achat systemd-resolved[549]: . IN DS 19036 8 2 49aac11d7b6f6446702e54a1607371607a1a41855200fd2ce1cdde32f24e8fb5 Jul 20 18:00:10 achat systemd-resolved[549]: . IN DS 20326 8 2 e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d Jul 20 18:00:10 achat systemd-resolved[549]: Negative trust anchors: 10.in-addr.arpa 16.172.in-addr.arpa 17.172.in-addr.arpa 18.172.in-addr.arpa Jul 20 18:00:10 achat systemd-resolved[549]: Using system hostname 'inode'. Jul 20 18:00:10 achat systemd[1]: Started Network Name Resolution. Jul 20 18:00:17 achat systemd-resolved[549]: Switching to system DNS server 127.0.0.1. Jul 20 18:00:21 achat systemd-resolved[549]: Switching to DNS server 127.0.0.1 for interface eno1. Jul 20 18:00:22 achat systemd-resolved[549]: Switching to DNS server 192.168.1.1 for interface eno1. Нам сейчас интересны лишь эти моменты - запомнили. Jul 20 18:00:21 achat systemd-resolved[549]: Switching to DNS server 127.0.0.1 for interface eno1. Jul 20 18:00:22 achat systemd-resolved[549]: Switching to DNS server 192.168.1.1 for interface eno1. И теперь - самое главное. Анонимности - нет. DNSCrypt-proxy systemd сервис не успевает вовремя получить ответ от IPv6 DNSCrypt сервера. Сервис systemd-resolved переключается на работу с сервером DNS провайдера. Провайдер - заносит в логи все до единого соединяние и соединения. Баг этот - уже исправил у себя. Костылями и изолентой. Ситуация, которую не предусмотрел Поттеринг, а Блиц нашёл. Jul 20 18:00:22 achat systemd-resolved[549]: Switching to DNS server 192.168.1.1 for interface eno1 Jul 20 18:00:25 achat dnscrypt-proxy[548]: [ERROR] Unable to retrieve server certificates Code: user@achat ~ % 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 Thu 2017-07-20 18:00:10 CEST; 32s ago Docs: man:dnscrypt-proxy(8) Main PID: 548 (dnscrypt-proxy) Tasks: 1 (limit: 4915) CGroup: /system.slice/dnscrypt-proxy.service └─548 /usr/bin/dnscrypt-proxy /etc/dnscrypt-proxy.conf Jul 20 18:00:10 achat dnscrypt-proxy[548]: Thu Jul 20 18:00:10 2017 [INFO] Loaded plugin: [A basic DNS cache] Jul 20 18:00:10 achat dnscrypt-proxy[548]: Thu Jul 20 18:00:10 2017 [INFO] Generating a new session key pair Jul 20 18:00:10 achat dnscrypt-proxy[548]: Thu Jul 20 18:00:10 2017 [INFO] Done Jul 20 18:00:25 achat dnscrypt-proxy[548]: Thu Jul 20 18:00:25 2017 [ERROR] Unable to retrieve server certificates Jul 20 18:00:26 achat dnscrypt-proxy[548]: Thu Jul 20 18:00:26 2017 [INFO] Refetching server certificates Jul 20 18:00:26 achat dnscrypt-proxy[548]: Thu Jul 20 18:00:26 2017 [INFO] Server certificate with serial #1500559202 received Jul 20 18:00:26 achat dnscrypt-proxy[548]: Thu Jul 20 18:00:26 2017 [INFO] This certificate is valid Jul 20 18:00:26 achat dnscrypt-proxy[548]: Thu Jul 20 18:00:26 2017 [INFO] Chosen certificate #1500559202 is valid from [2017-07-20] to [2017-07- Jul 20 18:00:26 achat dnscrypt-proxy[548]: Thu Jul 20 18:00:26 2017 [INFO] Server key fingerprint is 5F0B:0E8B:E7CA:0FF0:1F5B:058A:D750:4A74:98EC Jul 20 18:00:26 achat dnscrypt-proxy[548]: Thu Jul 20 18:00:26 2017 [NOTICE] Proxying from 127.0.0.1:53 to [2001:19f0:5001:30a:5400:ff:fe58:7140]