Configuración de OpenVPN en Ubuntu 18.04 Bionic Beaver Linux
- 2466
- 523
- Eduardo Tapia
Objetivo
Aprenda a instalar y configurar el servidor OpenVPN en Ubuntu 18.04 Beaver Bionic
Requisitos
- Permisos de raíz
Convenciones
- # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz
directamente como usuario raíz o mediante el uso desudo
dominio - ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado
Otras versiones de este tutorial
Ubuntu 20.04 (fosa focal)
Introducción
La tecnología de red privada virtual hace posible acceder a redes privadas seguras mediante el uso de redes menos seguras como Internet. Las VPN generalmente se usan para conectar ramas físicamente remotas de una organización, lo que hace que parecieran parte de la misma LAN (por ejemplo, dos oficinas en diferentes ciudades). El tráfico entre los lados de la conexión está encriptado utilizando túneles, que protege los datos transmitidos y la información de conexión ellos mismos. Para las mismas características, las VPN a menudo se usan para eludir las restricciones gubernamentales y anonimizar el tráfico de Internet.
En este tutorial veremos cómo crear un servidor de red privado virtual que use OpenVPN, el software VPN de código abierto en Ubuntu 18.04 Beaver Bionic.
Paso 1 - Instalación
Instalación de OpenVPN en Ubuntu 18.04 es realmente fácil: el software está disponible en los repositorios predeterminados. También necesitamos instalar el fácil
Paquete, que nos ayudará en la creación de los certificados y claves necesarios:
$ sudo apt-get update && sudo apt-get install OpenVPN Easy-RSA
Pocos segundos y el software se instalará en nuestra máquina, listo para ser configurado.
Paso 2 - Configuración de infraestructura del servidor
En esta sección generaremos los certificados y claves necesarios: primero crearemos nuestra personalización California
(autoridad de certificado), luego generaremos el servidor certificado/par de claves
, el Diffie-Hellman
parámetros y el TLS-AUTH CLAVE
.
Comencemos generando el directorio que contendrá los scripts que hará el trabajo pesado para nosotros. Corremos el maquinar
comando, eso es parte del fácil
paquete, proporcionando el nombre del directorio que queremos crear. También queremos ingresar al directorio tan pronto como se cree:
$ Make-Cadir Certificados y certificados CD
En este caso llamé al directorio certificados
. Este será nuestro directorio de trabajo para el resto del tutorial, por lo tanto, todos los comandos mencionados deben considerarse como lanzados dentro de él.
Paso 2.1 - Configuración de variables
Como lo primero, debemos ajustar las variables que se utilizarán para establecer los valores utilizados durante la generación de la autoridad de certificado y el certificado/clave. Las variables se definen dentro del vars
archivo:
Exportar key_config = "$ Easy_RSA/Whyopensslcnf $ Easy_rsa" Exportar key_country = "US" Exportar key_province = "CA" Exportar key_city = "Sanfrancisco" Exportar Key_org = "Fort-Funston" Export Key_Email = "[email protected] "export key_ou =" myorganizationalunit "
Una variable muy importante es Key_config
, que, por defecto, se establece llamando a un pequeño script de envoltura que debería recuperar la configuración SSL correcta. Sin embargo, si se usa de esta manera, genera un error, porque el script no recupera la configuración. Para evitar esto, especificamos el archivo de configuración directamente:
Exportar key_config = "$ Easy_RSA/OpenSSL-1.0.0.CNF "
Los valores para las otras variables deben cambiarse y adaptarse a sus necesidades específicas. Después de que terminamos de editar el archivo, debemos "obtenerlo", para que las variables se conviertan en parte de nuestro entorno de tiempo de ejecución:
$ Source Vars
Paso 2.2 - Generación de la CA
Podemos continuar y generar nuestra CA (autoridad de certificado). Ejecutando el Limpiar todo
y construye
guiones en orden. La generación de CA comenzará, utilizando los valores de las variables que definimos en el vars
Archivo como predeterminado para los campos correspondientes:
ps ./Limpiar todo && ./Build-Ca
Paso 2.3 - Certificado y generación de claves
El siguiente paso es la generación del certificado y la clave del servidor. Es solo una cuestión de ejecutar el script de servidor de llave de construcción que le da el nombre que queremos usar para el certificado y la clave como parámetro. En este caso, usamos "servidor" porque es el nombre predeterminado utilizado en el archivo de configuración de VPN, como veremos más adelante en el tutorial:
ps ./servidor Build-Key-Server
Sigue las instrucciones en la pantalla. El Desafío Contraseña
y nombre de empresa
Los campos son opcionales.
Paso 2.4 - Generación de parámetros Diffie -Hellman
El siguiente paso es crear los parámetros Diffie-Hellman. Esos parámetros se utilizan para intercambiar claves criptográficas utilizando un canal público e inseguro. Usamos el construcción-dh
guion:
ps ./Build-DH
El script tomará algún tiempo generar los parámetros, dependiendo de la máquina en la que estamos ejecutando, sea paciente!
Paso 2.5 - Genere una clave aleatoria para ser utilizada como secreto compartido
Para fortalecer nuestra seguridad, además de usar un certificado, generaremos y usaremos una clave para usar un secreto compartido. El servidor y cada cliente necesitarán una copia de esta clave:
$ OpenVPN - -Genkey -Keys/TA.llave
Paso 2.6 - Copiar los archivos generados
La autoridad certificada (CA.CRT), certificado (servidor.CRT), clave (servidor.Clave), parámetros Diffie-Hellman (DH2048.PEM) y TLS-Auth Key (TA.archivos clave), deberían haberse generado dentro del llaves
directorio. Ahora es el momento de copiarlos para /etc/openvpn
:
$ sudo CP Keys/servidor.CRT, servidor.Clave, CA.CRT, DH2048.PEM, TA.clave /etc /openvpn
Paso 3 - Configuración de OpenVPN
Podemos continuar con la configuración del servicio OpenVPN. Se puede encontrar una configuración de muestra (comprimida) en /usr/share/doc/openvpn/ejemplos/muestra-config-files/servidor.confusión.GZ
: Solo necesitamos extraerlo en el directorio /etc /openVPN:
$ GZIP -D -C/USR/Share/Doc/OpenVPN/Ejemplos/Sample -Config -Files/Server.confusión.GZ | sudo tee/etc/openvpn/servidor.conf> /dev /null
Con el comando anterior, descomprimimos el archivo original, enviando su salida a stdout y redirigiéndolo a través del /etc/openvpn/servidor.confusión
archivo. Verifique que los valores predeterminados en el archivo de configuración correspondan a los que generamos:
CA CA.servidor CRT CERT.servidor de teclas CRT.Clave # Este archivo debe mantenerse en secreto DH DH2048.pem
Paso 4: configure el firewall y permita el reenvío de IP
Casi terminamos de configurar nuestro servidor VPN: ahora debemos configurar el firewall, para permitir el tráfico entrante desde el puerto 1194/UDP
(puerto predeterminado y protocolo):
$ sudo UFW Permitir OpenVpn
Muy importante: por defecto, solo el tráfico entre el cliente y el servidor pasa sobre el túnel VPN, esto excluye el tráfico de Internet. Para cambiar este comportamiento, primero tenemos que desencadenar la opción en línea 192
del archivo de configuración del servidor (/etc/openvpn/servidor.confusión
)
Push "Redirect-Gateway Def1 bypass-DHCP"
A continuación, necesitamos usar una regla iptable para no hacer el cliente VPN a través de Internet. Observe que especifiqué el eth0
interfaz pero debe adaptar la regla a la interfaz en uso en su máquina:
$ sudo iptables -t nat -a postruting -s 10.8.0.0/24 -O eth0 -j mascarada
Establecer de esta manera, sin embargo, la regla no persistirá un reinicio. Para hacerlo persistente, debemos agregarlo al /etc/UFW/antes.normas
archivo. Este archivo contiene reglas aplicadas por UFW antes de las definidas desde la línea de comandos. Agregue la regla como la primera en el archivo:
*nat: posterior a aceptar [0: 0] -A POSTROUTING -S 10.8.0.0/8 -O ETH0 -J MASQUERADE COMISM
Ahora debemos habilitar el reenvío de paquetes. Primero necesitamos editar el /etc /sysctl.Archivo de confile e incomment la línea 28
:
# Descomment La siguiente línea para habilitar el reenvío de paquetes para la red IPv4.IPv4.ip_forward = 1
En este punto debemos volver a cargar la configuración:
$ sudo sysctl -p /etc /sysctl.confusión
Todavía necesitamos permitir el reenvío de los paquetes a través del firewall de UFW. Abierto /etc/default/UFW
y cambio Default_forward_policy
de GOTA
a ACEPTAR
:
# Establezca la política de reenvío predeterminada para aceptar, soltar o rechazar. Tenga en cuenta que # si cambia esto, lo más probable es que desee ajustar sus reglas predeterminadas_forward_policy = "aceptar"
Finalmente, recargar el firewall:
$ sudo ufw recargar
Paso 5 - Inicie el servicio
Ahora usaremos SystemCTL para iniciar el servidor, pasando la variable que contiene el nombre de nuestro archivo de configuración a la unidad de servicio. Al usar Systemd, podemos hacer esto prefijando el valor con el @
símbolo. Por ejemplo:
$ sudo systemctl iniciar openvpn@servidor
En este punto, el servidor debe estar en funcionamiento. Verificarlo ejecutando
$ sudo systemctl is-active openvpn@servidor
El comando debe devolver "activo".
Paso 6 - Configuración del cliente
Para cada cliente que queremos usar, debemos generar un par certificado/clave, al igual que lo hicimos anteriormente para el servidor:
$ fuente vars && ./Cliente de llave de construcción
Ahora tenemos dos opciones: podemos copiar los archivos necesarios a nuestro cliente, o podemos generar un .ovpn
archivo, en el que se incrusta el contenido de esos archivos. Nos concentraremos en la segunda opción.
Al igual que hicimos el lado del servidor, tomaremos una configuración de muestra como punto de partida. Creemos un directorio dedicado y copiemos la plantilla:
$ mkdir clientes && cp/usr/share/doc/openvpn/ejemplos/sample-config-files/cliente.Clientes/cliente.ovpn
Siga las secciones muy bien comentadas del archivo y adapte las opciones a las definidas en la configuración del servidor (en nuestro caso ya está hecho). Establezca la IP y el puerto del servidor modificando la configuración (línea 42):
remoto my-server-1 1194
Donde "my-server" debe ser reemplazado por la IP del servidor y el puerto debe cambiarse si no usa el predeterminado. A continuación, descompone las siguientes líneas (61,62):
# Privilegios de rebaño después de la inicialización (solo no windows); usuario nadie; grupo nogroup
Ahora, sustituiremos las referencias a CA, Certificado, Clave, Parámetros DH y TLS-AUTH Clave con el contenido real de los archivos: de esta manera crearemos una configuración incrustada y fácil de exportar. Referencias de primer comentario (líneas 88-90 y 108)
#ca ca.Cliente CRT #cert.Cliente CRT #Key.Clave #TLS-Auth TA.Clave 1
A continuación, copie el contenido de los archivos mencionados, entre las etiquetas apropiadas. El contenido de la autoridad de certificado debe incluirse entre las etiquetas, el contenido del archivo de certificado dentro y la clave entre . Justo como ejemplo, considere la CA:
# Aquí va el contenido de la CA.archivo CRT
Para la tecla TLS-Auth, en cambio lo haríamos:
Dirección clave 1 # El contenido del TA.archivo de clave
Finalmente, solo importe el archivo en la aplicación de su cliente y debería estar listo para ir.
Ejemplo de conexión de Android
Para conectarse a nuestro servidor OpenVPN desde Android, utilizaremos la aplicación OpenVPN oficial: OpenVPN Connect. Una vez instalado y lanzado, aparecerá el siguiente menú:
Menú de aplicaciones de Android OpenVPN
Toque, el último artículo, Perfil de ovpn
Desde el selector de archivos, navegue hasta el lugar donde almacenó el .archivo ovpn y seleccionarlo, luego tocar "importar" en la esquina superior derecha. El perfil debería haberse importado correctamente:
Importación de la aplicación Android OpenVPN
Ahora, igual que antes, toque Agregar y en la siguiente pantalla Active la conexión:
Aplicación de Android OpenVPN conectada
Éxito!
Tutoriales de Linux relacionados:
- Cosas para instalar en Ubuntu 20.04
- Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
- Ubuntu 20.04 trucos y cosas que quizás no sepas
- Cómo configurar un servidor OpenVPN en Ubuntu 20.04
- Ubuntu básico 22.04 Configuración de conexión de cliente/servidor OpenVPN
- Ubuntu 20.04 Guía
- Ubuntu 20.04 Hadoop
- Los 8 mejores entornos de escritorio de Ubuntu (20.04 fosa focal ..
- Lista e instalación de clientes FTP en Ubuntu 20.04 Linux ..
- Gerentes de red de GUI de Linux
- « Cómo personalizar el panel de muelle en Ubuntu 18.04 Bionic Beaver Linux
- Cómo instalar Kylin Desktop en Ubuntu 18.04 Bionic Beaver Linux »