La creación de su propio servidor DNSCrypt en Ubuntu 16.04 Linux

DNS DNSCrypt VS Llanura

¿Qué es el DNS? DNS es un servicio de nombres de dominio, que es ampliamente utilizado por todo el mundo de hoy. Si usted no sabe si está utilizando DNS, entonces este artículo no es para ti.

DNS se utiliza para resolver legible para los nombres de dominio a direcciones legibles por máquina. Actualmente, para servidores de Internet no es importante si su lado tiene un nombre limpio y corta o no, aún no le importa tener direcciones IP como feos 19.5.81.65 y no el 1.1.1.1 – por ejemplo. Por cierto, 1.1.1.1 – es una dirección de servidor DNS realmente de trabajo de CloudFlare y es compatible con todos los protocolos: DNS, DNSCrypt, DNS-Over-TLS, DNS-Over-HTTPS.

Asi que, con el fin de conocer la dirección IP de algún servidor en Internet por el nombre de dominio DNS se utilizan servidores. Su navegador pregunta al servidor DNS pregunta como: “¿Qué es la dirección IPv4 del www.google.com” y el servidor DNS responde “La dirección IPv4 de www.google.com es 123.456.789.123”. Por supuesto que no es una verdadera IP, la IP real no puede contener un número mayor de 255 porque tiene que ser exactamente 1 byte. Asi que, en esta rutina de cualquier persona que huele en su conexión alámbrica / inalámbrica puede ver que va a visitar “google.com”. DNSCrypt protocolo está aquí con el fin de cifrar esta información y nadie beetween su PC y el recurso de destino será capaz de oler sus peticiones de dominio.

El objetivo de este artículo

  • Instalar su propio promotor DNSCrypt v2 (v1 se apoya demasiado) ( vamos a utilizar el paquete dnsdist)
  • Instalar el cliente DNSCrypt para Windows
  • Instalar el cliente DNSCrypt para Android

Nota: el artículo fue escrito en Inglés. Cambiar a Inglés desactivar traducción automática.

Lea el artículo más para ver todo el tutorial.

Como se puede ver que vamos a pasar por el proceso de instalación de software de cliente demasiado. Eso significa que si usted no desea instalar un servidor propio, omita este paso y vaya a la instalación del cliente. Hay toneladas de servidor DNSCrypt pública que se pueden utilizar y se sienten seguros al navegar por Internet.

Paso 1. DNSCrypt instalación del servidor

requisitos

  • servidor VPS con Ubuntu 16.04 (Nota: cualquier Linux puede ser usado, esto no es un requisito de utilizar Ubuntu, pero en este tutorial voy a utilizar Ubuntu). Si está ejecutando Debian, el proceso de instalación son casi exactamente el mismo. Sin embargo, si está ejecutando CentOS (que está basado en paquetes RPM) que será diferente para usted
  • Debe tener permisos de root en este servidor
  • Cualquier PC con Windows para la instalación del cliente y la prueba
  • (Opcional) Cualquier PC / enrutador / dispositivo que ejecute cualquier sistema operativo Linux (Ubuntu, Debian, CentOS, RedHat, etc.) con procesadores x64 / x86 / brazo / MIPS y etc.
  • (Opcional) Cualquier teléfono Android con la aplicación instalada AdGuard

VPS preparar

Voy a utilizar algún servidor de la nube barata para instalar el servidor DNSCrypt en él. Asi que, Estoy conectado a través de SSH y veo a raíz de la consola


Como se puede ver que estoy usando masilla para conectarse al servidor Linux de la máquina de Windows. Renuncia: Yo uso Windows aquí como una máquina cliente, ya que Windows se utiliza ampliamente y mucha gente lo está utilizando y yo quiero estar tan cerca de la realidad, ya que es. Las personas que usan Linux como sistema operativo principal no necesitan leer ese tipo de manuales porque pueden hacerlo por sí mismos 🙂

Asi que, deja para los paquetes de actualización y comprobar la versión del paquete de libsodium en repo oficial:

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

Y vemos lista de paquetes

Vamos a comprobar la versión del paquete de libsodium18

 apt-cache madison libsodium18 

La versión del paquete que tengo es 1.0.8. Eso no es bueno para nosotros, ya que no admite el cifrado necesario para DNSCrypt v2 (de todos modos v1 funcionará aunque queremos hacerlo de la manera “como debería”. Necesitamos por lo menos la versión 1.0.9.

Asi que, giraremos Linux-mente-modo y compilar desde el código fuente! 

De acuerdo, una pequeña nota aquí: si está ejecutando Ubuntu / Debian x64, se puede descargar dpkg paquetes compilados por mí aquí: libsodium-1.0.9-dpkg

Primero vamos a habilitar las fuentes de que esté disponible en APT: Para esto, abrir el archivo /etc/apt/sources.list y elimine el comentario de las fuentes universo la fila con deb-src … universo o simplemente ejecute el siguiente:


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

Vamos a crear una nueva carpeta dentro de / root y lo llaman “construir”. A continuación, descarga las fuentes de libsodium y tratar de construir sin cambios:

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

Tomará un poco de tiempo… Pero el punto principal es que usted no debería tener algún error en la compilación y debería ver al final el siguiente:

Asi que, *.paquetes deb se construyeron con éxito. Ahora vamos a actualizar la versión de este paquete de 1.0.9. Utilizaremos oficial gitHub fuente.


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: el último comando no es necesario para ser ejecutado. Pero esta es la versión que usé y funcionó. Así que si desea instalar la versión más reciente simplemente no ejecutar comandos con la última “c09b00cf20” Commit Identificación. Si usted no sabe que lo es, solo sigue el tutorial y esto debería funcionar 🙂

Ahora, vamos a actualizar el registro de cambios del paquete y estableció un nuevo número de versión:


dch -n

Esto abrirá un editor de texto (nano) y sólo tiene que guardarlo pulsando Ctrl + O y luego salir pulsando Ctrl + X.

Ahora, la reconstrucción de la versión 1.0.9

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

Y ver la lista de archivos que tenemos: deberíamos tener libsodium18_1.0.9-0ubuntu1_amd64.deb libsodium-dbg_1.0.9-0ubuntu1_amd64.deb libsodium-dev_1.0.9-0ubuntu1_amd64.deb
Ahora, instalarlos todos:

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

Eso es. El paquete principal requisito está instalado. Ahora, vamos a compilar el paquete dnsdist de fuentes usando repo oficial 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

Compruebe si hay errores aquí y compilar


make
make install

Y esperar que para compilar… Esto tomará un tiempo dependiendo de su VPS. A continuación, comprobar la versión:


dnsdist -V

Para mí es:


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

De acuerdo, vamos a añadir algunas configuraciones rápidas y ver cómo funciona


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 simplemente descargar manualmente el archivo de configuración de aquí y copiar su contenido dnsdist.conf.zip

Debemos ver que el servicio se está ejecutando. Ahora, deja para generar las claves que serán necesarios para el cifrado.

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)

Entonces, pulsando salida Ctrl + C de la consola dnsdist y abrir su config para permitir que se une DNSCrypt reales. primero, vamos a averiguar nuestra dirección IP pública. Somos maestros fresco Linux así que vamos a utilizar la línea de comand para este


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

Obtendremos 2 Direcciones IP: v4 y v6. Por supuesto, puede omitir v6 y trabajar sólo en IPv4, es suficiente para nosotros.

En mi caso, Me dio la dirección IP 85.143.172.89. También puede obtener la misma IP ejecutando ifconfig. Si es menor de NAT, éste debe asignarse a la propiedad intelectual como 192.168.10.135 – por ejemplo. Y luego hacia adelante puertos deseada (8443, 5353)

Ahora, deja para abrir el archivo de configuración /etc/dnsdist/dnsdist.conf y encontrar la línea con “ipv4addr” y cambiar la dirección de aquí.

A continuación, vaya a addDNSCryptBind… parte al final del archivo y elimine los que tienen IPv4 en ella por lo que se verá así

Sólo hemos eliminado ‘–‘ desde el inicio de las cuerdas para descomentarlas. también, cambiar los nombres de proveedores en este config: estos son “1.dnscrypt.mydomain.com” y lo mismo para otra. Puede dejar tal y como está, que no es malo en absoluto y que no tiene que ser un nombre de dominio real, aunque es mejor que estar en un nombre de un verdadero dominio. Vamos a dejarlo como está para este ejemplo. Ahora, guardar el archivo Ctrl + O y salida Ctrl + X y detener el servicio y ejecutar de forma manual para ver los registros


service dnsdist stop
dnsdist -v --disable-syslog

Vemos que está bien y que está escuchando en los puertos.

De acuerdo, la primera mitad del trabajo está hecho. Deje el dnsdist se ejecuta en la consola, no lo cierre y no corte a Internet fuera. Ahora, permite descubrir la clave pública del proveedor. Con el fin de hacerlo, escribir la siguiente a la derecha en la consola con dnsdist correr

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

Y esto mostrará fingerpring de clave pública

Ahora, Deja la toma de huellas dactilares que y copiarlo en el portapapeles y abrir una nueva ventana de consola con conexión ssh a su VPS (porque no queremos detener el proceso de ejecución dnsdist). En la nueva consola, derecho de la siguiente


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

Por supuesto, fingerpring sustituir con su valor. Esto nos dará el valor normalizado en minúsculas. Copia esto en el portapapeles. Para mí es “df762d342e3adfce6a68b520af347d58a2030967184d2c95f341420477dc4450”. Como se puede adivinar, fueron trasladados “:” carácter y la cadena en minúsculas, Eso es.

Ahora, vamos a crear un sello de DNS para este servidor. Ir a la página de súper gran utilidad aquí https://dnscrypt.info/stamps/

Y rellenar los valores de la configuración. Para mí se busca como esto

Y ahora guardar los SNDs://… información servidor de marca.

Para mí es: sdns://AQYAAAAAAAAAEjg1LjE0My4xNzIuODk6ODQ0MyDfdi00LjrfzmpotSCvNH1YogMJZxhNLJXzQUIEd9xEUBcxLmRuc2NyeXB0Lm15ZG9tYWluLmNvbQ

Esa fue una configuración para el protocolo DNSCrypt V1. Actualmente, es suficiente, pero se compilan a partir de fuentes dnsdist especialmente para utilizar el protocolo de la versión 2. Ahora, hacer lo mismo para DNSCrypt v2 (en el puerto 5353 en este caso)

Sello para DNSCrypt v2: sdns://AQYAAAAAAAAAEjg1LjE0My4xNzIuODk6NTM1MyDfdi00LjrfzmpotSCvNH1YogMJZxhNLJXzQUIEd9xEUBcyLmRuc2NyeXB0Lm15ZG9tYWluLmNvbQ

Esto es en realidad el resultado final que necesitamos. Este sello DNS está cifrada información sobre nuestro servidor DNS en particular, vamos a añadir esto en el lado cliente para conectarse a nuestro servidor. No está cifrado para la seguridad, pero sólo para hacer las cosas más fáciles, mismo que el código QR, pero para servidor DNS. De acuerdo, la configuración del servidor DNSCrypt está terminado. Vamos a probar nuestro servidor DNSCrypt de algún software de cliente.

En cuanto a que haya probado su servidor con algún cliente por debajo, no se necesita para ejecutarlo en la consola. Volver a su VPS y detener el proceso pulsando Ctrl + C. Entonces, activar este servicio de forma permanente


systemctl enable dnsdist
systemctl restart dnsdist
systemctl status dnsdist

Se ejecuta en segundo plano, para que pueda cerrar su conexión SSH y cerrar la ventana de masilla.

Configuracion avanzada

  • Próximamente: La creación de registros TXT de dominio
  • Próximamente: IPv6 que permite

Instalar el cliente DNSCrypt para Windows

Vamos a utilizar el software líder de la general para DNSCrypt que es ampliamente utilizado en Linux también: DNSCrypt Proxy. Ya se compila para Win32 y Win64 por lo que no es un problema para instalarlo y no es difícil en absoluto. Vamos a instalarlo para utilizar todos los dispositivos de resolución públicas. Para poder utilizar nuestro servidor DNS personalizado, comprobar configuation de apoderado dnscrypt para Linux.

Empecemos. Descargar la versión deseada para su sistema (x64 o x32) de la última versión del funcionario página GitHub. Si no está seguro de si su sistema es x64 o x32, versión de descarga x32. Voy a hacer lo mismo en este momento aunque no tengo sistema x64. Voy a descargar el archivo llamado dnscrypt-proxy-win32-2.0.22.zip   (puede descargarlo desde aquí también). Veamos ahora el archivo descargado.

Y aquí es lo que tengo. Extraer este archivo. Pero primero, descarga 7Zip e instalarlo tener los mismos menús que tengo. ¿Por qué no WinRar? De acuerdo, No hay problema, pero no es gratis, aunque 7zip es gratis y no hace más o menos la misma. Voy a utilizar 7zip, ya que es gratuita para todos.

De acuerdo, Ahora hemos extraído las carpetas. Así que tiene una carpeta denominada dnscrypt-proxy-blabla

Cambiar el nombre a ser ordenada y agradable: dnscrypt-proxy

Ahora, ir a Mi PC>Disco C y crear una carpeta denominada Herramientas. Habrá que tener derechos de administrador para esta. Mover nuestra carpeta dnscrypt-proxy en esta carpeta Herramientas por lo que será “Herramientas->dnscrypt-proxy”

Ahora, cambiar el nombre del archivo “ejemplo-dnscrypt-proxy.toml” a “dnscrypt-proxy.toml” y abrirlo en el editor de texto, Te recomiendo instalar notepad ++. Este es el mejor reemplazo para el bloc de notas en las ventanas y quizás algún día Microsoft incluirá en lugar de este bloc de notas stupud de las ventanas (lo siento, microsoft).

Normalmente, no es necesario hacer nada aquí. Hacer algunos cambios si quieres, salvarlo y sólo echar un vistazo lo que este archivo Aspecto del producto y cerrarlo. Ahora, deja para instalar dnscrypt servicio de proxy. Hay un archivo llamado “servicio-install.bat”. Usted tiene que ejecutarlo como administrador.

Habrá una nueva ventana de consola abierto. Compruebe si hay errores y cerca.

Asi que, Ahora ejecutar el segundo archivo “servicio Restart.bat” También como administrador.

Hay una advertencia de que el servicio no se puede detener, pero está bien. El servicio deberá ser instalado y funcionando como debiera. Pulse el botón de inicio y la línea de comando de apertura mediante la búsqueda de “cmd”

Tipo “controlar” y pulse Intro

El panel de control se abrirá. Encuentra la categoría Internet y Redes

A continuación, seleccione “Cambiar los parámetros del adaptador”

Y seleccione en la lista de su adaptador de red principal (que está conectado a internet). Si tiene conexión Wi-Fi, será un adaptador WiFi para seleccionar

Y opciones abiertas. Escoge de la lista “versión IPV 4” y pulse “opciones”

Ahora guardar todos los puntos aquí y salir. Cierre todas las ventanas y tratar de abrir algunas páginas en su navegador. Si funciona como de costumbre, la configuración se ha hecho y que ahora se han asegurado sus peticiones DNS.

Para IPv6 configurar su servidor DNS bajo la “IP versión 6” a “::1”. Si no lo usa, que no es necesario.

Instalar el cliente DNSCrypt para Android (AdGuard)

Descargar AdGuard e instalar en su dispositivo móvil. Ir a la configuración->Filtrado y DNS Habilitar esta característica. El abajo hay “Elija un servidor DNS”. Pulse sobre él y vaya a la parte inferior para ver los botones para añadir un servidor DNS. Aquí hay algunas fotos para ver lo que estamos haciendo:

Ahora, tomemos sello para V2 de protocolo y probarlo.

Elegir “Añadir personalizada del servidor DNS” y pegar los sdns://… cosas aquí. Veremos esta imagen especie:

prensa “Guardar y activar” y luego comprobar los registros en el lado servidor:

Asi que, como podemos ver, protocolo de versión 2 es trabajo grande.

Instalar el cliente DNSCrypt en Linux

Próximamente

Instalar el cliente DNSCrypt en el Apple Mac OS X

Próximamente

Instalar el cliente DNSCrypt en el Apple iOS

Próximamente

 

Cargando

Esta entrada fue publicada en protección de datos, Seguridad De Información, Administración del Sistema, cifrado y etiquetado , , , , , , , , , , , , , , , , . Marcar el permalink. | Enlace corto:  http://p1rat.ru/lezzz/Yn5pU

Deja una respuesta