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, прошивці
Незабаром