Настройка ўласнага сервера 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, прашыўцы

хутка

 

Загрузка

Гэтая запіс была апублікаваная ў Абарона дадзеных, Інфармацыйная бяспека, Сістэмнае адміністраванне, шыфраванне і адзначаных , , , , , , , , , , , , , , , , . Закладка Пастаянная спасылка. | Кароткая спасылка:  http://p1rat.ru/lezzz/Yn5pU

Пакінуць каментар