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

Configuración de un servidor OpenVPN con Red Hat Linux 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 un host Red Hat Linux que le permita 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.

Preparación

Para esta guía, asumimos:

  • Ya ha instalado la última versión de Red Hat Enterprise Linux (8.4 en el momento de escribir este artículo)
  • Tienes raíz acceso a esta instalación
  • Conozca el nombre de sus interfaces de red (instrucciones justo debajo)
  • Esta instalación de Red Hat es una instalación nueva
  • Ya tiene una copia de Viscosity instalada en su dispositivo cliente

Si necesita descargar e instalar una copia de Red Hat, puede encontrar una copia de evaluación en https://access.redhat.com/products/re.../e Evaluation. No cubriremos los detalles de la configuración de una instancia de Red Hat, se pueden encontrar muchas guías en línea. Si está ejecutando una versión diferente de Red Hat, es muy probable que se apliquen muchos o incluso todos los pasos descritos en esta guía. 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).

Para obtener el nombre de su interfaz de red principal (acceso WAN), ejecute lo siguiente en su servidor RHEL:
ip route | grep default | awk 'NR==1 {print $(NF-4)}'

Si tiene una segunda interfaz de red para acceder a las máquinas en su red local, también necesitará el nombre de esta cuando configure el firewall y el enrutamiento.

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 RHEL, se ofrece soporte en https://www.redhat.com/en/services/support

Innumerables comunidades y foros de RHEL también se pueden buscar fácilmente en Internet.

Accediendo a la Interfaz de Línea de Comandos

Los pasos descritos en esta guía se realizan a través de la interfaz de línea de comandos (es decir, terminal) en su servidor RHEL. Si está ejecutando este servidor de forma remota, deberá usar la aplicación SSH para conectarse de forma segura entre su dispositivo cliente y el servidor (para "SSH en" su servidor). Si está configurando su servidor OpenVPN en un servidor privado virtual (VPS), es posible que solo esté familiarizado con la interfaz web. Muchos proveedores de VPS brindan acceso SSH además de la interfaz web. Consulte a su proveedor de VPS para obtener más detalles.

Si es nuevo en SSH, tenemos algunas instrucciones en nuestra Guía de introducción.

Cómo empezar

Una vez que haya iniciado sesión en la raíz, debemos asegurarnos de que el repositorio de Red Hat esté actualizado escribiendo lo siguiente:

yum update

Esto ejecutará y actualizará los paquetes preinstalados. Si se encuentran actualizaciones, se le preguntará si desea continuar. Confirma que lo haces ingresando y . Es posible que se le informe que debe reiniciar después de que se completen las actualizaciones del paquete. Si es así, asegúrese de volver a iniciar sesión en la terminal como raíz después de reiniciar.

A continuación, necesitaremos instalar EPEL (paquetes adicionales para Enterprise Linux), ya que contiene el paquete OpenVPN. Para RHEL 8, ejecute lo siguiente:

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
ARCH=$( /bin/arch )
subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms"

Para otras versiones de RHEL, siga las instrucciones de EPEL aquí.

A continuación, instale OpenVPN:

yum install openvpn -y

Generando Configuraciones, 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. Puede seguir la sección para Linux usando el instalador RHEL RPM y copiar las configuraciones de su cliente fuera del servidor (recomendamos esto), o generar todo en su PC o Mac y copiar el servidor carpeta que se genera en su servidor RHEL.

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.

Una vez que haya generado sus configuraciones, deberá transferir la configuración del servidor a su servidor o transferir las configuraciones de su cliente fuera de su servidor. Si tiene acceso local, una unidad USB es la más fácil. Si no, tenemos ayuda sobre cómo transferir archivos con SCP en nuestra Guía de introducción.

Reenvío de IP

Para reenviar nuestras solicitudes a través de la VPN, queremos que el servidor OpenVPN actúe como un enrutador. Como tal, necesitamos habilitar el reenvío de IP.

  1. En la terminal, podemos habilitar el reenvío de IP en el servidor Red Hat ingresando:
    echo 1 > /proc/sys/net/ipv4/ip_forward
  2. Para garantizar que los hosts en la red doméstica/de la oficina puedan encontrar el servidor VPN, debemos hacer que el servidor responda a cualquier solicitud ARP:
    echo 1 > /proc/sys/net/ipv4/conf/ens33/proxy_arp
    donde ens33 es la interfaz de red de la red doméstica/de la oficina si tiene dos interfaces de red, o su
  3. Cada vez que reiniciemos el servidor, estos comandos se desharán. Para asegurarnos de que eso no suceda, debemos modificar el archivo sysctl.conf:
    nano /etc/sysctl.conf
  4. Agregue las siguientes líneas al final de este archivo:
    net.ipv4.ip_forward = 1
    y
    net.ipv4.conf.ens33.proxy_arp = 1
  5. Presiona ctrl + x para salir de nano. Guarde los cambios cuando se le solicite.
  6. Para habilitar los cambios realizados en el archivo sysctl.conf, escriba:
    sysctl -p /etc/sysctl.conf

Reglas de cortafuegos

Usaremos el firewalld firewall instalado por defecto en Red Hat. Si está instalando OpenVPN en un servidor que ya tiene su propia configuración de firewall, asegúrese de agregar las reglas para permitir nuestro tráfico de OpenVPN. Sin embargo, si se trata de un simple servidor Red Hat independiente, la configuración del cortafuegos a continuación debería ser suficiente para poner en funcionamiento su servidor OpenVPN.

  1. Permitir openvpn servicio:
    firewall-cmd --permanent --add-service=openvpn
    firewall-cmd --add-service=openvpn
  2. Configure el servidor OpenVPN para proporcionar enmascaramiento:
    firewall-cmd --permanent --add-masquerade
    firewall-cmd --add-masquerade
  3. Permitir el puerto OpenVPN (1194):
    firewall-cmd --permanent --add-port=1194/udp
  4. Permitir el puerto DNS (53):
    firewall-cmd --permanent --add-port=53/udp
  5. Reinicie el cortafuegos con esta nueva configuración:
    firewall-cmd --reload

Iniciar el servidor OpenVPN

En este punto, los conceptos básicos están completos. La configuración y los archivos de su servidor deben estar en su servidor copiados desde donde los generó.

Primero, copie los archivos de configuración del servidor al directorio de OpenVPN:

sudo cp /path/to/configs/server/* /etc/openvpn/

Ahora inicie su servidor y habilítelo para que también se inicie después de un reinicio.

systemctl -f enable [email protected]
systemctl start [email protected]

Para verificar el estado del servidor, ingrese:

systemctl -l status [email protected]

A lo que debería responder con el estado y en verde debería ver:

...
Active: active (running)
...

Su servidor OpenVPN ya está funcionando y listo para que se conecte a él.

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.

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!

Servidor DNS básico

Si elige ejecutar su propio servidor DNS para clientes, el siguiente es un ejemplo de configuración para un servidor DNS de enlace.

  1. Para instalar el servidor DNS, escriba:
    yum install bind bind-utils bind-libs bind-chroot
  2. Para configurar las reglas de reenvío para nuestro servidor DNS, modificaremos el archivo de configuración:
    nano /etc/named.conf
  3. En la parte superior, verá una colección de instrucciones marcadas como opciones. . Inserte las siguientes dos líneas al final de la lista de opciones:
    forwarders {8.8.8.8;8.8.4.4;}; #IP of upstream nameservers
    forward only; #rely completely on our upstream nameservers
    donde estamos usando los servidores DNS de Google (usted es libre de usar el servicio de resolución de DNS de su elección).
  4. Agregue la subred VPN (10.8.0.0/24) a la escucha y permitir-consulta parámetros en la parte superior de las opciones para que ahora se vean así:
    ...
    listen-on port 53 { 10.8.0.0/24;127.0.0.1; };
    ...
    allow-query {10.8.0.0/24;localhost; };
    ...
  5. Presiona ctrl + x para salir de nano. Guarde los cambios cuando se le solicite.
  6. Establezca los permisos del archivo conf en 644:
    chmod 644 /etc/named.conf

Como este archivo conf es sensible a los errores, podemos comprobarlo escribiendo:

named-checkconf /etc/named.conf

Si su archivo de configuración no contiene errores, este comando no devolverá nada.

  1. Abra la lista de servidores de nombres:
    nano /etc/resolv.conf
  2. Configure el servidor de resolución para que apunte a sí mismo:
    nameserver 127.0.0.1
  3. Presiona ctrl + x para salir de nano. Guarde los cambios cuando se le solicite.
  4. Si su servidor Red Hat se ejecuta en un enrutador con un servicio DHCP, debe asegurarse de que el archivo resolv.conf no se sobrescriba en la renovación de la concesión de DHCP. Escriba:
    nano /etc/sysconfig/network-scripts/ifcfg-ens32
    Reemplace ens33 con el nombre de su interfaz de red principal si es diferente (consulte la sección Preparación para obtener más información)
  5. Asegúrese de configurar los siguientes tres parámetros:
    BOOTPROTO=dhcp
    PEERDNS=no
    TYPE=Ethernet
  6. Presiona ctrl + x para salir de nano. Guarde los cambios cuando se le solicite.
  7. Para iniciar el servidor DNS, escriba:
    systemctl start named
  8. Habilitar el inicio automático del servidor DNS en el arranque del sistema:
    systemctl enable named

Eso es todo, el servidor DNS ahora está configurado.


OpenVPN
  1. Cómo agregar repositorios a Red Hat Linux con y sin proxy

  2. Una forma más fácil de instalar y configurar el servidor OpenVPN en Linux

  3. Registre Red Hat Enterprise Linux y adjunte una suscripción con Ansible

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

  5. Configuración de un servidor OpenVPN con CentOS 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 Ubiquiti EdgeRouter (EdgeOS) y Viscosity

Configuración de un servidor OpenVPN con Ubuntu y Viscosity

Configuración de un servidor OpenVPN con VyOS y Viscosity

Configuración de un servidor NFS con Turnkey Linux