Blog sobre seguridad informática, privacidad, anonimato, hacking ético, programación y sistemas operativos en general.

Mostrando las entradas con la etiqueta dnscrypt-proxy. Mostrar todas las entradas
Mostrando las entradas con la etiqueta dnscrypt-proxy. Mostrar todas las entradas

domingo, 17 de septiembre de 2017

Hackeando tu ISP: Conectándote a ProtonVPN, una VPN segura y confiable desde Android.


En el post anterior les explicamos paso a paso cómo instalar OpenVPN en todas las plataformas. El día de hoy les vamos a enseñar cómo conectarse a una VPN segura y de confianza: ProtonVPN desde el sistema operativo Android**. ProtonVPN fué creada por los mismos fundadores de ProtonMail un servicio e-mail de los más seguros y privados hasta el momento, basado en Suiza, un país que respeta de una manera muy estricta los derechos de las personas en la red. 

ProtonVPN ofrece diferentes tipos de servicio, los cuales se pueden encontrar en https://account.protonvpn.com/signup las cuales son: Free, Basic, Plus y Visionary. Nosotros recomendamos que uses uno de los servicios de pago para mayor velocidad y mayor número de países a los cuales conectarse. Luego de crear nuestra cuenta, llenando los requisitos solicitados en https://account.protonvpn.com/signup vamos a realizar los siguientes pasos:

Nota: Para asegurarnos de que todo ha funcionado, primero revisaremos cual es nuestra dirección IP actual, para compararla con la obtenida al final del post. Para eso vamos a la página whatismyipaddress y guardamos nuestro número de dirección IP.

** Cabe aclarar que para este tutorial se utilizó la aplicación OpenVPN para Android en lugar de OpenVPN Connect.

1. Ingresamos a nuestra cuenta aquí.

2. Vamos a la sección "Downloads", seleccionamos Linux y TCP respectivamente. 


3. Un poco más abajo seleccionamos "Servers Configs".



4. Bajamos hasta el final y seleccionamos "Download all config servers."


 5. Una vez descargada la configuración de lo servidores, dependiendo desde cual dispositivo los hayan descargado, deben extraerlos en su dispositivo Android, en una carpeta llamada VPN opcionalmente.

6. Una vez finalizada la extracción, procedemos a configurar OpenVPN para Android. Abrimos la aplicación y seleccionamos el ícono de la parte derecha superior que significa "Importar".


7. Se abrirá el administrador de archivos, buscamos la carpeta VPN que hemos creado y abrimos el archivo de configuración del servidor al que querramos conectarnos.


8. Una vez seleccionada la configuración, se abrirá un diálogo que nos permite elegir el nombre que querramos asignarle a ese perfil, en la parte inferior izquierda seleccionamos "Guardar" en el ícono que aparece.

9. Una vez guardado, aparecerá nuestro perfil creado. Seleccionamos el perfil y se nos abrirá el recuadro de autenticación de la VPN, los cuales los encontramos en nuestra cuenta, en la sección "Account - OpenVPN Username".



Tip: Inicialmente el usuario y contraseña será una combinación de letras y números asignados por el servidor de ProtonVPN, pueden personalizarlos en las opciones "Change Username" & "Change Password".

10. Una vez ingresadas las credenciales, damos en "Aceptar" y allí iniciará nuestro proceso de conexión al servidor VPN.


11. Si todo ha salido bien, al final aparecerá una línea que dice "Initialization Sequence Completed".


12. Comprobamos que nuestra dirección IP corresponda a la del servidor que hemos seleccionado, en mi caso será Suiza (CH).


Nuestra recomendación es que uses siempre servidores VPN de pago y reconocidos, si no tienes el presupuesto necesario por el momento es mejor redirigir todo tu tráfico por TOR, más adelante explicaré como hacerlo desde Android.

Con esto finalizamos este post, en los proximos explicaremos cómo realizarlo para las plataformas restantes: iOS, Windows, Macintosh.

Síguenos en Facebook, Twitter y unete a nuestra charla en Riot.

También puedes dejar su donación a nuestra cuenta Paypal.

viernes, 15 de septiembre de 2017

Hackeando tu ISP: Conectándote a ProtonVPN, una VPN segura y confiable desde GNU/Linux.



En el post anterior les explicamos paso a paso cómo instalar OpenVPN en todas las plataformas. El día de hoy les vamos a enseñar cómo conectarse a una VPN segura y de confianza: ProtonVPN desde el sistema operativo GNU/Linux. ProtonVPN fué creada por los mismos fundadores de ProtonMail un servicio e-mail de los más seguros y privados hasta el momento, basado en Suiza, un país que respeta de una manera muy estricta los derechos de las personas en la red. 

ProtonVPN ofrece diferentes tipos de servicio, los cuales se pueden encontrar en https://account.protonvpn.com/signup las cuales son: Free, Basic, Plus y Visionary. Nosotros recomendamos que uses uno de los servicios de pago para mayor velocidad y mayor número de países a los cuales conectarse. Luego de crear nuestra cuenta, llenando los requisitos solicitados en https://account.protonvpn.com/signup vamos a realizar los siguientes pasos:

Nota: Para asegurarnos de que todo ha funcionado, primero revisaremos cual es nuestra dirección IP actual, para compararla con la obtenida al final del post. Para eso usamos desde nuestra terminal el comando: curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'  y guardamos el número de IP obtenido.

1. Ingresamos a nuestra cuenta aquí.

2. Vamos a la sección "Downloads", seleccionamos Linux y TCP respectivamente.


3. Un poco más abajo seleccionamos "Servers Configs".


4. Bajamos hasta el final y seleccionamos "Download all config servers."


5. Una vez descargados nos vamos a nuestro directorio de descargas, creamos una carpeta llamada "VPN" (opcional) y extraemos el archivo .zip que se descargó con el comando: unzip "ProtonVPN_server_configs.zip". 

6. Una vez haya finalizado el proceso de extracción podemos conectarnos a nuestro cliente VPN deseado mediante OpenVPN, para ello usamos el comando: openvpn "cliente.protonvpn.ovpn", cabe resaltar que cliente.protonvpn.ovpn debe ser reemplazado por el archivo de configuración descargado.


A ustedes les aparecerá menos cantidad de servidores si eligen una cuenta Free o Basic, tampoco les aparecerán servidores especiales como los servidores VPN Tor.

7. Una vez ejecutemos el comando que está en la parte superior nos pedirá la autenticación, debemos introducir la que encontramos en la sección "Account - OpenVPN Username."




Tip: Inicialmente el usuario y contraseña será una combinación de letras y números asignados por el servidor de ProtonVPN, pueden personalizarlos en las opciones "Change Username" & "Change Password".

8. Si todo nuestro procedimiento ha sido exitoso al final nos debe aparecer un mensaje "Initialization Sequence Completed."


Nota: En mi caso aparecen unos "Warning" cuando OpenVPN intenta modificar mi archivo /etc/resolv.conf, esto se debe a que tengo configurado DNSCrypt para usar un servidor DNS que encripte todo mi tráfico.

9. Comprobamos que el proceso haya sido satisfactorio revisando nuestra IP pública actual con el comando usado al inicio: curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'. Realizamos la comparación, si la IP es diferente todo ha salido bien.


Nuestra recomendación es que uses siempre servidores VPN de pago y reconocidos, si no tienes el presupuesto necesario por el momento es mejor redirigir todo tu tráfico por TOR, más adelante explicaré como hacerlo.

Con esto finalizamos este post, en los proximos explicaremos cómo realizarlo para las plataformas restantes: Android, iOS, Windows, Macintosh.

Síguenos en Facebook, Twitter y unete a nuestra charla en Riot.

También puedes dejar su donación a nuestra cuenta Paypal.

domingo, 10 de septiembre de 2017

¡Hackeando tu ISP!. Instalación y configuración de DNSCrypt en GNU/Linux.


El día de hoy les explicaremos que es DNSCrypt, para que sirve, cómo funciona y también detallaremos paso a paso cómo configurarlo en nuestro sistema GNU/Linux para de esa manera obtener una conexión encriptada, de tal manera que nisiquiera nuestro ISP (Proveedor de Servicios) pueda conocer lo que realizamos a diario.

¿Que es DNSCrypt?

DNSCrypt es un protocolo que cifra y autentica las comunicaciones entre el usuario y un servicio de resolución DNS, evita la suplantación de DNS y utiliza firmas criptográficas para verificar que las respuestas provienen del servicio de resolución DNS elegido y no han sido manipuladas.

Es un protocolo abierto, con implementaciones de código abierto y gratuito, y no está afiliada a ninguna empresa u organización. DNSCrypt está disponible para la todas las plataformas en computadoras y dispositivos móviles.

Toma el control de tu tráfico DNS

Además de implementar el protocolo, los clientes comunes de DNSCrypt le dan mucho control sobre el tráfico de DNS.

Utilice dnscrypt-proxy para:

1. Comprobar el tráfico de DNS procedente de su red en tiempo real y detecte hosts y aplicaciones comprometidos en su red.

2. Bloquee localmente anuncios, rastreadores, malware, spam y cualquier sitio web cuyos nombres de dominio o direcciones IP coincidan con un conjunto de reglas que defina.

3. Evitar que las consultas de las zonas locales no se filtren.

4. Reduzca la latencia (tiempo que se necesita para trasmitir datos de un punto a otro en una red) mediante el caché de respuestas y evite solicitar direcciones IPv6 en redes IPv4 solamente.

5. Forzar el tráfico para utilizar TCP, para enrutarlo a través de túneles TCP o simplemente usando Tor.

Instalación.

DNSCrypt se encuentra disponible en la mayoría de distribuciones GNU/Linux desde sus repositorios. Para su instalación en Debian y ArchLinux basta con ejecutar las siguiente órdenes:

ArchLinux: pacman -S dnscrypt-proxy
Debian: apt install dnscrypt-proxy

Adicionalmente puede descargarlo desde su página oficial.

Configuración

DNSCypt proporciona un archivo de configuración cómo ejemplo en /etc/dnscrypt-proxy.conf.example, pero tenga en cuenta que systemd reemplaza la opción LocalAddress con un archivo de socket.

Para configurar DNSCrypt sin problemas sigue los siguientes paso:

Selecciona un servicio de resolución DNS.

Para seleccionar un servicio de resolución DNS adecuado para ti, puedes visitar la página https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv o bien desde tu archivo /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv, usando un nombre corto de los que aparecen en la columna "name" de la página mencionada.

En la imagen anterior un ejemplo de ellos sería bn-fr0.

Lo que debes hacer es cambiar tu archivo /etc/dnscrypt-proxy.conf en el apartado Resolver Settings cómo se muestra a continuación:


También es necesario configurar de manera correcta el apartado ResolversList dentro del archivo /etc/dnscrypt-proxy.conf añadiendo en seguida la ruta donde se encuentra el archivo dnscrypt-resolvers.csv. Es recomendable mantener ese archivo actualizado lo cual puedes hacer copiando, pegando y guardando dentro del archivo lo que está en este link.

También es altamente recomendable realizar lo siguiente:

1. Crea un nuevo usuario llamado dnscrypt usando el siguiente comando sudo adduser -m -N  -r -s /bin/false dnscrypt y enseguida edita el archivo /etc/dnscrypt-proxy.conf en la opción User de la siguiente manera:

User dnscrypt




Modifica el archivo /etc/resolv.conf

Después de realizar el procedimiento anterior, modifica el archivo /etc/resolv.conf reemplazando el contenido existente con:

nameserver 127.0.0.1

Sin embargo existen programas que pueden modificar este archivo, para evitarlo realizaremos los siguientes pasos:

1. Si usas Network Manager edita el archivo /etc/NetworkManager/NetworkManager.conf añadiendo las siguiente líneas:
[main]
dns=none

2. Si usas DHCP modifica el archivo /etc/dhcpcd.conf añadiendo la siguiente línea al final:

nohook resolv.conf

3. Opcionalmente para un mejor rendimiento puedes añadir la siguientes línea en /etc/resolv.conf:

options timeout:1

4. Protege el archivo /etc/resolv.conf contra escritura usando el siguiente comando:

chattr +i /etc/resolv.conf

5. Iniciamos el servicio usando el comando systemctl start dnscrypt-proxy y del mismo modo lo añadimos a la lista de servicios que inician automáticamente con el sistema mediante el comando systemctl enable dnscrypt-proxy. Con esto ya debemos tener nuestro DNSCrypt configurado y funcionando en nuestro sistema, para asegurarnos ejecutamos systemctl status dnscrypt-proxy y debemos obtener algo cómo esto:


¿Qué hago si el comando systemctl start dnscrypt-proxy no funciona (Problema comprobado en Fedora)?

La primera opción es que ejecutes directamente desde la terminal el comando dnscrypt-proxy /etc/dnscrypt-proxy.conf y con esto ya debería funcionar, pero dado que es incómodo tener que ejecutarlo siempre, vamos a crear un servicio para poder iniciarlo con systemctl y añadirlo a la lista de servicios que inician con el sistema, para eso hacemos lo siguiente:

1. Creamos el archivo /usr/lib/systemd/system/dnscrypt-proxy.service con nuestro editor de textos favorito y copiamos y pegamos el siguiente contenido:

[Unit]
Description=dnscrypt - Encrypted DNS service provided by OpenDNS
After=NetworkManager.service

[Service]
ExecStart=/usr/sbin/dnscrypt-proxy /etc/dnscrypt-proxy.conf

[Install]
WantedBy=multi-user.target


2. Guardamos el archivo y ejecutamos el comando systemctl daemon-reload. 

3. Realizamos lo descrito en el paso 5 de la sección anterior.

Finalizando.

Tip: Busca en el archivo /etc/dnscrypt-proxy.conf la opción LocalCache y asegurate que esté desmarcada y On, así:

## Cache DNS responses to avoid outgoing traffic when the same queries
## are repeated multiple times in a row.

LocalCache on
También podemos comprobar que DNSCrypt está funcionando mediante el uso del comando dig, para lo cual necesitamos instalar previamente el paquete bind-tools mediante el gestor de paquetes de su distribución, una vez instalado ejecutamos dig debug.opendns.com txt y debemos obtener algo así en la salida de la terminal:


Con esto finalizamos este post, esperamos que haya sido de su agrado.  

Síguenos en Facebook, Twitter y unete a nuestra charla en Riot.

También puedes dejar su donación a nuestra cuenta Paypal.