Con la creciente censura de Internet por parte de los regímenes autoritarios, se bloquea un número cada vez mayor de recursos y sitios útiles de Internet. Incluyendo información técnica.
De esta forma, se hace imposible el pleno uso de Internet y se vulnera el derecho fundamental a la libertad de expresión, consagrado en declaración Universal de los Derechos Humanos.
artículo 19
Toda persona tiene derecho a la libertad de opinión y expresión; este derecho incluye la libertad de tener opiniones sin interferencia y de buscar, recibir y difundir información e ideas a través de cualquier medio y sin consideración de fronteras
En esta guía, implementaremos nuestro propio software gratuito* en 6 pasos. Servicio VPN basado en tecnología Guardia de alambre, en la infraestructura de la nube Amazon Web Services (AWS), utilizando una cuenta gratuita (por 12 meses), en una instancia (máquina virtual) administrada por Servidor Ubuntu 18.04 LTS.
He tratado de hacer que este tutorial sea lo más amigable posible para las personas que no son de TI. Lo único que se requiere es perseverancia en repetir los pasos que se describen a continuación.
Nota
AWS proporciona nivel de uso gratuito por un período de 12 meses, con un límite de 15 gigas de tráfico por mes.
Registrarse para obtener una cuenta gratuita de AWS requiere un número de teléfono real y una tarjeta de crédito Visa o Mastercard válida. Recomiendo usar tarjetas virtuales que se proporcionan de forma gratuita. Yandex o QIWI Monedero. Para verificar la validez de la tarjeta, se descuenta $ 1 durante el registro, que luego se devuelve.
1.1. Apertura de la consola de administración de AWS
Complete los datos y haga clic en el botón "Continuar"
1.3. Rellenando los datos de contacto
Complete la información de contacto.
1.4. Especificación de la información de pago.
Número de tarjeta, fecha de vencimiento y nombre del titular de la tarjeta.
1.5. Verificación de la cuenta
En esta etapa, se confirma el número de teléfono y se debita $ 1 directamente de la tarjeta de pago. Se muestra un código de 4 dígitos en la pantalla de la computadora y el teléfono especificado recibe una llamada de Amazon. Durante una llamada, debe marcar el código que se muestra en la pantalla.
1.6. Elección del plan tarifario.
Elegir - Plan básico (gratis)
1.7. Iniciar sesión en la consola de administración
1.8. Elegir la ubicación del centro de datos
1.8.1. Pruebas de velocidad
Antes de elegir un centro de datos, se recomienda probar a través de https://speedtest.net velocidad de acceso a los centros de datos más cercanos, en mi ubicación los siguientes resultados:
Singapur
París
Frankfurt
Estocolmo
Londres
El centro de datos de Londres muestra los mejores resultados en términos de velocidad. Así que lo elegí para una mayor personalización.
2. Cree una instancia de AWS
2.1 Crear una máquina virtual
2.1.1. Selección de un tipo de instancia
Por defecto esta seleccionada la instancia t2.micro que es lo que necesitamos, solo presione el botón Siguiente: Configurar los detalles de la instancia
2.1.2. Configuración de opciones de instancia
En el futuro, conectaremos una IP pública permanente a nuestra instancia, por lo que en esta etapa desactivamos la asignación automática de una IP pública y presionamos el botón Siguiente: Agregar almacenamiento
2.1.3. Conexión de almacenamiento
Especifique el tamaño del "disco duro". Para nuestros propósitos, 16 gigabytes son suficientes y presionamos el botón Siguiente: Agregar etiquetas
2.1.4. Configuración de etiquetas
Si creamos varias instancias, entonces se podrían agrupar por etiquetas para facilitar la administración. En este caso, esta funcionalidad es superflua, presione inmediatamente el botón Siguiente: Configurar grupo de seguridad
2.1.5. Apertura de puertos
En este paso, configuramos el firewall abriendo los puertos requeridos. El conjunto de puertos abiertos se denomina grupo de seguridad. Debemos crear un nuevo grupo de seguridad, darle un nombre, descripción, agregar un puerto UDP (Custom UDP Rule), en el campo Rort Range, debe asignar un número de puerto del rango puertos dinámicos 49152-65535. En este caso, elegí el número de puerto 54321.
Después de completar los datos requeridos, haga clic en el botón Revisión y lanzamiento
2.1.6. Resumen de todos los ajustes
En esta página hay una descripción general de todas las configuraciones de nuestra instancia, verificamos si todas las configuraciones están en orden y presionamos el botón Más información
2.1.7. Creación de claves de acceso
Luego viene un cuadro de diálogo que ofrece crear o agregar una clave SSH existente, con la que luego nos conectaremos de forma remota a nuestra instancia. Seleccionamos la opción "Crear un nuevo par de claves" para crear una nueva clave. Dale un nombre y haz clic en el botón Descargar par de clavespara descargar las claves generadas. Guárdelos en un lugar seguro en su computadora local. Una vez descargado, haga clic en el botón. Lanzamiento de instancias
2.1.7.1. Guardar claves de acceso
Aquí se muestra el paso de guardar las claves generadas en el paso anterior. Después de que presionamos el botón Descargar par de claves, la clave se guarda como un archivo de certificado con la extensión *.pem. En este caso, le puse un nombre. wireguard-awskey.pem
2.1.8. Descripción general de los resultados de la creación de instancias
A continuación, vemos un mensaje sobre el lanzamiento exitoso de la instancia que acabamos de crear. Podemos ir a la lista de nuestras instancias haciendo clic en el botón ver instancias
2.2. Crear una dirección IP externa
2.2.1. Comenzando la creación de una IP externa
A continuación, debemos crear una dirección IP externa permanente a través de la cual nos conectaremos a nuestro servidor VPN. Para hacer esto, en el panel de navegación en el lado izquierdo de la pantalla, seleccione el elemento IP elásticas de la categoría RED Y SEGURIDAD y presione el botón Asignar nueva dirección
2.2.2. Configurar la creación de una IP externa
En el siguiente paso, debemos habilitar la opción piscinas amazónicas (habilitado por defecto), y haga clic en el botón Asignar
2.2.3. Descripción general de los resultados de la creación de una dirección IP externa
La siguiente pantalla mostrará la dirección IP externa que recibimos. Se recomienda memorizarlo, y es mejor incluso escribirlo. será útil más de una vez en el proceso de configuración y uso del servidor VPN. En esta guía, utilizo la dirección IP como ejemplo. 4.3.2.1. Una vez que haya ingresado la dirección, presione el botón Cerrar
2.2.4. Lista de direcciones IP externas
A continuación, se nos presenta una lista de nuestras direcciones IP públicas permanentes (IP elásticas).
2.2.5. Asignación de una IP externa a una instancia
En esta lista, seleccionamos la dirección IP que recibimos y presionamos el botón derecho del mouse para que aparezca un menú desplegable. En él, seleccione el elemento dirección asociadapara asignarlo a la instancia que creamos anteriormente.
2.2.6. Configuración de asignación de IP externa
En el siguiente paso, seleccione nuestra instancia de la lista desplegable y presione el botón Consejos
2.2.7. Descripción general de los resultados de asignación de IP externa
Después de eso, podemos ver que nuestra instancia y su dirección IP privada están vinculadas a nuestra dirección IP pública permanente.
Ahora podemos conectarnos a nuestra instancia recién creada desde el exterior, desde nuestra computadora a través de SSH.
3. Conéctese a una instancia de AWS
SSH es un protocolo seguro para el control remoto de dispositivos informáticos.
3.1. Conexión a través de SSH desde una computadora con Windows
Para conectarse a una computadora con Windows, primero debe descargar e instalar el programa masilla.
3.1.1. Importar clave privada para Putty
3.1.1.1. Después de instalar Putty, debe ejecutar la utilidad PuTTYgen que viene con él para importar la clave del certificado en formato PEM, en un formato adecuado para usar en Putty. Para hacer esto, seleccione el elemento en el menú superior Conversiones->Importar clave
3.1.1.2. Elegir una clave de AWS en formato PEM
A continuación, seleccione la clave que previamente guardamos en el paso 2.1.7.1, en nuestro caso su nombre wireguard-awskey.pem
3.1.1.3. Configuración de opciones de importación clave
En este paso, debemos especificar un comentario para esta clave (descripción) y establecer una contraseña y confirmación por seguridad. Se solicitará cada vez que se conecte. Por lo tanto, protegemos la clave con una contraseña del uso inapropiado. No es necesario establecer una contraseña, pero es menos seguro si la clave cae en manos equivocadas. Después de presionar el botón Guardar clave privada
3.1.1.4. Guardar una clave importada
Se abre un cuadro de diálogo para guardar el archivo y guardamos nuestra clave privada como un archivo con la extensión .ppkadecuado para su uso en el programa masilla.
Especifique el nombre de la clave (en nuestro caso wireguard-awskey.ppk) y presione el botón Conservar.
3.1.2. Crear y configurar una conexión en Putty
3.1.2.1. Crear una conexión
Abra el programa Putty, seleccione una categoría Sesión (está abierto por defecto) y en el campo Nombre de host ingrese la dirección IP pública de nuestro servidor, que recibimos en el paso 2.2.3. en campo Sesión guardada ingrese un nombre arbitrario para nuestra conexión (en mi caso wireguard-aws-londres), y luego presione el botón Guardar para guardar los cambios que hicimos.
3.1.2.2. Configurar el inicio de sesión automático del usuario
Más en categoría Conexión, elige una subcategoría Datos y en el campo Nombre de usuario de inicio de sesión automático introduzca su nombre de usuario Ubuntu es el usuario estándar de la instancia en AWS con Ubuntu.
3.1.2.3. Elegir una clave privada para conectarse a través de SSH
Luego ve a la subcategoría Conexión/SSH/Autenticación y junto al campo Archivo de clave privada para autenticación haga clic en el botón Vistazo… para seleccionar un archivo con un certificado de clave.
3.1.2.4. Apertura de una clave importada
Especifique la clave que importamos anteriormente en el paso 3.1.1.4, en nuestro caso es un archivo wireguard-awskey.ppk, y presione el botón abierto.
3.1.2.5. Guardar la configuración e iniciar una conexión
Volviendo a la página de categoría Sesión presione el botón de nuevo Guardar, para guardar los cambios que hicimos anteriormente en los pasos anteriores (3.1.2.2 - 3.1.2.4). Y luego presionamos el botón Abierto para abrir la conexión SSH remota que creamos y configuramos.
3.1.2.7. Configuración de confianza entre hosts
En el siguiente paso, la primera vez que intentamos conectarnos, nos da una advertencia, no tenemos confianza configurada entre las dos computadoras, y pregunta si confiar en la computadora remota. Presionaremos el botón Sí, agregándolo así a la lista de hosts confiables.
3.1.2.8. Introducción de una contraseña para acceder a la clave
Después de eso, se abre una ventana de terminal, donde se le solicita la contraseña para la clave, si la configuró anteriormente en el paso 3.1.1.3. Al ingresar una contraseña, no ocurre ninguna acción en la pantalla. Si te equivocas, puedes usar la tecla Retroceso.
3.1.2.9. Mensaje de bienvenida en conexión exitosa
Después de ingresar con éxito la contraseña, se nos muestra un texto de bienvenida en la terminal, que nos indica que el sistema remoto está listo para ejecutar nuestros comandos.
4. Configuración del servidor Wireguard
Las instrucciones más actualizadas para instalar y usar Wireguard utilizando los scripts que se describen a continuación se pueden encontrar en el repositorio: https://github.com/isystem-io/wireguard-aws
4.1. Instalación de WireGuard
En la terminal, ingrese los siguientes comandos (puede copiar al portapapeles y pegar en la terminal presionando el botón derecho del mouse):
4.1.1. Clonar un repositorio
Clonar el repositorio con los scripts de instalación de Wireguard
Ejecute como administrador (usuario raíz) el script de instalación de Wireguard
sudo ./initial.sh
El proceso de instalación le pedirá ciertos datos necesarios para configurar Wireguard
4.1.3.1. Entrada de punto de conexión
Ingrese la dirección IP externa y abra el puerto del servidor Wireguard. Obtuvimos la dirección IP externa del servidor en el paso 2.2.3 y abrimos el puerto en el paso 2.1.5. Los indicamos juntos, separándolos con dos puntos, por ejemplo 4.3.2.1:54321y luego presione la tecla Participar Salida de muestra:
Enter the endpoint (external ip and port) in format [ipv4:port] (e.g. 4.3.2.1:54321): 4.3.2.1:54321
4.1.3.2. Introducción de la dirección IP interna
Ingrese la dirección IP del servidor Wireguard en la subred VPN segura, si no sabe cuál es, simplemente presione la tecla Intro para establecer el valor predeterminado (10.50.0.1) Salida de muestra:
Enter the server address in the VPN subnet (CIDR format) ([ENTER] set to default: 10.50.0.1):
4.1.3.3. Especificación de un servidor DNS
Ingrese la dirección IP del servidor DNS, o simplemente presione la tecla Intro para establecer el valor predeterminado 1.1.1.1 (DNS público de Cloudflare) Salida de muestra:
Enter the ip address of the server DNS (CIDR format) ([ENTER] set to default: 1.1.1.1):
4.1.3.4. Especificación de la interfaz WAN
A continuación, debe ingresar el nombre de la interfaz de red externa que escuchará en la interfaz de red interna de VPN. Simplemente presione Entrar para establecer el valor predeterminado para AWS (eth0) Salida de muestra:
Enter the name of the WAN network interface ([ENTER] set to default: eth0):
4.1.3.5. Especificando el nombre del cliente
Introduzca el nombre del usuario de VPN. El hecho es que el servidor Wireguard VPN no podrá iniciarse hasta que se haya agregado al menos un cliente. En este caso, ingresé el nombre Alex@mobile Salida de muestra:
Enter VPN user name: Alex@mobile
Después de eso, se debe mostrar en la pantalla un código QR con la configuración del cliente recién agregado, el cual se debe leer usando el cliente móvil Wireguard en Android o iOS para configurarlo. Y también debajo del código QR, se mostrará el texto del archivo de configuración en caso de configuración manual de clientes. Cómo hacer esto se discutirá a continuación.
4.2. Agregar un nuevo usuario de VPN
Para agregar un nuevo usuario, debe ejecutar el script en la terminal add-client.sh
sudo ./add-client.sh
El script pide un nombre de usuario: Salida de muestra:
Enter VPN user name:
Además, el nombre de los usuarios se puede pasar como un parámetro de secuencia de comandos (en este caso Alex@mobile):
sudo ./add-client.sh Alex@mobile
Como resultado de la ejecución del script, en el directorio con el nombre del cliente a lo largo de la ruta /etc/wireguard/clients/{ИмяКлиента} se creará el archivo de configuración del cliente /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.confy la pantalla del terminal mostrará un código QR para configurar clientes móviles y el contenido del archivo de configuración.
4.2.1. Archivo de configuración de usuario
Puede mostrar el contenido del archivo .conf en la pantalla, para la configuración manual del cliente, usando el comando cat
Descripción del archivo de configuración del cliente:
[Interface]
PrivateKey = Приватный ключ клиента
Address = IP адрес клиента
DNS = ДНС используемый клиентом
[Peer]
PublicKey = Публичный ключ сервера
PresharedKey = Общи ключ сервера и клиента
AllowedIPs = Разрешенные адреса для подключения (все - 0.0.0.0/0, ::/0)
Endpoint = IP адрес и порт для подключения
4.2.2. Código QR para la configuración del cliente
Puede mostrar un código QR de configuración para un cliente creado previamente en la pantalla del terminal usando el comando qrencode -t ansiutf8 (en este ejemplo, se utiliza el cliente llamado Alex@mobile):
Después de eso, debe importar la configuración leyendo el código QR con la configuración del cliente (consulte el párrafo 4.2.2) y asígnele un nombre:
Después de importar con éxito la configuración, puede habilitar el túnel VPN. Una conexión exitosa se indicará mediante un alijo de claves en la bandeja del sistema Android
5.2. Configuración del cliente de Windows
Primero necesitas descargar e instalar el programa. TunSafe para Windows es el cliente de Wireguard para Windows.
5.2.1. Creación de un archivo de configuración de importación
Haga clic derecho para crear un archivo de texto en el escritorio.
5.2.2. Copie el contenido del archivo de configuración del servidor
Luego regresamos a la terminal Putty y mostramos el contenido del archivo de configuración del usuario deseado, como se describe en el paso 4.2.1.
A continuación, haga clic con el botón derecho en el texto de configuración en el terminal Putty; una vez completada la selección, se copiará automáticamente en el portapapeles.
5.2.3. Copiar la configuración a un archivo de configuración local
En este campo, volvemos al archivo de texto que creamos anteriormente en el escritorio y pegamos el texto de configuración desde el portapapeles.
5.2.4. Guardar un archivo de configuración local
Guardar el archivo con extensión .conf (en este caso llamado london.conf)
5.2.5. Importación de un archivo de configuración local
A continuación, debe importar el archivo de configuración al programa TunSafe.
5.2.6. Configuración de una conexión VPN
Seleccione este archivo de configuración y conéctese haciendo clic en el botón Contacto.
6. Comprobando si la conexión fue exitosa
Para verificar el éxito de la conexión a través del túnel VPN, debe abrir un navegador e ir al sitio https://2ip.ua/ru/
La dirección IP mostrada debe coincidir con la que recibimos en el paso 2.2.3.
Si es así, entonces el túnel VPN está funcionando correctamente.
Desde la terminal de Linux, puede verificar su dirección IP escribiendo:
curl http://zx2c4.com/ip
O simplemente puedes ir a pornhub si estás en Kazajstán.