Tabla de contenidos
Empresas de todo el mundo venden servicios VPN para proteger su actividad en línea, pero ¿puede realmente confiar en un proveedor de VPN? Si lo desea, puede crear su propia red privada virtual con el software Algo de código abierto y el proveedor de alojamiento en la nube de su elección.
VPN y confianza
Independientemente de lo que diga o presuma la política de privacidad sobre las auditorías de seguridad en el blog de una empresa, nada impide que una VPN controle todo lo que hace en línea. Al final, elegir 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 al proyecto de código abierto Algo de la compañía de seguridad Trail of 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 usar Algo para configurar y derribar servidores VPN cuando los necesite y ahorrar dinero en el proceso.
Para configurar Algo, debe usar 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 porque estamos explicando todo lo que podemos. Una vez que haya creado una VPN con Algo varias veces, no debería llevar mucho tiempo. Además, 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 que el código de Algo es público en GitHub para que cualquiera lo vea. Además, muchos expertos en seguridad están interesados en el proyecto Algo, que hace que las fechorías sean menos probables.
Lo que Algo puede (y no puede) hacer
Una VPN es una buena forma 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 bloquea a cualquier actor malintencionado que pueda estar en la misma red Wi-Fi local. Una VPN también 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, ya que la actividad se puede rastrear más fácilmente hasta usted.
Además, si desea ver Netflix a través de su VPN, tendrá que buscar en otro lado; Algo no funciona con él. Sin embargo, hay muchos servicios comerciales que admiten Netflix.
Requisitos previos para Algo
Para poner en funcionamiento un servidor Algo VPN, necesita un shell Unix Bash. En un sistema Mac o Linux, puede usar su programa Terminal, pero en Windows, tendrá que activar el Subsistema para Linux. Aquí se explica cómo instalar y usar el shell de Linux Bash en Windows 10 .
También necesitará una cuenta en un proveedor de alojamiento de servidores en la nube. Algo admite todo lo siguiente:
- DigitalOcean
- Amazon Lightsail
- Amazon EC2
- Vultr
- Microsoft Azure
- Google Compute Engine
- Scaleway
- Nube de Hetzner
- También se instala en instancias de OpenStack y CloudStack.
Si nunca ha utilizado ninguno de estos servicios, le recomendamos DigitalOcean, ya que es muy fácil de usar. También es el servicio que usamos en este tutorial. El proceso será un poco diferente si usa un proveedor diferente.
Cuando su cuenta de DigitalOcean esté lista, inicie sesión y luego, 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 permite acceder a los recursos de la cuenta sin un nombre de usuario y contraseña. Deberá nombrar el nuevo token. Generalmente, 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.
Configurar 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 redactar este documento, Algo requiere Python 3.6 o posterior. Escriba lo siguiente en su programa de terminal:
python3 --versión
Si recibe una respuesta como Python 3.6.9
, está listo para comenzar; si no, tendrá que instalar Python 3.
Para instalar Python 3 en Mac, puede usar el administrador de paquetes Homebrew . Cuando Homebrew esté listo para funcionar, escriba el siguiente comando en una ventana de Terminal:
brew instalar python3
Si está utilizando Ubuntu Linux o WSL en Windows, deberían tener Python 3 de forma predeterminada. De lo contrario, los métodos de instalación varían según su versión de Linux. Busque en línea «instalar Python 3 en [inserte su versión de Linux aquí]» 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 relacionadas, pero estas instrucciones también funcionarán para otras versiones de Linux con algunas modificaciones menores. Si está utilizando CentOS, por ejemplo, sustituirá las instrucciones apt
con dnf
.
A continuación, necesitamos descargar Algo con el wget
comando. Las Mac no se han wget
instalado de forma predeterminada, por lo que para obtenerlo a través de Homebrew, escriba lo siguiente:
brew instalar wget
Ahora, descarguemos los archivos de Algo:
wget https://github.com/trailofbits/algo/archive/master.zip
Después de que wget
termine, habrá un archivo comprimido llamado «master.zip» en el directorio de inicio de su terminal; comprobemos eso con ls
.
Si ve «master.zip» en la lista de archivos y carpetas que aparece, está listo para comenzar. Si no es así, intente ejecutar de wget
nuevo.
Ahora, necesitamos descomprimir el archivo, entonces escribimos lo siguiente:
descomprimir master.zip
Una vez hecho esto, ls
vuelve a golpear . 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 = "$ (comando -v python3)" .env && fuente .env / bin / activar && 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 usar, Nano . El archivo de configuración de Algo tiene mucha información, pero solo nos interesa la parte que dice «usuarios». Todo lo que tiene que hacer es eliminar 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.
Por 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 generalmente 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 implementar un servidor).
En WSL, escriba lo siguiente para volver a su directorio de inicio:
discos compactos
Luego, 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 la algo-master
carpeta, escriba lo siguiente en la ventana de la 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 ser 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 recibe un error diferente, consulte la página de solución de problemas en el repositorio del proyecto Algo en GitHub . También puede copiar el mensaje de error y pegarlo en Google para buscarlo. Debería encontrar una publicación en el foro que le ayude, ya 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ó anteriormente de su cuenta de DigitalOcean. Cópialo y pégalo en la terminal. No verá nada porque Bash no muestra caracteres para las entradas de contraseña y frase de seguridad. Sin embargo, siempre que presione pegar y luego presione Entrar, debería estar bien.
Si falla, es posible 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 (usar “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á utilizando ninguno de esos dispositivos, escriba N para no. También le preguntará si desea conservar las claves PKI para agregar más usuarios más adelante; generalmente, también escribirás N aquí.
¡Eso es! 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. Como 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 la carpeta profunda Algo-maestro 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 encontrar la algo-master
carpeta fuera de la línea de comandos. 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, sin embargo, 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 / [dirección IP del servidor VPN] /wireguard/Mary-PC.conf / mnt / c / Users / [nombre de su cuenta de usuario de Windows] / 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 también importa, así que asegúrese de escribir mayúsculas donde se especifique.
Es natural en Windows querer poner la C en mayúscula en la unidad “C: \”, pero en Bash no es así. Además, no olvide reemplazar los bits entre paréntesis con la información real de su PC.
Por ejemplo, si su carpeta de usuario está en la unidad «D: \»