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

Configura tu servidor OpenVPN en Linux

OpenVPN crea un túnel encriptado entre dos puntos, evitando que un tercero acceda a su tráfico de red. Al configurar su servidor de red privada virtual (VPN), se convierte en su propio proveedor de VPN. Muchos servicios populares de VPN ya usan OpenVPN, entonces, ¿por qué vincular su conexión a un proveedor específico cuando puede tener el control total?

El primer artículo de esta serie configuró un servidor para su VPN y el segundo artículo demostró cómo instalar y configurar el software del servidor OpenVPN. Este tercer artículo muestra cómo iniciar OpenVPN con autenticación.

Más sobre seguridad

  • La guía de codificación defensiva
  • Seminario web:Automatización de la seguridad y el cumplimiento del sistema con un sistema operativo estándar
  • 10 capas de seguridad de contenedores de Linux
  • Libro para colorear de SELinux
  • Más artículos de seguridad

Para configurar un servidor OpenVPN, debe:

  • Cree un archivo de configuración.
  • Establecer el sysctl valor net.ipv4.ip_forward = 1 para habilitar el enrutamiento.
  • Configure la propiedad adecuada para todos los archivos de configuración y autenticación para ejecutar el demonio del servidor OpenVPN en una cuenta no raíz.
  • Configure OpenVPN para que comience con el archivo de configuración apropiado.
  • Configura tu cortafuegos.

Archivo de configuración

Debe crear un archivo de configuración del servidor en /etc/openvpn/server/ . Puede comenzar desde cero si lo desea, y OpenVPN incluye varios archivos de configuración de muestra para usar como punto de partida. Eche un vistazo en /usr/share/doc/openvpn/sample/sample-config-files/ para verlos todos.

Si desea crear un archivo de configuración a mano, comience con server.conf o roadwarrior-server.conf (según corresponda) y coloque su archivo de configuración en /etc/openvpn/server . Ambos archivos están ampliamente comentados, así que lea los comentarios y decida cuál tiene más sentido para su situación.

Puede ahorrar tiempo y molestias utilizando mis plantillas de archivo de configuración de servidor y cliente preconstruidas y sysctl para activar el enrutamiento de red. Esta configuración también incluye personalización para registrar conexiones y desconexiones. Mantiene registros en el servidor OpenVPN en /etc/openvpn/server/logs .

Si usa mis plantillas, deberá editarlas para usar sus direcciones IP y nombres de host.

Para usar mis plantillas de configuración preconstruidas, scripts y sysctl para activar el reenvío de IP, descargue mi script:

$ curl \
https://www.dgregscott.com/ovpn/OVPNdownloads.sh > \
OVPNdownloads.sh

Lea el guión para tener una idea de lo que hace. Aquí hay una descripción general rápida de sus acciones:

  • Crea los directorios apropiados en su servidor OpenVPN
  • Descarga plantillas de archivo de configuración de servidor y cliente desde mi sitio web
  • Descarga mis scripts personalizados y los coloca en el directorio correcto con los permisos correctos
  • Descarga 99-ipforward.conf y lo coloca en /etc/sysctl.d para activar el reenvío de IP en el próximo arranque
  • Configura la propiedad de todo en /etc/openvpn

Una vez que esté satisfecho de entender lo que hace el script, hágalo ejecutable y ejecútelo:

$ chmod +x OVPNdownloads.sh
$ sudo ./OVPNdownloads.sh

Estos son los archivos que copia (observe la propiedad del archivo):

$ ls -al -R /etc/openvpn
/etc/openvpn:
total 12
drwxr-xr-x.   4 openvpn openvpn   34 Apr  6 20:35 .
drwxr-xr-x. 139 root    root    8192 Apr  6 20:35 ..
drwxr-xr-x.   2 openvpn openvpn   33 Apr  6 20:35 client
drwxr-xr-x.   4 openvpn openvpn   56 Apr  6 20:35 server

/etc/openvpn/client:
total 4
drwxr-xr-x. 2 openvpn openvpn   33 Apr  6 20:35 .
drwxr-xr-x. 4 openvpn openvpn   34 Apr  6 20:35 ..
-rw-r--r--. 1 openvpn openvpn 1764 Apr  6 20:35 OVPNclient2020.ovpn

/etc/openvpn/server:
total 4
drwxr-xr-x. 4 openvpn openvpn   56 Apr  6 20:35 .
drwxr-xr-x. 4 openvpn openvpn   34 Apr  6 20:35 ..
drwxr-xr-x. 2 openvpn openvpn   59 Apr  6 20:35 ccd
drwxr-xr-x. 2 openvpn openvpn    6 Apr  6 20:35 logs
-rw-r--r--. 1 openvpn openvpn 2588 Apr  6 20:35 OVPNserver2020.conf

/etc/openvpn/server/ccd:
total 8
drwxr-xr-x. 2 openvpn openvpn  59 Apr  6 20:35 .
drwxr-xr-x. 4 openvpn openvpn  56 Apr  6 20:35 ..
-rwxr-xr-x. 1 openvpn openvpn 917 Apr  6 20:35 client-connect.sh
-rwxr-xr-x. 1 openvpn openvpn 990 Apr  6 20:35 client-disconnect.sh

/etc/openvpn/server/logs:
total 0
drwxr-xr-x. 2 openvpn openvpn  6 Apr  6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 56 Apr  6 20:35 ..

Aquí está el 99-ipforward.conf archivo:

# Turn on IP forwarding. OpenVPN servers need to do routing
net.ipv4.ip_forward = 1

Edite OVPNserver2020.conf y OVPNclient2020.ovpn para incluir sus direcciones IP. Además, edite OVPNserver2020.conf para incluir los nombres de sus certificados de servidor anteriores. Más tarde, cambiará el nombre y editará una copia de OVPNclient2020.ovpn para usar con sus computadoras cliente. Los bloques que comienzan con ***? mostrarle dónde editar.

Propiedad del archivo

Si usó el script automatizado de mi sitio web, la propiedad del archivo ya está establecida. De lo contrario, debe asegurarse de que su sistema tenga un usuario llamado openvpn que es miembro de un grupo llamado openvpn . Debe establecer la propiedad de todo en /etc/openvpn a ese usuario y grupo. Es seguro hacer esto si no está seguro de si el usuario y el grupo ya existen porque useradd se negará a crear un usuario con el mismo nombre que uno que ya existe:

$ sudo useradd openvpn
$ sudo chown -R openvpn.openvpn /etc/openvpn

Cortafuegos

Si decidió no deshabilitar el servicio de firewalld en el paso 1, es posible que el servicio de firewall de su servidor no permita el tráfico de VPN de forma predeterminada. Usando el firewall-cmd comando, puede habilitar el servicio OpenVPN, que abre los puertos necesarios y enruta el tráfico según sea necesario:

$ sudo firewall-cmd --add-service openvpn --permanent
$ sudo firewall-cmd --reload

¡No hay necesidad de perderse en un laberinto de iptables!

Inicia tu servidor

Ahora puede iniciar su servidor OpenVPN. Para que se inicie automáticamente después de reiniciar, use enable subcomando de systemctl :

systemctl enable --now [email protected]

Pasos finales

El cuarto y último artículo de este artículo demostrará cómo configurar clientes para conectarse a su OpenVPN desde lejos.


Este artículo se basa en el blog de D. Greg Scott y se reutiliza con permiso.


OpenVPN
  1. Instale OpenVPN en su PC con Linux

  2. 9 cosas que hacer en los primeros 10 minutos en un servidor Linux

  3. Instalar y configurar el cliente OpenVPN en Rocky Linux 8

  4. Configurar el servidor OpenVPN en Rocky Linux 8

  5. Instalar y configurar el servidor OpenVPN FreeBSD 12

Configurar un servidor VPN Linux usando OpenVPN – Guía paso a paso

Cómo configurar OpenVPN en Ubuntu 16.04

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

Cómo verificar la carga de su servidor en Linux

Cómo configurar la replicación FreeIPA en Rocky Linux/Alma Linux/Centos 8

Cómo instalar KernelCare en su servidor Linux