Налаштування власного сервера 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, широко використовується і багато людей використовує його, і я хочу, щоб бути якомога ближче до реальності, як це. People who use Linux as their main OS don’t need to read that kind of manuals because they can do it by themselves 🙂

Так, дозволяє оновлювати пакети і перевірити версію пакету 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” зробити ідентифікатор. Якщо ви не знаєте, що це таке, just follow the tutorial and this should work 🙂

в даний час, давайте оновити пакет змін і встановити новий номер версії:


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” і натисніть “опції”

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

Для ipv6 встановити DNS-сервер під “IP версії 6” в “::1”. Якщо ви не використовуєте його, що не потрібно.

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

Download Adguard і встановити на своєму мобільному пристрої. Перейти до Settings->DNS Фільтрація і включити цю функцію. внизу є “Виберіть сервер DNS”. Натисніть на неї, і перейдіть, щоб побачити кнопки для додавання DNS-сервера. Ось деякі фотографії, щоб побачити, що ми робимо:

в даний час, давайте візьмемо штамп V2 протоколу і перевірити його.

Choose “Додати користувальницький DNS-сервер” і вставте НСУРИ://… матеріал тут. Ми бачимо такого роду картину:

прес “Зберегти і включити” а потім перевірити журнали на стороні сервера:

Так, як ми бачимо, протокол версії 2 працює прекрасно.

Установка DNSCrypt клієнта на Linux

Незабаром

Установка DNSCrypt клієнта на Apple Mac OS X

Незабаром

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

Незабаром

 

Завантаження

This entry was posted in Захист даних, Інформаційна безпека, Системне адміністрування, шифрування and tagged , , , , , , , , , , , , , , , , . Bookmark the permalink. | Коротке посилання:  http://p1rat.ru/lezzz/Yn5pU

Залиште відповідь