Blog P1ratRuleZZZ

Einrichten Ihres eigenen DNSCrypt-Server auf Ubuntu 16.04 Linux

DNSCrypt VS Plain DNS

Was ist DNS? DNS ist ein Domain Name Service, die von allen weit verbreitet ist heute. Wenn Sie nicht wissen, wenn Sie DNS verwenden, dann ist dieser Artikel nicht für Sie.

DNS wird verwendet für Menschen lesbaren Domain-Namen in maschinenlesbaren Adressen aufzulösen. Tatsächlich, für Server im Internet ist es nicht wichtig, wenn Ihre Seite einen ordentlichen und kurze Namen hat oder nicht, es hat nichts dagegen, auch nicht hässlich IP-Adressen zu haben, wie 19.5.81.65 und nicht die 1.1.1.1 – for example. Apropos, 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.

Damit, ist, um die IP-Adresse von einem Server über das Internet von Domain-Namen für die DNS-Server zu wissen, verwendet. Ihr Browser fragt DNS-Server die Frage, wie: “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”. Natürlich ist es keine echte IP, die reale IP kann nicht enthalten Nummern größer als 255 denn es müssen genau sein 1 Byte. Damit, in this routine anyone who sniffs on your wired/wireless connection can see that you are visiting “google.com”. DNSCrypt Protokoll ist hier, um diese Informationen und niemand beetween Ihren PC und das Zielressource zu verschlüsseln in der Lage, Ihre Domain-Anfragen zu schnuppern.

Das Ziel dieses Artikels

  • Installieren Sie Ihren eigenen DNSCrypt v2 Spediteur (v1 wird ebenfalls unterstützt) ( wir werden dnsdist Paket verwenden)
  • Installieren DNSCrypt-Client für Windows
  • Installieren DNSCrypt-Client für Android

Hinweis: Der Artikel wurde in Englisch geschrieben. Wechseln Sie auf Englisch automatische Übersetzung deaktivieren.

Lesen Sie den Artikel weiter alle das Tutorial sehen.

Wie Sie sehen können wir durch den Installationsprozess von Client-Software gehen, gehen zu. Das bedeutet, dass, wenn Sie nicht wollen, einen eigenen Server installieren, gerade diesen Schritt überspringen und zu Client-Installation gehen. Es gibt Unmengen an öffentlichen DNSCrypt Server, den Sie sicher benutzen und fühlen können, während das Surfen im Internet.

Schritt 1. DNSCrypt Server-Installation

Bedarf

  • VPS-Server mit Ubuntu 16.04 (Hinweis: jeder Linux kann verwendet werden,, dies ist keine Voraussetzung Ubuntu zu verwenden, aber in diesem Tutorial werde ich verwenden Ubuntu). Wenn Sie mit Debian, die Installation ist fast genau die gleiche. Aber wenn Sie mit CentOS (welches basierend auf RPM-Pakete) es wird für Sie anders sein
  • Sie müssen Root-Rechte auf diesem Server haben
  • Jeder PC mit Windows für die Client-Installation und Test
  • (wahlweise) Jeder PC / Router / Gerät läuft jede Linux OS (Ubuntu, Debian, CentOS, RedHat etc.) Prozessoren mit x64 / x86 / Arm / MIPS und usw..
  • (wahlweise) Alle Android-Handy mit AdGuard App installiert

Vorbereiten VPS

Ich werde ein paar billigen Cloud-Server für die Installation von DNSCrypt-Server auf es verwenden. Damit, Ich bin über SSH und sehen root-Konsole verbunden


As you can see I’m using Putty to connect to Linux server from Windows machine. Disclaimer: Ich benutze Windows hier als Client-Rechner, weil Windows weit verbreitet ist und viele Leute es verwenden und ich möchte so nah an der Realität sein, wie es ist. Leute, die Linux als Hauptbetriebssystem verwenden, müssen diese Art von Handbüchern nicht lesen, weil sie es selbst tun können 🙂

Damit, Update-Pakete können und überprüfen Sie die Version von libsodium Paket in den offiziellen Repo:

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

Und wir sehen Liste der Pakete

Lassen Sie uns prüfen Version libsodium18 Paket

 apt-cache madison libsodium18 

Die Paket-Version ich habe ist 1.0.8. Das ist nicht gut für uns, weil es keine Verschlüsselung für DNSCrypt v2 benötigt Unterstützung (anyway v1 will work though we want to do it the way “comme il le faut”. Wir brauchen mindestens Version 1.0.9.

Damit, wir werden auf Linux-Geist-Modus schalten und compilieren FROM SOURCE!

OK, eine kleine Anmerkung hier: wenn Sie mit Ubuntu / Debian x64, Sie können hier von mir dpkg Pakete zusammengestellt herunterladen: libsodium-1.0.9-dpkg

Lassen Sie uns zunächst Quellen ermöglichen in APT zur Verfügung stehen: Dafür, 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”. Dann Quellen für libsodium herunterladen und versuchen, es ohne Änderungen zu bauen:

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:

Damit, *.deb-Pakete wurden erfolgreich gebaut. Lassen Sie uns jetzt die Version dieses Pakets aktualisieren, um 1.0.9. Wir werden offiziell verwenden github Quelle.


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

Hinweis: der letzte Befehl ist nicht erforderlich, ausgeführt werden. Aber das ist die Version, die ich verwendet und es funktionierte. So if you want to install newer version just do not execute latest command with “c09b00cf20” commit id. Wenn Sie nicht wissen, dass es, Folgen Sie einfach dem Tutorial und das sollte funktionieren 🙂

Jetzt, Lassen Sie uns das Paket Changelog aktualisieren und eine neue Nummer der Version eingestellt:


dch -n

Dies wird mit einem Texteditor öffnen (nano) und Sie müssen es einfach nur speichern, indem Sie Strg + O beenden Sie dann durch Drücken von Strg + X.

Jetzt, Wiederaufbau der Version 1.0.9

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

Und sehen Sie die Liste der Dateien, die wir haben: wir sollten libsodium18_1.0.9-0ubuntu1_amd64.deb libsodium-dbg_1.0.9-0ubuntu1_amd64.deb libsodium-dev_1.0.9-0ubuntu1_amd64.deb haben
Jetzt, installieren sie alle:

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

Das ist es. Die Hauptanforderung Paket installiert. Jetzt, Lassen Sie sich dnsdist Paket aus Quellen mit offiziellen Repo-kompiliert auf 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

Überprüfen Sie, ob es keine Fehler hier und kompilieren


make
make install

And wait it to compile… This will take a while depending on your VPS. Dann überprüfen Sie die Version:


dnsdist -V

Für mich ist es:


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

OK, Lassen Sie uns ein paar schnelle configs hinzufügen und sehen, wie es funktioniert


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

Oder einfach nur manuell config-Datei hier herunterladen und kopieren Sie den Inhalt dnsdist.conf.zip

Wir sollten sehen, dass Dienst läuft. Jetzt, läßt den Schlüssel erzeugt, die für die Verschlüsselung benötigt werden,.

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)

Dann, durch Drücken von Strg + C Austritt aus dnsdist Konsole öffnen und seine Konfigurations tatsächlichen DNSCrypt Binds zu ermöglichen. Zuerst, Lassen Sie uns unsere öffentliche IP-Adresse herausfinden. Wir sind cool Linux Meister so werden wir comand Linie für diesen Einsatz


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

Wir werden uns 2 IP-Adressen: für v4 und v6. Na sicher, Sie können v6 und arbeiten nur auf ipv4 überspringen, es ist genug für uns,.

In meinem Fall, Ich habe die IP-Adresse 85.143.172.89. Sie können auch die gleiche IP erhalten, indem ifconfig laufen. Wenn Sie unter NAT, Sie müssen es zuweisen wie ip 192.168.10.135 – for example. Und dann nach vorne Ports gewünscht (8443, 5353)

Jetzt, 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. Ebenfalls, ändern Providernamen in dieser Konfigurations: these are “1.dnscrypt.mydomain.com” and same for other. Sie können es lassen wie es ist, das ist nicht schlecht und es muss keine echter Domain-Name sein, obwohl es besser ist, in einem einem echten Domain-Namen zu sein. Wir werden es lassen, wie für dieses Beispiel ist. Jetzt, Speichern Sie die Datei Strg + O und beenden Strg + X und den Dienst beenden und führen Sie es manuell Protokolle zu sehen


service dnsdist stop
dnsdist -v --disable-syslog

Wir sehen, dass es in Ordnung ist und es hört auf unsere Häfen.

OK, die erste Hälfte der Arbeit erledigt ist. Lassen Sie den dnsdist in der Konsole läuft, schließen Sie es nicht und nicht schneiden Internet ab. Jetzt, kann öffentlichen Schlüssel des Anbieters herausfinden. Um es zu tun, schreiben die folgende direkt an der Konsole mit fliessendem dnsdist

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

Und dies wird fingerpring für öffentliche Schlüssel anzuzeigen

Jetzt, lets nehmen, dass die Fingerabdruck und kopieren Sie sie in die Zwischenablage, und öffnen Sie ein neues Konsolenfenster mit SSH-Verbindung zu Ihrem VPS (weil wir nicht wollen, dnsdist laufenden Prozess stoppen). In neuer Konsole, Recht, die folgenden


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

Na sicher, ersetzen mit Ihrem Wert fingerpring. Dies wird uns normalisierte Wert klein geschrieben. Kopieren Sie diese in die Zwischenablage. For me it is “df762d342e3adfce6a68b520af347d58a2030967184d2c95f341420477dc4450”. Wie Sie erraten, we removed “:” character and lowercased the string, das ist es.

Jetzt, Lassen Sie sich ein DNS-Stamp für diesen Server erstellen. Gehen Sie auf die Super großen Nutzen Seite hier https://dnscrypt.info/stamps/

Und füllen Sie die Werte aus der Konfiguration. Für mich wird es so suchen

Und sparen Sie jetzt die SNDS://… server info stamp.

Für mich ist es: sdns://AQYAAAAAAAAAEjg1LjE0My4xNzIuODk6ODQ0MyDfdi00LjrfzmpotSCvNH1YogMJZxhNLJXzQUIEd9xEUBcxLmRuc2NyeXB0Lm15ZG9tYWluLmNvbQ

Das war ein Config für DNSCrypt V1-Protokoll. Tatsächlich, das genügt, aber wir sind aus Quellen zusammengestellt dnsdist insbesondere Protokoll der Version zu verwenden 2. Jetzt, das gleiche für DNSCrypt v2 (auf Port 5353 in diesem Fall)

Stempel für DNSCrypt v2: sdns://AQYAAAAAAAAAEjg1LjE0My4xNzIuODk6NTM1MyDfdi00LjrfzmpotSCvNH1YogMJZxhNLJXzQUIEd9xEUBcyLmRuc2NyeXB0Lm15ZG9tYWluLmNvbQ

Das ist eigentlich das letzte Ergebnis, das wir brauchen. Dieser DNS-Stamp ist verschlüsselt Informationen über unseren speziellen DNS-Server, wir werden diese Seite auf dem Client hinzufügen, auf unseren Server verbinden. Es ist nicht für die Sicherheit verschlüsselt, sondern nur für die Dinge einfacher, gleiche wie QR-Code, aber für die DNS-Server. OK, die DNSCrypt-Server-Konfiguration ist abgeschlossen. Testen wir unsere DNSCrypt Server auf Client-Software.

Sobald auf Sie Ihren Server mit einigen Client unten getestet, es ist nicht in der Konsole ausführen müssen. Gehen Sie zurück zu Ihrem VPS und den Prozess stoppen durch Drücken von Strg + C. Dann, aktivieren Sie diesen Dienst dauerhaft


systemctl enable dnsdist
systemctl restart dnsdist
systemctl status dnsdist

Es wird im Hintergrund ausgeführt werden,, so können Sie Ihre SSH-Verbindung schließen und Putty Fenster schließen.

Erweiterte Konfiguration

  • Demnächst: Einrichten von Domain-TXT-Datensätze
  • Demnächst: Aktivieren des IPv6

Installieren von DNSCrypt-Client für Windows

Wir werden die Gesamtführenden Software für DNSCrypt verwenden, die weithin zu auf Linux verwendet wird,: DNSCrypt Proxy. Es ist bereits für win32 und win64 zusammengestellt, so dass es kein Problem zu installieren ist und es ist nicht schwer, überhaupt. Wir installieren sie alle öffentlichen Resolvern verwenden. Für unsere eigene DNS-Server, überprüfen configuation von dnscrypt Proxy für Linux.

Lasst uns beginnen. Laden Sie die gewünschte Version für Ihr System (x64 oder x32) die neueste Version von den offiziellen GitHub Seite. Wenn Sie nicht sicher sind, ob Ihr System x64 oder x32, Download-x32-Version. Ich werde jetzt das Gleiche tun, obwohl ich x64-System haben. Ich werde die Datei herunterladen genannt dnscrypt-proxy-win32-2.0.22.zip (Sie können es hier herunterladen zu). Lassen Sie uns nun die heruntergeladene Datei finden.

Und hier ist, was ich habe. Extrahieren Sie diese Datei. Aber zuerst, Download 7Zip und installieren Sie es die gleichen Menüs haben, wie ich. Warum nicht WinRar? OK, kein Problem, aber es ist nicht frei, obwohl 7zip frei ist und tut so ziemlich die gleiche. Ich verwende 7zip, wie es kostenlos für alle ist.

OK, Jetzt haben wir die Ordner extrahiert. So haben wir einen Ordner mit dem Namen dnscrypt-proxy-blabla

Benennen Sie es ordentlich und nett zu sein: dnscrypt-proxy

Jetzt, Geh zu Arbeitsplatz->Disc C und erstellen Sie einen Ordner mit dem Namen Werkzeuge. Wir müssen über Administratorrechte für diese haben. Move our dnscrypt-proxy folder into this Tools folder so it will be “Tools->dnscrypt-proxy”

Jetzt, rename the file “example-dnscrypt-proxy.toml” to “dnscrypt-proxy.toml” and open it in text editor, Ich empfehle Ihnen, zu installieren Notepad ++. Dies ist der beste Ersatz für Notepad in Windows und vielleicht einen Tag Microsoft wird es statt dieses stupud Notizblock aus Fenstern schließen (Es tut uns leid, Microsoft).

Normalerweise, es ist hier nicht zu tun, was erforderlich. Nehmen Sie einige Änderungen, wenn Sie wollen, speichern und nur einen Blick, was diese Datei wie und schließen Sie sieht es aus. Jetzt, dnscrypt Proxy-Dienst lässt installieren. There is a file named “service-install.bat”. Sie haben es als Administrator ausführen.

Es wird ein neues Konsolenfenster geöffnet. Überprüfen Sie, ob es keine Fehler und in der Nähe.

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

Es ist eine Warnung, dass der Service nicht gestoppt werden kann, aber es ist ok. Service muss installiert und ausgeführt werden, wie es sollte. Press Start button and open command line by searching for “cmd”

Type “control” and press Enter

Das Bedienfeld wird geöffnet. Finden Sie das Internet und Netzwerke Kategorie

Now choose “Change adapter parameters”

Und wählen Sie in der Liste Ihr Hauptnetzwerkadapter (die mit dem Internet verbunden ist). Wenn Sie WiFi haben, es wird ein WiFi-Adapter sein, so wählen Sie

Und offen Optionen. Choose from the list “ipv version 4” and press “Options”

Nun speichern Sie alle Punkte hier und Ausfahrt. Schließen Sie alle Fenster und versuchen, ein paar Seiten in Ihrem Browser öffnen. Wenn es funktioniert wie gewohnt, 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. Wenn Sie es nicht verwenden, dass ist nicht erforderlich.

Installieren von DNSCrypt-Client für Android (Adguard)

Herunterladen Adguard und installieren Sie auf Ihrem mobilen Gerät. Gehe zu den Einstellungen->DNS-Filterung und Aktivieren Sie diese Funktion. The down below there is “Select DNS server”. Tippen Sie darauf, und scrollen Sie nach unten Tasten um zu sehen, für das Hinzufügen eines DNS-Servers. Hier sind ein paar Bilder, um zu sehen, was wir tun:

Jetzt, nehmen wir Stempel für V2 von Protokoll und testen.

Choose “Add custom DNS Server” and paste the sdns://… stuff here. Wir werden diese Art Bild sehen:

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

Damit, wie wir sehen, Protokoll der Version 2 arbeitet groß.

Installieren von DNSCrypt-Client unter Linux

Demnächst

Installieren von DNSCrypt-Client auf Apple Mac OS X

Demnächst

Installieren von DNSCrypt-Client auf Apple iOS

Demnächst

Exit mobile version