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 – per esempio. A proposito, 1.1.1.1 – è un indirizzo del server DNS davvero lavorando su CloudFlare e supporta tutti i protocolli: 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: “Qual è l'indirizzo IPv4 di www.google.com” e il server DNS risponde “L'indirizzo IPv4 www.google.com è 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 questo chiunque di routine che fiuta sulla connessione cablata / wireless può vedere che si sta visitando “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


Come si può vedere che sto usando Putty per connettersi al server Linux da una macchina Windows. disconoscimento: 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 (comunque v1 funzionerà se vogliamo farlo nel modo “come dovrebbe”. 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, aprire il file /etc/apt/sources.list e decommentare nelle fonti nell'universo della fila con deb-src … universo o semplicemente eseguire il seguente:


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

Creiamo una nuova cartella all'interno / root e lo chiamano “costruire”. 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

Ci vorrà un po 'di tempo… Ma il punto principale è che non si dovrebbero avere errori durante la compilazione e dovrebbe vedere alla fine il seguente:

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. Quindi, se si desidera installare la versione più recente basta non eseguire più recente comando con “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

E aspettare che per la compilazione… Questo richiederà un po 'a seconda della 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 – per esempio. E poi in avanti porti desiderato (8443, 5353)

Adesso, lascia aprire il file di configurazione /etc/dnsdist/dnsdist.conf e trovare la linea con “ipv4addr” e modificare l'indirizzo qui.

Poi vai a addDNSCryptBind… parte alla fine del file e rimuovere il commento quelli con IPv4 in modo che sarà simile a questa

Abbiamo appena rimosso ‘–‘ dall'inizio delle corde per decommentarle. Anche, cambiare nomi dei provider in questo config: questi sono “1.dnscrypt.mydomain.com” e lo stesso per altri. È 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. Per me è “df762d342e3adfce6a68b520af347d58a2030967184d2c95f341420477dc4450”. Come si può intuire, abbiamo rimosso “:” carattere e la stringa in minuscolo, 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 di informazioni di bollo.

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. Spostare la nostra cartella dnscrypt-proxy in questa cartella Strumenti, quindi sarà “Utensili->dnscrypt-proxy”

Adesso, rinominare il file “esempio-dnscrypt-proxy.toml” a “dnscrypt-proxy.toml” e aprirlo in editor di testo, 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. C'è un file chiamato “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ì, ora eseguire il secondo file “service-Restart.bat” anche come amministratore.

V'è un avvertimento che il servizio non può essere interrotto, ma è ok. Servizio deve essere installato e funzionante come dovrebbe. Premere il pulsante di avvio e la linea di comando di apertura attraverso la ricerca di “cmd”

genere “controllo” e premere Invio

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

ora scegliere “parametri Modifica adattatore”

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. Scegli dalla lista “IPV versione 4” e premere “Opzioni”

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, la messa a punto è stato fatto e ora avete ottenuto le vostre richieste DNS.

Per IPv6 impostare il server DNS sotto il “IP versione 6” a “::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. Il basso c'è “Seleziona server DNS”. 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.

Scegliere “Aggiungere server DNS personalizzato” e incollare le sdns://… roba qui. Vedremo questa immagine tipo:

stampa “Salva e abilitare” e poi controllare i log sul lato server:

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

 

Caricamento

Questo articole è stato pubblicato in Protezione dati, Informazioni Di Sicurezza, System Administration, Crittografia e contrassegnati , , , , , , , , , , , , , , , , . Contrassegna il permalink. | Breve collegamento:  http://p1rat.ru/lezzz/Yn5pU

Lascia un Commento