Блог P1ratRuleZZZ

Създаване на вашия собствен сървър на Ubuntu DNSCrypt 16.04 Linux

DNSCrypt VS Plain DNS

Какво е DNS? DNS е Domain Name Service, който е широко използван от всички днес. Ако не знаете, ако използвате DNS то тази статия не е за вас.

DNS се използва за решаване на четимо имена на домейни за машинно четене на адреси. Всъщност, за сървъри в Интернет не е важно, ако вашата страна има чист и кратко име или не, той дори няма нищо против да има грозни IP адреси като 19.5.81.65 а не 1.1.1.1 – for example. Между другото, 1.1.1.1 – is a really working DNS server address of CloudFlare and it supports all the protocols: DNS, DNSCrypt, DNS-Over-TLS, DNS-Over-HTTPS.

Така, за да знаете IP адреса на някой сървър в Интернет от домейн името на DNS сървъри се използват. Браузърът ви пита DNS сървъра на въпроса като: “What is the IPv4 address of www.google.com” and the DNS server responds “The IPv4 address of www.google.com is 123.456.789.123”. Разбира се, че не е истински IP, реалната ПР не може да съдържа номера по-големи от 255 тъй като тя трябва да бъде точно 1 байт. Така, in this routine anyone who sniffs on your wired/wireless connection can see that you are visiting “google.com”. DNSCrypt протокол е тук, за да шифрова тази информация и никой beetween вашия компютър и ресурс дестинация ще бъде в състояние да помиришат искания на домейна ви.

Целта на тази статия

  • Инсталирайте свой собствен DNSCrypt v2 спедитор (v1 се поддържа твърде) ( ние ще използваме dnsdist пакет)
  • Инсталирайте DNSCrypt клиент за Windows
  • Инсталирайте DNSCrypt клиент за Android

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

Прочетете статията по-нататък, за да видите всички начинаещи.

Както можете да видите ние ще мине през процеса на инсталиране на клиентски софтуер твърде. Това означава, че ако не искате да инсталирате собствен сървър, просто пропуснете тази стъпка и преминете към инсталирането на клиент. Има тон на обществения DNSCrypt сървър, който можете да използвате, и да се чувстват в безопасност, докато сърфирате в интернет.

стъпка 1. монтаж DNSCrypt сървър

Изисквания

  • VPS сървър с Ubuntu 16.04 (Забележка: всяка Linux може да се използва, това не е изискване за използване на Ubuntu, но в този урок ще използвам Ubuntu). Ако използвате Debian, инсталационния процес са почти същите. Но ако използвате CentOS (която е на базата на RPM пакети) то ще бъде различно за вас
  • Трябва да имате корен разрешения за този сървър
  • Всеки компютър, работещ с Windows за монтаж клиент и тест
  • (по избор) Всяко PC / маршрутизатор / устройство с всяка операционна система Linux (Ubuntu, Debian, CentOS, RedHat и т.н.) с процесори x64 / x86 / рамо / МИЦ и т.н..
  • (по избор) Всяко Android телефон с приложението AdGuard инсталиран

Подготовка VPS

Ще използвам някои евтини клауд сървър за инсталиране DNSCrypt сървъра върху него. Така, Аз съм свързан чрез SSH и да видим корен конзола


As you can see I’m using Putty to connect to Linux server from Windows machine. Disclaimer: Аз използвам прозорци тук като клиент машина, тъй като Windows се използва широко и много хора го използват и искам да бъде по-близо до реалността, тъй като е. Хората, които използват Linux като основна операционна система, не трябва да четат подобни ръководства, защото могат да го направят сами 🙂

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

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

И ние виждаме списък на опаковките

Нека да проверим версията на libsodium18 пакет

 apt-cache madison libsodium18 

Версията на пакет имам е 1.0.8. Това не е добре за нас, тъй като той не поддържа криптиране, необходима за DNSCrypt v2 (anyway v1 will work though we want to do it the way “comme il le faut”. Ние се нуждаем най-малко версия 1.0.9.

Така, ние ще се превърне Linux-ум-режим и да го компилирате от източника!

Добре, малка бележка тук: ако сте с Ubuntu / Debian x64, можете да изтеглите Dpkg пакети, събрани от мен точно тук: libsodium-1.0.9-Dpkg

Нека първо да активирате източници, за да бъде на разположение в APT: За това, open the file /etc/apt/sources.list and uncomment in sources universe the row with deb-src … universe OR just execute the following:


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

Let’s create a new folder inside /root and call it “build”. След това изтеглете източници за 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

It will take some time… But the main point is that you should not have any errors while compilation and should see at the end the following:

Така, *.Дебютантка пакети бяха успешно построени. Сега нека да обновите версията на този пакет, за да 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

Забележка: последната команда не е необходимо да бъдат изпълнени. Но това е версията, която аз използвах и тя работи. So if you want to install newer version just do not execute latest command with “c09b00cf20” commit id. Ако не знаете, че това е, просто следвайте урока и това трябва да работи 🙂

Сега, нека да актуализира ChangeLog пакет и постави нов брой версия:


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

And wait it to compile… This will take a while depending on your 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. Можете също така да получите същия ПР, като пуснете фоп. Ако сте под NAT, вие трябва да я зададете IP като 192.168.10.135 – for example. И тогава напред желания пристанища (8443, 5353)

Сега, lets open the config file /etc/dnsdist/dnsdist.conf and find the line with “ipv4addr” and change the address here.

Then go to addDNSCryptBind… part at the end of the file and uncomment the ones with ipv4 in it so it will look like this

We’ve just removed ‘–‘ from the start of the strings to uncomment them. Също, променят имената доставчик в този конфигурационен: these are “1.dnscrypt.mydomain.com” and same for other. Можете да го оставите както е, което не е никак зле и тя не трябва да бъде истинско име на домейн, въпреки че е по-добре да бъде в името на един истински домейн. Ние ще го оставите както е за този пример. Сега, спаси 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 с вашия стойност. Това ще ни даде нормализирана lowercased стойност. Копирайте този в клипборда. For me it is “df762d342e3adfce6a68b520af347d58a2030967184d2c95f341420477dc4450”. Както можете да се досетите, we removed “:” character and lowercased the string, това е.

Сега, нека да създадете DNS Stamp за този сървър. Отиди на супер голяма полза страницата тук https://dnscrypt.info/stamps/

И попълнете стойностите от вашата конфигурация. За мен това ще се търси по този начин

И сега спаси snds://… server info stamp.

За мен това е: sdns://AQYAAAAAAAAAEjg1LjE0My4xNzIuODk6ODQ0MyDfdi00LjrfzmpotSCvNH1YogMJZxhNLJXzQUIEd9xEUBcxLmRuc2NyeXB0Lm15ZG9tYWluLmNvbQ

Това е конфигурацията за DNSCrypt V1 протокол. Всъщност, това е достатъчно, но ние се съставят dnsdist от източници, особено за използване протокол на версия 2. Сега, направи същото за DNSCrypt v2 (на порт 5353 в такъв случай)

Stamp за DNSCrypt v2: sdns://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 сървър, проверява-конфигурация на прокси dnscrypt за Linux.

Да започваме. Изтеглете желаната версия за вашата система (x64 или x32) на най-новата версия от официалния GitHub страница. Ако не сте сигурни дали вашата система е x64 или x32, изтегляне x32 версия. Аз ще направя същото в момента ако имам x64 система. Аз ще свалите файла, наречен dnscrypt-proxy-win32-2.0.22.zip (можете да го изтеглите от тук). Нека сега се намери изтегления файл.

И тук е това, което имам. Разархивирайте файла. Но най-напред, изтегляне 7Zip и да го инсталирате, за да имат същите менюта като имам. Защо не WinRar? Добре, няма проблем, но това не е свободен въпреки 7zip е безплатна и прави почти същото. Ще използвам 7zip, тъй като е свободен за всички.

Добре, Сега ние сме извлича папките. Така че ние сме папка с името dnscrypt-прокси-blabla

Преименуване тя да бъде чист и хубав: dnscrypt-прокси

Сега, отидете в Моят компютър->Disc C и да се създаде папка с името Инструменти. Ние ще трябва да имате права на администратор за тази. Move our dnscrypt-proxy folder into this Tools folder so it will be “Tools->dnscrypt-proxy”

Сега, rename the file “example-dnscrypt-proxy.toml” to “dnscrypt-proxy.toml” and open it in text editor, Аз ви препоръчвам да се инсталира Notepad ++. Това е най-добрият заместител на бележник в прозорци и може би един ден ще го Microsoft вместо това stupud бележник от прозорците да включва (съжалявам, Microsoft).

нормално, то не е необходимо да правите нищо тук. Направи някои промени, ако искате, да го запазите и само да погледнем какво този файл изглежда така и да я затворите. Сега, позволява инсталиране dnscrypt прокси услуга. There is a file named “service-install.bat”. Вие трябва да го стартирате като администратор.

Ще има нов прозорец отвори конзола. Проверете дали има няма грешки и в близост.

Така, now run the second file “service-restart.bat” also As Administrator.

Налице е предупреждение, че услугата не може да бъде спряно, но всичко е наред. Услугата трябва да бъде инсталиран и работи както трябва. Press Start button and open command line by searching for “cmd”

Type “control” and press Enter

Контролният панел ще се отвори. Намерете категорията Интернет и мрежи

Now choose “Change adapter parameters”

И изберете в списъка си главен мрежов адаптер (който е свързан към интернет). Ако имате WiFi, това ще бъде WiFi адаптер, така че изберете

И отворени възможности. Choose from the list “ipv version 4” and press “Options”

Сега запишете всички точки тук и да излезете. Затворете всички прозорци и опитайте да отворите някои страници във вашия браузър. Ако тя работи, както обикновено, the setup has been done and you have now secured your dns requests.

For ipv6 set your DNS server under the “IP Version 6” to “::1. Ако не го използвам, че не е необходимо.

Инсталиране DNSCrypt клиент за Android (Adguard)

Изтегляне Adguard и инсталиране на мобилното си устройство. Отиди на Settings->DNS Филтриране и Активирайте тази функция. The down below there is “Select DNS server”. Натиснете върху него и превъртете до края, за да видите бутоните за добавяне на DNS сървър. Ето и няколко снимки, за да видите какво правим:

Сега, нека да печата за V2 на протокол и да го тестваме.

Choose “Add custom DNS Server” and paste the sdns://… stuff here. Ще видим този вид картина:

Press “Save and enable” and then check logs on server side:

Така, както виждаме, протокол от версия 2 е голяма работа.

Инсталиране DNSCrypt клиент за Linux

Очаквайте скоро

Инсталиране DNSCrypt клиент на Apple Mac OS X

Очаквайте скоро

Инсталиране DNSCrypt клиент на Apple IOS

Очаквайте скоро

Exit mobile version