Настройка собственного сервера DNSCrypt на Ubuntu 16.04 Linux

DNSCrypt VS Plain DNS

Что такое DNS? DNS является службой доменных имен, который широко используется всеми сегодня. Если вы не знаете, если вы используете DNS, то эта статья не для вас.

DNS используется для разрешения чтения человека доменных имен машиночитаемых адресов. На самом деле, для серверов в Интернете это не важно, если ваша сторона имеет аккуратное и короткое имя или нет, он даже не против иметь уродливый IP-адрес, такие как 19.5.81.65 и не 1.1.1.1 – например. Кстати, 1.1.1.1 – это реально работающий сервер DNS адрес CloudFlare и поддерживает все протоколы: DNS, DNSCrypt, DNS-Over-TLS, DNS-Over-HTTPS.

Так, для того, чтобы знать IP-адрес какого-либо сервера в Интернете по имени домена в DNS серверы используются. Ваш браузер запрашивает DNS-сервер на вопрос, как: “Что такое IPv4 адрес www.google.com” и сервер DNS отвечает “IPv4-адрес www.google.com является 123.456.789.123”. Конечно, это не реальный IP, реальный IP не может содержать цифры больше 255 потому что она должна быть точно 1 байт. Так, в этом рутина кто вдыхает в проводной / беспроводной связи может видеть, что вы посещаете “google.com”. Протокол DNSCrypt здесь для того, чтобы зашифровать эту информацию, и никто не Разногласие между вашими ПК и ресурсом назначения будет иметь возможность понюхать ваши запросы доменов.

Цель этой статьи

  • Установите свой собственный DNSCrypt v2 форвардер (v1 поддерживается тоже) ( мы будем использовать пакет dnsdist)
  • Установите DNSCrypt клиент для Windows,
  • Установите DNSCrypt клиент для Android

Внимание: статья была написана на английском языке. Переключиться на английский язык, чтобы отключить автоматический перевод.

Читать статью дальше, чтобы увидеть все обучающие.

Как вы можете видеть, что мы собираемся пройти через процесс установки клиентского программного обеспечения тоже. Это означает, что если вы не хотите, чтобы установить собственный сервер, просто пропустите этот шаг и перейдите к установке клиента. Есть тонны общественного DNSCrypt сервера, который вы можете использовать и чувствовать себя в безопасности во время работы в Интернете.

шаг 1. Установка DNSCrypt сервера

Требования

  • сервер VPS работает в Ubuntu 16.04 (нота: любой линукс можно использовать, это не является обязательным требованием для использования Ubuntu, но в этом уроке я буду использовать Ubuntu). Если вы работаете в Debian, процесс установки почти точно так же,. Но если вы работаете в CentOS (которая основана на пакетах RPM) она будет отличаться для вас
  • Вы должны иметь права суперпользователя на данном сервере
  • Любой компьютер, работающий под управлением Windows для установки клиента и испытания
  • (необязательный) Любой компьютер / маршрутизатор / Устройство работает под управлением любой операционной системы Linux (Ubuntu, Debian, CentOS, RedHat и т.д.) с процессорами x64 / x86 / ARM / MIPS и т.д..
  • (необязательный) Любой Android телефон с Adguard приложение установлено

Подготовка VPS

Я буду использовать некоторый дешевый сервер облака для установки сервера DNSCrypt на нем. Так, Я подключен через SSH и видеть корень консоли


Как вы можете видеть, я использую замазку для подключения к серверу Linux с машины Windows. отказ: Я использую окно здесь в качестве клиентской машины, так как Windows, широко используется и много людей использует его, и я хочу, чтобы быть как можно ближе к реальности, как это. Людям, которые используют Linux в качестве основной ОС, не нужно читать такие руководства, потому что они могут сделать это сами 🙂

Так, позволяет обновлять пакеты и проверить версию пакета libsodium в официальном репо:

apt-get update
apt-get install nano
apt-cache search libsodium

И мы видим, список пакетов

Давайте проверим версию libsodium18 пакета

 apt-cache madison libsodium18 

Версия пакета я получил, 1.0.8. Это не хорошо для нас, потому что он не поддерживает шифрование, необходимое для DNSCrypt v2 (в любом случае v1 будет работать, хотя мы хотим сделать это так, как “как это должно”. Нам нужно по крайней мере, версия 1.0.9.

Так, мы превратим Linux-ум-режим, и скомпилировать из исходных текстов! 

Хорошо, записочку здесь: если вы работаете в Ubuntu / Debian x64, Вы можете скачать DPKG пакеты, собранные мною здесь: libsodium-1.0.9-dpkg

Давайте сначала включить источники будут доступны в APT: За это, откройте файл /etc/apt/sources.list и раскомментируйте в источниках Вселенной строку с DEB-Src … Вселенная или просто выполнить следующие:


echo "deb-src http://mirror.yandex.ru/ubuntu $(lsb_release -cs) universe" > /etc/apt/sources.list.d/universe.list
apt-get update

Давайте создадим новую папку внутри / корень и вызвать его “строить”. Затем загрузите источники libsodium и попытаться построить его без изменений:

apt-get build-dep libsodium18
apt-get install git nano dpkg-dev devscripts fakeroot
mkdir -p /root/build/libsodium
cd /root/build/libsodium
apt-get source libsodium18
cd libsodium-1.0.8/
fakeroot debian/rules binary

Это займет некоторое время… Но главное заключается в том, что вы не должны иметь какие-либо ошибок при компиляции и должны увидеть в конце следующего:

Так, *.Пакеты DEB были успешно построены. Теперь давайте обновить версию этого пакета 1.0.9. Мы будем использовать официальные GitHub источник.


uupdate -v 1.0.9 ../libsodium_1.0.8-5.debian.tar.xz
cd ../libsodium-1.0.9
git init
git remote add origin https://github.com/jedisct1/libsodium.git
git fetch origin
git checkout -b stable origin/stable
git checkout c09b00cf20

Внимание: последняя команда не обязательно должна быть выполнена. Но это версия, которую я использовал, и она работала. Так что если вы хотите установить новую версию просто не выполнить последнюю команду с “c09b00cf20” совершить идентификатор. Если вы не знаете, что это такое, просто следуйте инструкциям, и это должно сработать 🙂

Теперь, давайте обновить пакет изменений и установить новый номер версии:


dch -n

Это откроет текстовый редактор (нано) и вам просто нужно, чтобы сохранить его, нажав Ctrl + O затем выйти, нажав Ctrl + X.

Теперь, восстановить версию 1.0.9

fakeroot debian/rules binary
cd ../
ls -lah

И увидеть список файлов, которые мы имеем: мы должны иметь libsodium18_1.0.9-0ubuntu1_amd64.deb libsodium-dbg_1.0.9-0ubuntu1_amd64.deb libsodium-dev_1.0.9-0ubuntu1_amd64.deb
Теперь, установить их:

dpkg -i libsodium18_1.0.9-0ubuntu1_amd64.deb libsodium-dbg_1.0.9-0ubuntu1_amd64.deb libsodium-dev_1.0.9-0ubuntu1_amd64.deb

Это оно. Основной пакет требования устанавливаются. Теперь, давайте компилировать dnsdist пакет из источников с использованием официального репо на GitHub.


apt-get install ragel virtualenv zip libsystemd-dev protobuf-compiler libssl-dev libprotobuf-dev dh-systemd libboost-dev libboost1.58-dev libbsd-dev libedit-dev liblua5.2-0 liblua5.2-dev libreadline-dev libreadline6-dev libtinfo-dev
cd /root/build
git clone -b "dnsdist-1.3.3" https://github.com/PowerDNS/pdns
cd pdns/pdns/dnsdistdist
autoreconf -i
./configure --prefix="" --exec-prefix=/usr --sysconfdir="/etc/dnsdist" --with-systemd="/lib/systemd/system" --enable-dns-over-tls --enable-dnscrypt --with-protobuf

Проверьте, нет никаких ошибок здесь и компилировать


make
make install

И ждать его компилировать… Это может занять некоторое время в зависимости от вашего VPS. Затем проверьте версию:


dnsdist -V

Для меня это:


dnsdist 0.0.0.HEAD.gg27dd1e3 (Lua 5.2.4)
Enabled features: dns-over-tls(openssl) dnscrypt ebpf libsodium protobuf recvmmsg/sendmmsg systemd

Хорошо, давайте добавим несколько быстрой конфиги и посмотреть, как это работает


mkdir /etc/dnsdist
cd /etc/dnsdist
wget -O "/tmp/dnsdist.zip" "https://blog.jazinbaz.in/download/2571/"
unzip /tmp/dnsdist.zip

systemctl daemon-reload
service dnsdist restart
service dnsdist status

Или просто вручную загрузить конфигурационный файл здесь и скопировать его содержимое dnsdist.conf.zip

Мы должны видеть, что служба работает. Теперь, позволяет генерировать ключи, которые будут необходимы для шифрования.

mkdir -p /var/lib/dnsdist
dnsdist -c 

generateDNSCryptProviderKeys("/var/lib/dnsdist/providerPublic.key", "/var/lib/dnsdist/providerPrivate.key")
sinceDate=os.time(os.date("!*t"))
expireDate=os.time({year=2100, month=0, day=1, hour=00, minute=00})
generateDNSCryptCertificate("/var/lib/dnsdist/providerPrivate.key", "/var/lib/dnsdist/resolver.cert", "/var/lib/dnsdist/resolver.key", 1, sinceDate, expireDate, VERSION1)
generateDNSCryptCertificate("/var/lib/dnsdist/providerPrivate.key", "/var/lib/dnsdist/resolver2.cert", "/var/lib/dnsdist/resolver2.key", 1, sinceDate, expireDate, VERSION2)

затем, нажав Ctrl + C выход из dnsdist консоли и открыть его конфигурацию для того, чтобы фактического DNSCrypt связывает. Первый, давайте выясним наш публичный IP-адрес. Мы крутые мастера Linux, поэтому мы будем использовать COMAND линию для этого


wget -4 -qO- ifconfig.co
wget -6 -qO- ifconfig.co

Мы получим 2 IP-адрес: для v4 и v6. Конечно, Вы можете пропустить v6 и работать только на ipv4, достаточно для нас.

В моем случае, Я получил IP-адрес 85.143.172.89. Вы также можете получить тот же IP-адрес, запустив IFCONFIG. Если вы находитесь под NAT, вы должны назначить его внутрибрюшинно, как 192.168.10.135 – например. И затем вперед желательно порты (8443, 5353)

Теперь, позволяет открыть конфигурационный файл /etc/dnsdist/dnsdist.conf и найдите строку с “ipv4addr” и изменить адрес здесь.

Затем перейдите к addDNSCryptBind… часть в конце файла и раскомментируйте те с ipv4 в нем, так это будет выглядеть следующим образом

Мы только что удалили «–‘ от начала строк раскомментировать их. Также, изменить имена поставщиков в этой конфигурации: это “1.dnscrypt.mydomain.com” и то же самое для других. Вы можете оставить его как есть, что это совсем не плохо, и он не должен быть реальным доменным именем, хотя это лучше, чтобы быть в реальном доменном имени. Мы оставим его как для этого примера. Теперь, сохранить файл Ctrl + O и выход Ctrl + X и остановить службу и запустить его вручную, чтобы увидеть журналы


service dnsdist stop
dnsdist -v --disable-syslog

Мы видим, что это нормально, и это прослушивает наши порты.

Хорошо, первая половина работы сделана. Оставьте dnsdist работает в консоли, не закрывайте его и не режут Интернет от. Теперь, позволяет выяснить, открытый ключ поставщика. Для того, чтобы сделать это, написать следующее право на консоли с управлением dnsdist

printDNSCryptProviderFingerprint("/var/lib/dnsdist/providerPublic.key")

И это будет отображаться fingerpring открытого ключа

Теперь, позволяет считать, что отпечатки пальцев и скопировать его в буфер обмена и открыть новое окно консоли с SSH подключения к VPS (потому что мы не хотим, чтобы остановить dnsdist запущенного процесса). В новой консоли, право следующее


fingerprint="DF76:2D34:2E3A:DFCE:6A68:B520:AF34:7D58:A203:0967:184D:2C95:F341:4204:77DC:4450"
fingerprint="${fingerprint//:}"; echo "${fingerprint,,}"

Конечно, заменить fingerpring с значением. Это даст нам нормализованное значение строчного. Скопируйте это в буфер обмена. Для меня это “df762d342e3adfce6a68b520af347d58a2030967184d2c95f341420477dc4450”. Как вы можете догадаться,, мы удалили “:” характер и строчная строка, вот и все.

Теперь, давайте создадим DNS Штамп для этого сервера. Перейти к супер большой полезности страницы здесь https://dnscrypt.info/stamps/

И заполнить значения из конфигурации. Для меня это будет выглядеть как этот

А теперь сохранить snds://… Информация о сервере печать.

Для меня это: НСУР://AQYAAAAAAAAAEjg1LjE0My4xNzIuODk6ODQ0MyDfdi00LjrfzmpotSCvNH1YogMJZxhNLJXzQUIEd9xEUBcxLmRuc2NyeXB0Lm15ZG9tYWluLmNvbQ

Это было конфигурации для протокола DNSCrypt V1. На самом деле, этого достаточно, но мы скомпилированы dnsdist из источников, особенно для использования протокола версии 2. Теперь, сделать то же самое для DNSCrypt v2 (порт 5353 в этом случае)

Штамп для DNSCrypt v2: НСУР://AQYAAAAAAAAAEjg1LjE0My4xNzIuODk6NTM1MyDfdi00LjrfzmpotSCvNH1YogMJZxhNLJXzQUIEd9xEUBcyLmRuc2NyeXB0Lm15ZG9tYWluLmNvbQ

Это на самом деле конечный результат нам нужно. Этот DNS Stamp зашифрована информация о нашем конкретном сервере DNS, мы добавим это на стороне клиента для подключения к нашему серверу. Это не шифруется для безопасности, но только для сделать вещи проще, так же, как QR-код, но для DNS-сервера. Хорошо, конфигурация DNSCrypt сервера закончена. Давайте проверим наш DNSCrypt сервер в каком-то клиентском программном обеспечении.

Как только у вас протестировали сервер с некоторым ниже клиентом, это не нужно, чтобы запустить его в консоли. Возвращайтесь в свой VPS и остановить процесс, нажав Ctrl + C. затем, включить эту услугу на постоянной основе


systemctl enable dnsdist
systemctl restart dnsdist
systemctl status dnsdist

Он будет работать в фоновом режиме, так что вы можете закрыть соединение SSH и закрыть окно Шпатлевки.

Расширенная конфигурация

  • Скоро будет: Настройка домена TXT записи
  • Скоро будет: Включение ipv6

Установка DNSCrypt клиент для Windows,

Мы будем использовать общее программное обеспечение для лидера DNSCrypt, который широко используется в Linux тоже: DNSCrypt Proxy. Он уже скомпилированные для win32 и Win64, так что это не проблема, чтобы установить его, и это совсем не трудно. Мы установим его, чтобы использовать все государственные арбитр. Для использования нашего пользовательского DNS-сервера, проверить в Кoнфигурировании из dnscrypt прокси для Linux.

Давайте начнем. Загрузите нужную версию для вашей системы (x64 или x32) в последней версии с официального GitHub страница. Если вы не уверены, что ваша система x64 или x32, скачать x32 версия. Я буду делать то же самое сейчас, хотя у меня есть система x64. Я загрузит файл с именем dnscrypt-proxy-win32-2.0.22.zip   (Вы можете скачать его здесь). Давайте теперь найти загруженный файл.

И вот что у меня есть. Извлеките этот файл. Но сначала, скачать 7Zip и установить его, чтобы иметь то же меню, как и я. Почему не WinRar? Хорошо, нет проблем, но это не бесплатно, хотя 7zip свободно и делает почти то же самое. Я буду использовать 7zip, как это бесплатно для всех.

Хорошо, Теперь мы извлекли папки. Таким образом, у нас есть папка с именем dnscrypt прокси-блаб

Переименуйте его быть аккуратным и хорошо: dnscrypt-прокси

Теперь, перейти в Мой компьютер->Диск C и создайте папку с именем Tools. Мы должны иметь права администратора для этого. Переместить наш dnscrypt-прокси папку в эту папку Tools так будет “Инструменты->dnscrypt-прокси”

Теперь, переименовать файл “Пример-dnscrypt-proxy.toml” в “dnscrypt-proxy.toml” и откройте его в текстовом редакторе, Я рекомендую вам установить Notepad ++. Это лучшая замена для блокнота в окнах и, возможно, один день Microsoft включит его вместо этого stupud блокнот из окон (извиняюсь, Microsoft).

Обычно, это не нужно делать что-либо здесь. Внесите изменения, если вы хотите, сохранить его и просто посмотрим, что этот файл выглядит и закрыть его. Теперь, позволяет установить dnscrypt прокси-сервис. Существует файл с именем “сервис-install.bat”. Вы должны запустить его в качестве администратора.

Там будет новая консоль открылось окно. Проверьте, нет никаких ошибок и близко.

Так, Теперь запустите второй файл “сервис-restart.bat” Кроме того, как администратор.

Существует предупреждение, что служба не может быть остановлена, но это нормально. Сервис должен быть установлен и запущен, как должно. Нажмите кнопку Пуск и открытой командной строки с помощью поиска “CMD”

Тип “контроль” и нажмите Enter

Панель управления откроется. Найти Интернет и сети категории

Теперь выберите “Изменение параметров адаптера”

И выберите в списке ваш главный сетевой адаптер (который подключен к Интернету). Если у вас есть Wi-Fi, это будет адаптер Wi-Fi, поэтому выберите

И открытые варианты. Выберите из списка “И версия 4” и нажмите “Options”

Теперь сохраните все точки здесь и выход. Закройте все окна и попытайтесь открыть несколько страниц в вашем браузере. Если он работает в обычном режиме, установка была сделана, и вы теперь обеспечены ваши запросы DNS.

Для ipv6 установить DNS-сервер под “IP версии 6” в “::1”. Если вы не используете его, что не требуется.

Установка DNSCrypt клиент для Android (Adguard)

Скачать Adguard и установить на своем мобильном устройстве. Перейдите в настройки->DNS Фильтрация и включить эту функцию. Внизу есть “Выберите сервер DNS”. Нажмите на нее, и прокрутите вниз, чтобы увидеть кнопки для добавления DNS-сервера. Вот некоторые фотографии, чтобы увидеть, что мы делаем:

Теперь, давайте возьмем штамп V2 протокола и проверить его.

выберите “Добавить пользовательский DNS-сервер” и вставьте НСУРЫ://… материал здесь. Мы видим такого рода картину:

Нажмите “Сохранить и включить” а затем проверить журналы на стороне сервера:

Так, как мы видим, протокол версии 2 работает прекрасно.

Установка DNSCrypt клиента на Linux

Скоро будет

Установка DNSCrypt клиента на Apple Mac OS X

Скоро будет

Установка DNSCrypt клиента на Apple, прошивке

Скоро будет

 

Загрузка

Запись опубликована в рубрике Защита данных, Информационная безопасность, Системное администрирование, Шифрование с метками , , , , , , , , , , , , , , , , . Добавьте в закладки постоянную ссылку. | Короткая ссылка:  http://p1rat.ru/lezzz/Yn5pU

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