GNU/Linux >> Tutoriales Linux >  >> Panels >> OpenVPN

Configuración de un servidor OpenVPN con Ubiquiti EdgeRouter (EdgeOS) y Viscosity

Las redes privadas virtuales (VPN) se pueden utilizar para una serie de aplicaciones muy útiles. Puede conectarse de forma segura a cualquier punto de acceso WiFi público. Puede superar las restricciones de bloqueo geográfico en sus sitios web favoritos. E incluso puede conectarse a la red de su hogar u oficina desde cualquier parte del mundo, como si estuviera sentado en su escritorio. Esta guía lo guiará a través del proceso de configurar su propio servidor OpenVPN y conectarse a él con su copia de Viscosity.

Ejecutar su propio servidor OpenVPN le permitirá encriptar todo lo que hace en Internet, para que pueda realizar sus operaciones bancarias en línea de manera segura en el WiFi gratuito de su café favorito. Todo lo que envíe a través de la conexión VPN se cifrará desde su dispositivo hasta que llegue a su servidor OpenVPN en casa. La configuración de su servidor OpenVPN para acceder a la red de su hogar u oficina le brinda acceso completo a todos sus archivos en su red.

Esta guía lo guiará a través de los pasos necesarios para configurar un servidor OpenVPN en Ubiquiti EdgeRouter (EdgeOS) que le permite acceder de manera segura a la red de su hogar/oficina desde una ubicación remota y, opcionalmente, enviar todo el tráfico de su red a través de él para que pueda acceder. Internet de forma segura también. Esta guía se escribió con un Ubiquiti EdgeRouter Lite, pero debería funcionar con cualquier dispositivo Ubiquiti que ejecute EdgeOS v1.9 o posterior.

Esta guía no tratará ningún problema relacionado con la configuración de su enrutador. Es probable que un enrutador que ejecuta EdgeOS actúe como un enrutador en sí mismo, por lo que supondremos que el Ubiquiti EdgeRouter está conectado directamente a Internet con su propia dirección IP.

Preparación

Para esta guía, asumimos:

  • Tiene un Ubiquiti EdgeRouter ya funcional que ejecuta EdgeOS (también conocido como "EdgeMax Software") v1.9 o posterior.
  • Su enrutador se ha configurado con al menos una interfaz WAN y una LAN
  • Está conectado con su Ubiquiti EdgeRouter a través de una conexión LAN.
  • Solo se ha ejecutado el asistente de configuración inicial para configurar su enrutador con una interfaz WAN y LAN.
  • Ya tiene una copia de Viscosity instalada en su dispositivo cliente

Puede encontrar más información sobre los productos Ubiquiti EdgeRouter y EdgeOS en https://www.ubnt.com/broadband/#edgemax. Las actualizaciones de productos para su enrutador se pueden encontrar en https://www.ubnt.com/download/. Si desea configurar un servidor OpenVPN en un sistema operativo diferente, consulte nuestras otras guías.

Si aún no tiene una copia de Viscosity instalada en su cliente, consulte esta guía de configuración para instalar Viscosity (Mac | Windows).

Soporte

Lamentablemente, no podemos brindar asistencia directa para configurar su propio servidor OpenVPN. Brindamos esta guía como cortesía para ayudarlo a comenzar y aprovechar al máximo su copia de Viscosity. Hemos probado minuciosamente los pasos de esta guía para asegurarnos de que, si sigue las instrucciones que se detallan a continuación, debería estar bien encaminado para disfrutar de los beneficios de ejecutar su propio servidor OpenVPN.

Para obtener más información o ayuda con su Edgerouter, consulte los foros de la comunidad en https://community.ubnt.com/t5/EdgeRou.../EdgeMAX

Cómo empezar

Asumiremos que ya ha configurado sus interfaces de red como tales:

  • 'Internet':eth0 o pppoe0 conectado a Internet
  • 'Local':eth1 conectado a su red doméstica local

Generando Certificados y Claves

El siguiente paso es generar sus configuraciones para el servidor y sus clientes, así como los certificados que las acompañan. Puede hacerlo fácilmente siguiendo la Guía de creación de certificados y claves. Genere todo en su PC o Mac y luego tome nota de la ruta a su servidor carpeta que se crea, usaremos los archivos aquí más adelante.

Si usa el servidor DNS predeterminado (10.8.0.1), deberá configurar un servidor DNS usted mismo; las instrucciones se encuentran al final de este artículo. Recomendamos en su lugar usar un servidor DNS existente, un servidor DNS disponible públicamente como el de Google (8.8.8.8 y 8.8.4.4) es el más fácil.

Ahora necesitamos copiar los siguientes archivos a /config/auth/ directorio en su Edgerouter que estará en el servidor carpeta que openvpn-generate acaba de crear, recomendamos usar SCP. Si no está familiarizado con SCP, tenemos ayuda sobre cómo transferir archivos con SCP en nuestra Guía de introducción.

  • ca.crt
  • servidor.crt
  • servidor.clave
  • dh.pem

Si está utilizando SCP desde la línea de comandos, un comando de ejemplo sería
scp path/to/server/ca.crt [email protected]:/config/auth/

Configuración del servidor OpenVPN

En el momento de escribir este artículo, EdgeOS no incluye una interfaz GUI para configurar un servidor OpenVPN como lo hace con otros protocolos VPN. Sin embargo, afortunadamente, todas las herramientas están disponibles en el enrutador para poder configurar fácilmente un servidor OpenVPN a través de la línea de comandos.

Puede acceder a la interfaz de línea de comandos de su enrutador de varias maneras. A los efectos de esta guía, utilizaremos la interfaz de línea de comandos incluida en el portal web. Para acceder a esto, abra una página web y navegue hasta la dirección IP de su dispositivo EdgeRouter (https://192.168.1.1 por defecto). Inicie sesión, luego haga clic en el botón CLI hacia la esquina superior derecha de esta página. Esto abrirá una ventana CLI de fondo negro en su navegador. Puede iniciar sesión con los mismos detalles que utilizó para iniciar sesión en la página web de EdgeOS.

Para usuarios más avanzados, esta guía también puede seguirse accediendo al dispositivo a través de Consola o SSH.


Hay una serie de configuraciones diferentes que debemos personalizar en la configuración de nuestro servidor OpenVPN. En la terminal, ingrese al modo de configuración escribiendo:

configure

Debería ver el cambio de aviso de $ a # . Si comete un error al ingresar los siguientes comandos de configuración, puede eliminar un comando ingresado anteriormente repitiéndolo, pero reemplazando la palabra 'establecer' al principio con la palabra 'eliminar'.

Pegue lo siguiente en la ventana del terminal:

# Configure this OpenVPN instance to run as the VPN server
set interfaces openvpn vtun0 mode server

# The OpenVPN server needs to know the location of the Diffie Hellman file
#NOTE: Depending on how you generated your keys, this file name might be 'dh.pem' instead
set interfaces openvpn vtun0 tls dh-file '/config/auth/dh.pem'

# Our VPN connection will be transported over UDP
set interfaces openvpn vtun0 openvpn-option "--proto udp"

# The server needs to keep a record of client virtual IP addresses so that they
# can be reassigned if the server goes down
set interfaces openvpn vtun0 openvpn-option "--ifconfig-pool-persist ipp.txt"

# To ensure that each side of the VPN knows if the connection has been severed,
# we want to ping each side every 10 seconds. If either side fails to recieve a
# ping within 2 minutes, then it will assume the other side is down
set interfaces openvpn vtun0 openvpn-option "--keepalive 10 120"

# There can be security issues if you run the OpenVPN server as root, so we will
# downgrade the user and group
set interfaces openvpn vtun0 openvpn-option "--user nobody --group nogroup"

# To avoid attempting to access resources that may no longer be accessible on
# restart
set interfaces openvpn vtun0 openvpn-option "--persist-key --persist-tun"

# To write (and rewrite) a short summary of current VPN connections every minute
# to a file
set interfaces openvpn vtun0 openvpn-option "--status openvpn-status.log"

# The verbosity of this connection logging (displayed in the Viscosity 'Details'
#  window) can range from 0 (silent) to 9 extremely verbose. We will use the 
# default of 3
set interfaces openvpn vtun0 openvpn-option "--verb 3"

# To prevent more than 10 duplicates of the same log message in a row from
# flooding the Viscosity log
set interfaces openvpn vtun0 openvpn-option "--mute 10"

# The credential files
set interfaces openvpn vtun0 tls ca-cert-file '/config/auth/ca.crt'
set interfaces openvpn vtun0 tls cert-file '/config/auth/server.crt'
set interfaces openvpn vtun0 tls key-file '/config/auth/server.key'

# The server will use the default OpenVPN port (1194)
set interfaces openvpn vtun0 openvpn-option "--port 1194"

# We need the VPN to create a tun network interface through which we can 
# route all our traffic:
set interfaces openvpn vtun0 openvpn-option "--dev vtun0"

# The VPN requires a private IP subnet. We will use the default OpenVPN IP
# subnet
set interfaces openvpn vtun0 server subnet '10.8.0.0/24'

# We want VPN clients connected to this server to be able to access any hosts
# accessible on your home network. We are assuming that your local network
# subnet is 192.168.0.x/24. If it is something else, you will need to change the
# IP address in the command below.
set interfaces openvpn vtun0 server push-route 192.168.0.0/24

#Set the OpenVPN server to push a DNS server to clients. This can be your local DNS
#which we setup later, an external DNS of your choice, or you can omit this command
#to setup DNS on the client only.
set interfaces openvpn vtun0 server name-server 192.168.1.1

# For enhanced security, set a cipher and auth hash
set interfaces openvpn vtun0 openvpn-option "--cipher AES-256-CBC"
set interfaces openvpn vtun0 openvpn-option "--auth SHA256"

# Lastly, we want to allow hosts on the home network to be able to see VPN
# clients connected to the OpenVPN server
set interfaces openvpn vtun0 openvpn-option "--client-to-client"

#Save and end the configuration
commit
save
exit

Preste especial atención a la dirección IP en set interfaces openvpn vtun0 server push-route 192.168.0.0/24 . Asegúrese de que esta subred coincida con la subred IP de la LAN de su hogar/oficina. Si no está configurando este servidor VPN para acceder a la LAN de su hogar/oficina, puede omitir esta línea por completo.

Ahora hemos terminado con la línea de comandos, todo lo demás se puede hacer desde la GUI de EdgeOS a través de un navegador web. A continuación, inicie sesión en su ruta a través del navegador de su elección y debería ver la nueva interfaz de OpenVPN en el Tablero.


Reglas de cortafuegos

Si está utilizando la configuración de firewall predeterminada, solo necesitamos configurar un par de cosas. Primero, debemos habilitar el enmascaramiento NAT para la interfaz VPN. Para hacer esto, abra un navegador web, navegue e inicie sesión en su dispositivo EdgeRouter. A continuación, haga clic en Cortafuegos/NAT en la parte superior de la ventana, luego seleccione NAT pestaña que aparece debajo. Haga clic en Agregar regla nacional de origen y configure las siguientes opciones:

  • Descripción - OpenVPN MASQ eth0
  • Seleccione "Usar mascarada"
  • Seleccione "Todos los protocolos"
  • Interfaz de salida - eth0
  • Dirección de origen:10.8.0.0/24


Luego haga clic en Guardar. Necesitamos agregar una regla para cada interfaz con la que queremos que los clientes de OpenVPN puedan comunicarse, por lo que, como mínimo, debemos agregar una más. Haga clic en Agregar regla nacional de origen de nuevo y configure las siguientes opciones:

  • Descripción - OpenVPN MASQ eth1
  • Seleccione "Usar mascarada"
  • Seleccione "Todos los protocolos"
  • Interfaz de salida - eth1
  • Dirección de origen:10.8.0.0/24


Luego haga clic en Guardar.

A continuación, debemos configurar una regla de firewall que nos permita conectarnos al servidor OpenVPN cuando estemos fuera de la red local, como en la carretera o en una cafetería. Para ello, haga clic en Cortafuegos/NAT pestaña, luego haga clic en Políticas de firewall pestaña que aparece debajo


Debería ver un conjunto de reglas aquí llamado WAN_LOCAL . Queremos agregar una nueva regla a esto, así que haga clic en Acciones a la derecha y seleccione Editar conjunto de reglas . En la nueva ventana que aparece, haga clic en Agregar nueva regla y complete los siguientes detalles:

Ficha General:

  • Descripción:permite conexiones externas a OpenVPN
  • Acción - Aceptar
  • Protocolo - UDP


Pestaña Destino:

  • Puerto - 1194


Haz clic en Guardar y, a continuación, haga clic en Guardar conjunto de reglas . Ahora debería poder conectarse a su servidor OpenVPN desde una ubicación externa.

Servidor DNS

Si planea cifrar todo el tráfico de red a través de su servidor VPN, se recomienda habilitar su propio servidor DNS. EdgeOS tiene un reenviador de DNS incorporado que podemos usar para proporcionar nuestro propio servidor DNS para la conexión VPN, para evitar ataques relacionados con DNS.

Si su enrutador ya está configurado para su red local (e ingresó el comando para usar su enrutador como DNS para OpenVPN), es extremadamente fácil reutilizar su configuración de DNS local.

Para hacer esto, abra un navegador web, navegue e inicie sesión en su dispositivo EdgeRouter. Haga clic en Servicios pestaña, luego haga clic en DNS pestaña que aparece debajo. Haz clic en Agregar interfaz de escucha , seleccione vtun0 en el nuevo menú desplegable que aparece, luego haz clic en Guardar debajo.

Configuración de la viscosidad

El último paso es configurar la Viscosidad. Gracias a openvpn-generate, esto es tan fácil como importar y conectarse.

Importando

Copie su archivo *.visz que creó con openvpn-generate a su máquina Mac o Windows con Viscosity instalado y haga doble clic en el archivo. Debería ver un aviso de que la configuración se importó correctamente.

Una vez importado, edite su conexión y vaya a la pestaña Avanzado. Agregue los siguientes dos comandos en nuevas líneas:

cipher AES-256-CBC
auth SHA256

Luego haga clic en Guardar para almacenar estos cambios.

Conectando y usando su conexión VPN

Ahora está listo para conectarse. Haga clic en el ícono Viscosity en la barra de menú de macOS o en la bandeja del sistema de Windows para abrir el menú Viscosity, seleccione la conexión que importó y Viscosity se conectará.

Para verificar que la VPN esté funcionando, puede abrir la ventana Detalles desde el menú Viscosidad. Esto le permitirá ver los detalles de la conexión, el tráfico y el registro de OpenVPN.



Eso es todo, ha configurado su propio servidor OpenVPN. ¡Felicitaciones, ahora puede disfrutar de los beneficios de operar su propio servidor OpenVPN!


OpenVPN
  1. Apache con Tomcat, una guía de instalación y configuración paso a paso

  2. Cómo instalar y configurar un servidor OpenVPN en Ubuntu 22.04

  3. Cómo instalar y alojar un servidor OpenVPN con Docker

  4. Configuración de un servidor de ofuscación con Obfsproxy y Viscosity

  5. Instalar y configurar el servidor OpenVPN FreeBSD 12

Configuración de un servidor OpenVPN con Sophos UTM y Viscosity

Configuración de un servidor OpenVPN con Sophos XG y Viscosity

Configuración de un servidor OpenVPN con Synology y Viscosity

Configuración de un servidor OpenVPN con enrutador Tomato y Viscosity

Configuración de un servidor OpenVPN con Ubuntu y Viscosity

Configuración de un servidor OpenVPN con VyOS y Viscosity