КАК - НАСТРОЙКА DNSCRYPT-PROXY

Вот краткое руководство по dnscrypt-proxy и как его настроить :)

Начиная

Добро пожаловать в пошаговое руководство по dnscrypt-proxy. Это было протестировано на Arch Linux. Большая часть этого будет работать с другими дистрибутивами Linux, но мы используем Arch здесь.

Что это?

Вики-страница Arch гласит, что это «прокси-сервер DNS с поддержкой зашифрованных DNS-протоколов DNS через HTTPS и DNSCrypt, которые можно использовать для предотвращения атак «человек посередине» и подслушивания. dnscrypt-proxy также совместим с DNSSEC».

Зачем использовать это?

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

Не ТОЛЬКО вы получаете шифрование DNS, но при правильной настройке с помощью Anonymized-DNS может препятствовать тому, чтобы посредники записывали и вмешивались в трафик DNS, поскольку это «мешает серверам узнавать что-либо об IP-адресах клиентов, используя промежуточные реле, предназначенные для пересылки зашифрованных данных DNS » Это будет обсуждаться в этом уроке.

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

Установка и настройка

В этой настройке будет использоваться dnscrypt-proxy без IPv6 и без DNS-over-https, но вы можете смело изменять ваши потребности, и я призываю вас поэкспериментировать.

Шаг 1: Сначала установите его:

$ sudo pacman -S dnscrypt-proxy

Шаг 2: Далее мы настраиваем это следующим образом:

$ sudo cp /etc/dnscrypt-proxy/dnscrypt-proxy.toml /etc/dnscrypt-proxy/dnscrypt-proxy.toml.ORIGIN
$ sudo vim /etc/dnscrypt-proxy/dnscrypt-proxy.toml

укажите имена серверов, которые ориентированы на конфиденциальность:

server_names = ['dnscrypt.eu-dk', 'dnscrypt.eu-nl', 'dnscrypt.uk-ipv4', 'ffmuc.net', 'meganerd', 'publicarray-au', 'scaleway-ams', 'scaleway-fr', 'v.dnscrypt.uk-ipv4']

определить критерии используемых серверов:

ipv4_servers = true
ipv6_servers = false		# Я не пользуюсь ipv6
dnscrypt_servers = true
doh_servers = false		# Я отключаю DoH, так как не использую никаких серверов с ним

require_dnssec = true
require_nolog = true
require_nofilter = true

установить ответ для заблокированных запросов:

blocked_query_response = 'refused'

установите журнал в системный журнал:

use_syslog = true

(необязательно) создайте новый и уникальный ключ для каждого запроса DNS: [RTFM]

dnscrypt_ephemeral_keys = true

выберите ориентированный на конфиденциальность резервный адрес и адрес сетевого зонда, а не это дерьмо G00GLE по умолчанию. Здесь мы используем Uncensored DNS, который находится в этом списке «Privacy DNS», но вы можете изменить на что угодно:

fallback_resolvers = ['91.239.100.100:53']
netprobe_address = '91.239.100.100:53'

заблокируйте ipv6 и здесь:

block_ipv6 = true

разверните список «нарушенных реализаций», чтобы избежать определенных серверов:

fragments_blocked = ['cisco', 'cisco-ipv6', 'cisco-familyshield', 'cisco-familyshield-ipv6', 'quad9-dnscrypt-ip4-filter-alt', 'quad9-dnscrypt-ip4-filter-pri', 'quad9-dnscrypt-ip4-nofilter-alt', 'quad9-dnscrypt-ip4-nofilter-pri', 'quad9-dnscrypt-ip6-filter-alt', 'quad9-dnscrypt-ip6-filter-pri', 'quad9-dnscrypt-ip6-nofilter-alt', 'quad9-dnscrypt-ip6-nofilter-pri', 'cleanbrowsing-adult', 'cleanbrowsing-family-ipv6', 'cleanbrowsing-family', 'cleanbrowsing-security']

затем настройте наши анонимные маршруты DNS - больше информации здесь и список анонимных DNS-реле здесь:

	routes = [
{ server_name='dnscrypt.eu-dk', via=['anon-meganerd', 'anon-scaleway-ams'] },
{ server_name='dnscrypt.eu-nl', via=['anon-meganerd', 'anon-scaleway-ams'] },
{ server_name='dnscrypt.uk-ipv4', via=['anon-scaleway', 'anon-tiarap'] },
{ server_name='ffmuc.net', via=['anon-ibksturm', 'anon-scaleway-ams'] },
{ server_name='meganerd', via=['anon-scaleway', 'anon-tiarap'] },
{ server_name='publicarray-au', via=['anon-ibksturm', 'anon-tiarap'] },
{ server_name='scaleway-ams', via=['anon-scaleway', 'anon-meganerd'] },
{ server_name='scaleway-fr', via=['anon-meganerd', 'anon-v.dnscrypt.uk-ipv4'] },
{ server_name='v.dnscrypt.uk-ipv4', via=['anon-scaleway', 'anon-meganerd'] }
]

затем сохраните конфигурацию и выйдите

Шаг 3: Далее настройте черный список (необязательно):

$ sudo vim /etc/dnscrypt-proxy/dnscrypt-proxy.toml

в разделе [черный список] раскомментируйте и установите:

blacklist_file = 'blacklist.txt'

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

Кроме того, вы можете раскомментировать «log_file» в этом разделе, если вы хотите получить журнал того, что занесено в черный список. Очень полезно для устранения неполадок в вашем blacklist.txt.

Я рекомендую вам поиграть с черным списком IP-адресов, например здесь, но я еще не использовал его.

Шаг 4: Далее настройте белый список (необязательно):

$ sudo vim /etc/dnscrypt-proxy/dnscrypt-proxy.toml

в разделе [белый список] раскомментируйте и установите:

whitelist_file = 'whitelist.txt'

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

Кроме того, вы можете раскомментировать «log_file» в этом разделе, если вы хотите журнал того, что находится в белом списке.

Шаг 5: Измените /etc/resolv.conf для использования dnscrypt-proxy:

$ sudo vim /etc/resolv.conf
nameserver 127.0.0.1		# убедитесь, что это ваш сервер имен

Начать и проверить

Запустите dnscrypt-proxy:

$ sudo systemctl start dnscrypt-proxy.service

Проверьте, работает ли он сейчас на порту 53

$ ss -lp 'sport = :domain

Теперь протестируйте dnscrypt-proxy:

$ sudo pkill -STOP dnscrypt-proxy

Затем попытайтесь получить доступ к веб-сайту и если ваш DNS-трафик успешно пройдет через прокси-сервер, мы включим его снова:

$ sudo pkill -CONT dnscrypt-proxy

Необязательный тест, перейдите на dnsleaktest.com, нажмите на расширенный тест, а затем убедитесь, что он работает, так как результаты не будут отображать DNS вашего провайдера, а только те, которые есть в нашем файле конфигурации.

Возможность запустить dnscrypt-proxy при загрузке:

Если хотите, установите загрузку @ boot:

$ sudo systemctl enable dnscrypt-proxy.service

Поиск проблемы:

Q1: Что делать, если /etc/resolv.conf перезаписывается при перезагрузке?

A1: следуйте инструкциям выше, чтобы изменить, но затем используйте следующую команду, чтобы убедиться, что resolv.conf не изменился:

chattr + i /etc/resolv.conf

Некоторая информация для чтения:

(1) исходный код dnscrypt-proxy

(2) Arch Linux Wiki на прокси-сервере dnscrypt

(3) Установка dnscrypt-proxy в Linux - от создателей

Что-нибудь еще…

Измените все, что вам нужно и наслаждайтесь :) Если есть что-то еще, что я пропустил, дайте мне знать. Как всегда -> RTFM, взломайте систему и наслаждайтесь жизнью!