Blog P1ratRuleZZZ

Configurare il proprio server DNSCrypt su Ubuntu 16.04 Linux

DNS DNSCrypt VS Plain

Che cos'è il DNS? DNS è un Domain Name Service, che è ampiamente utilizzato da tutti oggi. Se non si sa se si utilizza DNS allora questo articolo non è per voi.

DNS viene utilizzato per risolvere leggibile i nomi di dominio a indirizzi leggibili a macchina. In realtà, per i server su Internet non è importante se il vostro lato ha un nome ordinata e corta o no, ancora non dispiacerebbe avere indirizzi IP brutto come 19.5.81.65 e non la 1.1.1.1 – for example. A proposito, 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.

Così, al fine di conoscere l'indirizzo IP di alcuni server su Internet per dominio nome DNS vengono utilizzati i server. Il tuo browser chiede server DNS la questione come: “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”. Naturalmente non è un vero e proprio IP, l'IP reale non può contenere numeri più grandi di 255 perché ha bisogno di essere esattamente 1 byte. Così, in this routine anyone who sniffs on your wired/wireless connection can see that you are visiting “google.com”. protocollo DNSCrypt è qui per criptare le informazioni e nessuno beetween il PC e la risorsa di destinazione sarà in grado di fiutare le vostre richieste a dominio.

L'obiettivo di questo articolo

  • Installare il proprio DNSCrypt v2 spedizioniere (v1 è supportato troppo) ( useremo pacchetto dnsdist)
  • Installare il client per Windows DNSCrypt
  • Installare il client DNSCrypt per Android

Nota: l'articolo è stato scritto in inglese. Passare all'inglese per disattivare traduzione automatica.

Leggi l'articolo ulteriormente per vedere tutto il tutorial.

Come potete vedere ci accingiamo a passare attraverso il processo di installazione del software client troppo. Ciò significa che se non si desidera installare un proprio server, basta saltare questo passaggio e andare a installazione del client. Ci sono tonnellate di server di DNSCrypt pubblico che è possibile utilizzare e sentirsi al sicuro durante la navigazione in internet.

Passo 1. installazione DNSCrypt Server

Requisiti

  • del server VPS con Ubuntu 16.04 (Nota: qualsiasi Linux può essere usato, questo non è un obbligo di utilizzare Ubuntu, ma in questo tutorial userò Ubuntu). Se si esegue Debian, il processo di installazione sono quasi esattamente la stessa cosa. Ma se si esegue CentOS (che è basato su pacchetti RPM) sarà diverso per voi
  • È necessario disporre dei permessi di root su questo server
  • Qualsiasi PC con Windows per l'installazione del client e di prova
  • (opzionale) Qualsiasi PC / router / dispositivo che esegue qualsiasi sistema operativo Linux (Ubuntu, Debian, CentOS, RedHat, ecc) con processori x64 / x86 / braccio / mips ed ecc.
  • (opzionale) Qualsiasi telefono Android con AdGuard app installata

Preparazione VPS

Userò alcuni server cloud a basso costo per l'installazione del server DNSCrypt su di esso. Così, Sono collegato tramite SSH e vedere console di root


As you can see I’m using Putty to connect to Linux server from Windows machine. Disclaimer: Io uso le finestre qui come un computer client perché Windows è ampiamente usato e un sacco di persone stanno usando e voglio essere il più vicino alla realtà così com'è. Le persone che usano Linux come sistema operativo principale non hanno bisogno di leggere quel tipo di manuali perché possono farlo da soli 🙂

Così, lascia pacchetti di aggiornamento e verificare la versione del pacchetto di libsodium in repo ufficiale:

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

E vediamo lista dei pacchetti

Controlliamo versione del pacchetto libsodium18

 apt-cache madison libsodium18 

La versione del pacchetto ho ottenuto è 1.0.8. Questo non è un bene per noi, perché non supporta la crittografia necessarie per DNSCrypt v2 (anyway v1 will work though we want to do it the way “comme il le faut”. Abbiamo bisogno di almeno la versione 1.0.9.

Così, ci rivolgeremo linux-mente-mode e compilare dai sorgenti!

Ok, una piccola nota qui: se si esegue Ubuntu / Debian x64, è possibile scaricare dpkg pacchetti compilati da me proprio qui: libsodium-1.0.9-dpkg

Diamo prima abilitazione fonti per essere disponibile in APT: Per questo, 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”. Poi scaricare i sorgenti per libsodium e cercare di costruirlo senza cambiamenti:

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:

Così, *.pacchetti deb sono stati costruiti con successo. Ora cerchiamo di aggiornare la versione di questo pacchetto per 1.0.9. Useremo ufficiale github fonte.


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

Nota: l'ultimo comando non è necessario essere eseguito. Ma questa è la versione che ho usato e ha funzionato. So if you want to install newer version just do not execute latest command with “c09b00cf20” commit id. Se non sai che è vero, basta seguire il tutorial e questo dovrebbe funzionare 🙂

Adesso, cerchiamo di aggiornare il pacchetto changelog e impostare un nuovo numero di versione:


dch -n

Si aprirà un editor di testo (nano) e hai solo bisogno di salvarlo premendo Ctrl + O quindi uscire premendo Ctrl + X.

Adesso, ricostruire la versione 1.0.9

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

E vedere l'elenco dei file che abbiamo: dovremmo avere libsodium18_1.0.9-0ubuntu1_amd64.deb libsodium-dbg_1.0.9-0ubuntu1_amd64.deb libsodium-dev_1.0.9-0ubuntu1_amd64.deb
Adesso, tutti loro installazione:

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

Questo è tutto. Il pacchetto requisito principale è installato. Adesso, cerchiamo di compilare il pacchetto dnsdist da fonti utilizzando repo ufficiale su 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

Controllare se non ci sono errori qui e compilare


make
make install

And wait it to compile… This will take a while depending on your VPS. Poi controllare la versione:


dnsdist -V

Per me è:


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

Ok, aggiungiamo alcune configurazioni veloci e vedere come funziona


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

O semplicemente scaricare manualmente il file di configurazione da qui e copiare il suo contenuto dnsdist.conf.zip

Dovremmo vedere che il servizio sia in esecuzione. Adesso, lascia generare le chiavi che saranno necessarie per la crittografia.

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)

Poi, premendo uscita Ctrl + C dalla console dnsdist e aprire la configurazione per abilitare lega DNSCrypt reali. Primo, cerchiamo di scoprire il nostro indirizzo IP pubblico. Siamo fresco padroni di Linux in modo che useremo linea di comando per questa


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

Otterremo 2 Gli indirizzi IP: per v4 e v6. Ovviamente, si può saltare v6 e funziona solo su IPv4, è sufficiente per noi.

Nel mio caso, Ho ottenuto l'indirizzo IP 85.143.172.89. È inoltre possibile ottenere lo stesso ip eseguendo ifconfig. Se hai meno di NAT, è necessario assegnare a IP come 192.168.10.135 – for example. E poi in avanti porti desiderato (8443, 5353)

Adesso, 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. Anche, cambiare nomi dei provider in questo config: these are “1.dnscrypt.mydomain.com” and same for other. È possibile lasciare così com'è, che non è affatto male e non deve essere un vero e proprio nome di dominio anche se è meglio essere in un nome di un vero e proprio dominio. Vi lasciamo come è per questo esempio. Adesso, salvare il file Ctrl + O e l'uscita Ctrl + X e arrestare il servizio ed eseguirlo manualmente per vedere i registri


service dnsdist stop
dnsdist -v --disable-syslog

Vediamo che è ok ed è in ascolto nostri porti.

Ok, la prima metà del lavoro è fatto. Lasciare il dnsdist esecuzione in console, non chiuderlo e non tagliare internet off. Adesso, Permette di scoprire la chiave pubblica del fornitore. Al fine di farlo, scrivere la seguente a destra alla console con dnsdist esecuzione

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

E questo visualizzerà fingerpring per la chiave pubblica

Adesso, Consente di prendere le impronte digitali che e copiarlo negli appunti e aprire una nuova finestra di console con connessione SSH al vostro VPS (perché noi non vogliamo fermare il processo in esecuzione dnsdist). In nuova console, a destra la seguente


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

Ovviamente, sostituire il fingerpring con il valore. Questo ci darà il valore normalizzato in minuscolo. Copia questo negli appunti. For me it is “df762d342e3adfce6a68b520af347d58a2030967184d2c95f341420477dc4450”. Come si può intuire, we removed “:” character and lowercased the string, questo è tutto.

Adesso, creiamo un timbro di DNS per questo server. Vai al super grande pagina di utilità qui https://dnscrypt.info/stamps/

E riempire i valori dalla configurazione. Per me sarà simile a questo

E ora salvare le SNDS://… server info stamp.

Per me è: sdns://AQYAAAAAAAAAEjg1LjE0My4xNzIuODk6ODQ0MyDfdi00LjrfzmpotSCvNH1YogMJZxhNLJXzQUIEd9xEUBcxLmRuc2NyeXB0Lm15ZG9tYWluLmNvbQ

E 'stata una configurazione per il protocollo DNSCrypt V1. In realtà, questo è sufficiente, ma ci sono compilati dnsdist da fonti soprattutto per utilizzare il protocollo di versione 2. Adesso, fare lo stesso per DNSCrypt v2 (sulla porta 5353 in questo caso)

Bollo per DNSCrypt v2: sdns://AQYAAAAAAAAAEjg1LjE0My4xNzIuODk6NTM1MyDfdi00LjrfzmpotSCvNH1YogMJZxhNLJXzQUIEd9xEUBcyLmRuc2NyeXB0Lm15ZG9tYWluLmNvbQ

Questo è in realtà il risultato finale abbiamo bisogno. Questo Stamp DNS è crittografato informazioni sulla nostra particolare server DNS, l'aggiungeremo questo sul lato client per connettersi al nostro server. Non è criptato per la sicurezza, ma solo per rendere le cose più facili, stesso codice QR, ma per il server DNS. Ok, la configurazione del server è terminata DNSCrypt. Testiamo il nostro server DNSCrypt in qualche software client.

Appena a aver testato il server con qualche cliente in basso, non è necessario eseguirlo in consolle. Torna al tuo VPS e interrompere il processo premendo Ctrl + C. Poi, attivare questo servizio in modo permanente


systemctl enable dnsdist
systemctl restart dnsdist
systemctl status dnsdist

Esso sarà in esecuzione in background, in modo da poter chiudere la connessione SSH e finestra Putty chiudere.

configurazione avanzata

  • Prossimamente: Impostazione di dominio record TXT
  • Prossimamente: L'attivazione di IPv6

L'installazione del client per Windows DNSCrypt

Useremo il software leader del complessivo per DNSCrypt che è ampiamente utilizzato anche su Linux: DNSCrypt Proxy. E 'già compilato per Win32 e Win64 quindi non è un problema per installarlo e non è affatto difficile. Noi installarlo per utilizzare tutti i risolutori pubblici. Per usare il nostro server DNS personalizzato, controllare configuation delega dnscrypt per Linux.

Iniziamo. Scaricare la versione desiderata per il sistema (x64 o x32) di ultima versione dal ufficiale pagina GitHub. Se non siete sicuri se il vostro sistema è x64 o x32, download la versione x32. Io farò lo stesso in questo momento se ho sistema x64. Io scaricare il file chiamato dnscrypt-proxy-win32-2.0.22.zip (è possibile scaricarlo da qui troppo). Vediamo ora trovare il file scaricato.

Ed ecco quello che ho. Estrarre questo file. Ma prima, scarica 7Zip e installarlo ad avere gli stessi menu come ho. Perché no WinRar? Ok, nessun problema, ma non è libero anche se 7zip è gratuito e fa praticamente la stessa. Userò 7zip in quanto è gratuito per tutti.

Ok, ora abbiamo estratto le cartelle. Così abbiamo una cartella denominata dnscrypt-proxy-blabla

Rinominarlo in essere pulito e piacevole: dnscrypt-proxy

Adesso, andare a Risorse del computer>Disco C e creare una cartella denominata Strumenti. Dovremo avere diritti di amministratore per questo. Move our dnscrypt-proxy folder into this Tools folder so it will be “Tools->dnscrypt-proxy”

Adesso, rename the file “example-dnscrypt-proxy.toml” to “dnscrypt-proxy.toml” and open it in text editor, Vi consiglio di installare Notepad ++. Questo è il miglior sostituto per il Blocco note di Windows e forse un giorno Microsoft prevede invece di questo stupud notepad dalle finestre (spiacente, Microsoft).

Normalmente, non è necessario fare nulla qui. Apportare alcune modifiche, se si desidera, salvare e basta dare un'occhiata quanto questo file assomiglia e chiuderlo. Adesso, lascia installare dnscrypt servizio proxy. There is a file named “service-install.bat”. Si deve eseguire come amministratore.

Ci sarà una nuova finestra di console aperta. Controllare se non ci sono errori e vicino.

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

V'è un avvertimento che il servizio non può essere interrotto, ma è ok. Servizio deve essere installato e funzionante come dovrebbe. Press Start button and open command line by searching for “cmd”

Type “control” and press Enter

Il pannello di controllo viene aperto. Trovare la categoria Internet e reti

Now choose “Change adapter parameters”

E selezionare nella lista la scheda di rete principale (che è collegato a Internet). Se si dispone di connessione Wi-Fi, sarà un adattatore WiFi in modo da selezionare

E opzioni aperte. Choose from the list “ipv version 4” and press “Options”

Ora salvare tutti i punti qui e uscita. Chiudere tutte le finestre e provare ad aprire alcune pagine nel browser. Se funziona come al solito, 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. Se non ne fanno uso, che non è necessaria.

L'installazione del client DNSCrypt per Android (AdGuard)

Scarica AdGuard e installare sul tuo dispositivo mobile. Vai alle impostazioni->Filtraggio DNS e attivare questa funzione. The down below there is “Select DNS server”. Toccare su di esso e scorrere fino alla fine per vedere i pulsanti per l'aggiunta di un server DNS. Ecco alcune foto per vedere quello che stiamo facendo:

Adesso, diamo francobollo per V2 di protocollo e testarlo.

Choose “Add custom DNS Server” and paste the sdns://… stuff here. Vedremo questa immagine tipo:

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

Così, come si vede, Protocollo di versione 2 sta lavorando molto.

L'installazione del client DNSCrypt su Linux

Prossimamente

L'installazione del client DNSCrypt su Apple Mac OS X

Prossimamente

L'installazione del client DNSCrypt su Apple iOS

Prossimamente

Exit mobile version