Compañías de todas partes venden servicios VPN para proteger su actividad en línea, pero ¿puede verdaderamente confiar en un proveedor de VPN? Si lo desea, puede crear su propia red privada virtual con el código abierto Software Algoy el proveedor de hosting en la nube de su elección.
VPN y confianza
Sin tener en cuenta lo que diga o presuma la política de privacidad sobre las auditorías de seguridad en el blog de una compañía, no hay nada que impida que una VPN controle todo lo que hace en línea. Al final, seleccionar un servicio VPN se reduce a la confianza.
Si confiar en los servicios en línea sin rostro no es lo tuyo, una alternativa es ejecutar tu propio servidor VPN. Esto solía ser una tarea abrumadora, pero gracias a la proyecto de código abierto Algo de la compañía de seguridad Rastro de bits, crear su propia VPN ahora es fácil.
Por $ 5 por mes, puede ejecutar y controlar su propio servidor VPN de tiempo completo. Aún mejor, puede utilizar Algo para configurar y derribar servidores VPN cuando los necesite y ahorrar dinero en el procedimiento.
Para configurar Algo, debe utilizar la línea de comando. Si eso es desagradable, no se preocupe, lo guiaremos en cada paso.
Estas instrucciones pueden parecer muchas, pero eso es solo debido a que estamos explicando todo lo que podemos. Una vez que haya creado una VPN con Algo varias veces, no debería llevar mucho tiempo. Al mismo tiempo, solo tiene que configurar el entorno de instalación de Algo una vez. Después de eso, puede crear un nuevo servidor VPN con unas pocas teclas.
Pero, ¿puedes confiar en que los guiones de Algo no están haciendo nada malo? Bueno, la buena noticia es El código de Algo es público en GitHub para que cualquiera pueda mirar. Al mismo tiempo, muchos expertos en seguridad están interesados en el proyecto Algo, que hace que las fechorías sean menos probables.
RELACIONADO: ¿Qué es una VPN y por qué necesitaría una?
Lo que Algo puede (y no puede) hacer
Una VPN es una buena manera de proteger su actividad en línea, especialmente en una red Wi-Fi pública en un aeropuerto o cafetería. Una VPN hace que la navegación web sea más segura y obstaculiza a cualquier actor malintencionado que pueda estar en la misma red Wi-Fi local. Una VPN además puede ayudar si su ISP restringe ciertos tipos de tráfico, como torrents.
¡Pero cuidado, piratas! Descargar booty a través de su propia VPN no es una buena idea, dado que la actividad se puede rastrear más fácilmente hasta usted.
Al mismo tiempo, si desea ver Netflix a través de su VPN, tendrá que buscar en otro lado; Algo no funciona con él. A pesar de esto, hay muchos servicios comerciales que admiten Netflix.
Requerimientos previos para Algo
Para poner en funcionamiento un servidor Algo VPN, necesita un shell Unix Bash. En un sistema Mac o Linux, puede utilizar su programa Terminal, pero en Windows, tendrá que activar el Subsistema para Linux. A continuación, se explica cómo instalar y utilizar el shell de Linux Bash en Windows 10.
Además necesitará una cuenta en un proveedor de hosting de servidores en la nube. Algo admite todo lo siguiente:
Si nunca ha utilizado ninguno de estos servicios, le sugerimos DigitalOcean, dado que es muy fácil de utilizar. Además es el servicio que usamos en este tutorial. El procedimiento será un poco distinto si utiliza un proveedor distinto.
Cuando su cuenta de DigitalOcean esté lista, inicie sesión y posteriormente, desde el panel principal, seleccione «API» en el carril izquierdo debajo del encabezado «Cuenta».
En la página siguiente, haga clic en «Generar token nuevo». Un token de acceso es una larga cadena de letras y números que posibilita entrar a los recursos de la cuenta sin un nombre de usuario y contraseña. Deberá nombrar el nuevo token. De forma general, es una buena idea ponerle el nombre de la aplicación que estás usando, como “algo” o “ian-algo” (si tu primer nombre es Ian).
Una vez generado el nuevo token, cópielo y péguelo en un documento de texto en su escritorio. Lo necesitará en unos minutos.
Configuración de su entorno
De vuelta en su escritorio, abra una nueva ventana de terminal, escriba cd
(para «cambiar directorio», que es como se llaman las carpetas en el mundo Unix), y presione Enter. Esto asegurará que está trabajando desde el directorio de inicio de la terminal.
En el momento de escribir este post, Algo necesita Python 3.6 o posterior. Escriba lo siguiente en su programa de terminal:
python3 --version
Si recibe una respuesta como Python 3.6.9
, eres bueno para ir; si no, tendrá que instalar Python 3.
Para instalar Python 3 en Mac, puede utilizar el administrador de paquetes Homebrew. Cuando Homebrew esté listo, escriba el siguiente comando en una ventana de Terminal:
brew install python3
Si está usando Ubuntu Linux o WSL en Windows, deberían tener Python 3 de forma predeterminada. Caso contrario, los métodos de instalación varían según su versión de Linux. Busque en línea «instalar Python 3 en [insert your version of Linux here]”Para obtener instrucciones.
A continuación, debe instalar Virtualenv de Python3 para crear un entorno de Python aislado para Algo. Escriba lo siguiente en Bash en una Mac:
python3 -m pip install --upgrade virtualenv
En Ubuntu Linux y WSL, el comando es el siguiente:
sudo apt install -y python3-virtualenv
Tenga en cuenta que estamos adaptando este tutorial para Ubuntu y distribuciones asociadas, pero estas instrucciones además funcionarán para otras versiones de Linux con algunas modificaciones menores. Si está usando CentOS, a modo de ejemplo, sustituirá las instrucciones usando apt
con dnf
.
A continuación, necesitamos descargar Algo con el wget
mando. Las Mac no disponen wget
instalado de forma predeterminada, por lo que para obtenerlo a través de Homebrew, escriba lo siguiente:
brew install wget
Ahora, descarguemos los archivos de Algo:
wget https://github.com/trailofbits/algo/archive/master.zip
Después wget
termina, habrá un archivo comprimido llamado «master.zip» en el directorio de inicio de su terminal; vamos a chequear eso con ls
.
Si ve «master.zip» en el listado de archivos y carpetas que aparece, está listo para comenzar. Si no, intente correr wget
de nuevo.
Ahora, necesitamos descomprimir el archivo, por lo tanto escribimos lo siguiente:
unzip master.zip
Una vez realizado esto, golpea ls
de nuevo. Ahora debería ver una nueva carpeta en su directorio de inicio llamada «algo-master».
Estamos casi listos para la acción, pero primero, necesitamos configurar nuestro entorno aislado e instalar algunas dependencias más. Esta vez trabajaremos dentro de la carpeta «algo-master».
Escriba lo siguiente para cambiar a la carpeta:
cd ~/algo-master
Asegúrese de estar allí con este comando:
pwd
Esto significa «imprimir directorio de trabajo» y debería mostrar algo como /home/Bob/algo-master
o /Users/Bob/algo-master
. Ahora que estamos en el lugar correcto, preparemos todo.
Copie y pegue o escriba el siguiente comando en una sola línea (no presione Entrar hasta el final):
python3 -m virtualenv --python="$(command -v python3)" .env && source .env/bin/activate && python3 -m pip install -U pip virtualenv && python3 -m pip install -r requirements.txt
Esto desencadena una gran cantidad de acciones dentro del directorio de Algo para prepararse para la ejecución.
A continuación, debe nombrar a sus usuarios para la VPN. Si no los nombra a todos ahora, tendrá que conservar las claves de seguridad (que es menos seguro) o iniciar un nuevo servidor desde cero más adelante.
De cualquier manera, escriba lo siguiente en la terminal:
nano config.cfg
Esto abre el editor de texto de línea de comandos fácil de utilizar, Nano. El archivo de configuración de Algo contiene mucha información, pero solo nos interesa la parte que dice «usuarios». Todo lo que debe hacer es quitar los nombres de usuario predeterminados (teléfono, computadora portátil, computadora de escritorio) y escribir un nombre para cada dispositivo que desee en su VPN.
A modo de ejemplo, si estoy creando una VPN para mí, Bill y Mary, el archivo de configuración podría tener el siguiente aspecto:
users:
- Ian_PC
- Bill_Mac
- Mary_PC
- Ian_Android
- Bill_iPhone
- Mary_iPhone
Una vez que haya nombrado a todos, presione Ctrl + O para guardar el archivo, seguido de Ctrl + X para salir.
Estamos casi listos para la acción, pero primero la gente de Windows debe tomar un pequeño desvío. WSL de forma general no establece los permisos de usuario correctos para la carpeta Algo, lo que molesta a Ansible (la herramienta en la que Algo se basa para poner en práctica un servidor).
En WSL, escriba lo siguiente para volver a su directorio de inicio:
cd
Después, escriba lo siguiente:
chmod 755 -R ~/algo-master
Para volver a la carpeta Algo, escriba:
cd ~/algo-master
Ejecutando Algo
Y ahora es el momento de la verdad.
Desde el algo-master
carpeta, escriba lo siguiente en la ventana de terminal:
./algo
La configuración de Algo debería comenzar a ejecutarse. Sabrá que está funcionando cuando le pregunte qué proveedor de nube le gustaría usar. En nuestro caso, seleccionamos el número (1) para DigitalOcean.
Si Algo falla, podría deberse a una serie de razones que no podemos predecir aquí. Si el error dice que su directorio es «configurable por escritura mundial», siga las instrucciones anteriores para cambiar los permisos.
Si obtiene un error distinto, consulte la página de solución de problemas en el repositorio del proyecto Algo en GitHub. Además puede copiar el mensaje de error y pegarlo en el buscador de Google para buscarlo. Debería hallar una publicación en el foro que le ayude, dado que es poco probable que sea la primera persona en recibir ese error.
A continuación, se le pedirá el token de acceso que copió previamente de su cuenta de DigitalOcean. Cópialo y pégalo en la terminal. No verá nada debido a que Bash no muestra caracteres para las entradas de contraseña y frase de seguridad. A pesar de esto, siempre que presione pegar y posteriormente presione Entrar, debería estar bien.
Si falla, es factible que haya estropeado la pasta, lo que todos hacen en Bash. Simplemente escriba lo siguiente para volver a intentarlo:
./algo
Cuando Algo se esté ejecutando, responda las preguntas que le haga. Todos estos son bastante sencillos, como el nombre que desea darle a su servidor (utilizar “algo” en el nombre es una buena idea).
A continuación, le preguntará si desea habilitar «Connect on Demand» para dispositivos Mac e iOS. Si no está usando ninguno de esos dispositivos, escriba N para no. Además le preguntará si desea conservar las claves PKI para agregar más usuarios más adelante; de forma general, además escribirás N aquí.
¡Eso es todo! Algo ahora tardará entre 15 y 30 minutos en poner su servidor en funcionamiento.
Usando Algo
Cuando Algo finaliza su configuración, el terminal vuelve a la línea de comandos, lo que significa que la VPN está lista para funcionar. Del mismo modo que muchos servicios comerciales, Algo utiliza el protocolo VPN WireGuard, que es la novedad más actual en el mundo de las VPN. Esto se debe a que ofrece buena seguridad, mayores velocidades y es más fácil trabajar con él.
Como ejemplo de qué hacer a continuación, activaremos Algo en Windows. Para configurar otros dispositivos, puede consultar el Repositorio de Algo en GitHub.
Primero, instalaremos el cliente de escritorio genérico de Windows desde el Sitio de WireGuard. A continuación, tenemos que alimentar al programa con nuestro archivo de configuración para la PC. Los archivos de configuración se almacenan en lo profundo de la carpeta algo-master en: ~/algo-master/configs/[VPN server IP address]/wireguard/
.
Hay dos tipos de archivos para configurar dispositivos cliente VPN: .CONF y .PNG. Los últimos son códigos QR para dispositivos como teléfonos, que pueden escanear códigos QR. Los archivos .CONF (configuración) son archivos de texto para los clientes WireGuard de escritorio.
En Mac y Ubuntu, no debería ser difícil hallar el algo-master
carpeta fuera de la línea de comando. En Mac, algo-master
está en la carpeta Inicio; simplemente use Finder> Ir> Inicio para llegar allí. En Ubuntu, puede abrir Nautilus y estará en la carpeta Inicio.
En Windows, a pesar de esto, WSL es independiente del resto del sistema operativo. Por esta razón, es más fácil copiar los archivos con la línea de comando.
Usando nuestro ejemplo anterior, digamos que queremos que el archivo de configuración “Mary-PC.conf” se use en una PC con Windows 10. El comando se vería así:
cp ~/algo-master/configs/[VPN server IP address]/wireguard/Mary-PC.conf /mnt/c/Users/[your Windows user account name]/Desktop/
Tenga en cuenta el espacio entre Mary-PC.conf
y /mnt/
; así es como Bash sabe dónde se encuentra el archivo que se va a copiar y hacia dónde se dirige. El caso además importa, por lo tanto asegúrese de escribir mayúsculas donde se especifique.
Es natural en Windows querer poner en mayúscula la C en la unidad «C: «, pero en Bash no es así. Al mismo tiempo, no olvide reemplazar los bits entre paréntesis con la información real de su PC.
A modo de ejemplo, si su carpeta de usuario está en la unidad «D: «, no en «C: «, reemplace /mnt/c/
con /mnt/d/
.
Una vez que se haya copiado el archivo, abra el cliente WireGuard para Windows. Haga clic en «Importar túneles desde archivo» y posteriormente seleccione su archivo de configuración en el escritorio. Una vez realizado esto, haga clic en «Activar».
¡En solo unos segundos, estará conectado a su propia VPN!